• Sceneform SDK for Android was open sourced and archived (github.com/google-ar/sceneform-android-sdk) with version 1.16.0.
  • This site (developers.google.com/sceneform) serves as the documentation archive for the previous version, Sceneform SDK for Android 1.15.0.
  • Do not use version 1.17.0 of the Sceneform Maven artifacts.
  • The 1.17.1 Maven artifacts can be used. Other than the version, however, the 1.17.1 artifacts are identical to the 1.15.0 artifacts.

SceneView

public class SceneView
Known Direct Subclasses

A Sceneform SurfaceView that manages rendering and interaction with the scene.

Nested Classes

interface SceneView.AnimationTimeTransformer Defines a transform from Choreographer time to animation time. 

Inherited Constants

Inherited Fields

Public Constructors

SceneView(Context context)
Constructs a SceneView object and binds it to an Android Context.
SceneView(Context context, AttributeSet attrs)
Constructs a SceneView object and binds it to an Android Context.

Public Methods

void
destroy()
Required to exit Sceneform.
static void
destroyAllResources()
Immediately releases all rendering resources, even if in use.
void
enableDebug(boolean enable)
If enabled, provides various visualizations for debugging.
Scene
getScene()
Returns the Sceneform Scene created by this view.
boolean
isDebugEnabled()
Indicates whether debugging is enabled for this view.
boolean
onTouchEvent(MotionEvent motionEvent)
void
pause()
Pause Sceneform, which pauses the rendering thread.
static long
reclaimReleasedResources()
Releases rendering resources ready for garbage collection

Called every frame to collect unused resources.

void
resume()
Resume Sceneform, which resumes the rendering thread.
void
setAnimationTimeTransformer(SceneView.AnimationTimeTransformer animationTimeTransformer)
To control the animation playback rate, the SceneView customer can supply a function to return the time to update the global animation cursor time.
void
setBackground(Drawable background)
Set the background to a given Drawable, or remove the background.
void
startMirroringToSurface(Surface surface, int left, int bottom, int width, int height)
To capture the contents of this view, designate a Surface onto which this SceneView should be mirrored.
void
stopMirroringToSurface(Surface surface)
When capturing is complete, call this method to stop mirroring the SceneView to the specified Surface.

Inherited Methods

Public Constructors

public SceneView (Context context)

Constructs a SceneView object and binds it to an Android Context.

Parameters
context the Android Context to use

public SceneView (Context context, AttributeSet attrs)

Constructs a SceneView object and binds it to an Android Context.

Parameters
context the Android Context to use
attrs the Android AttributeSet to associate with

Public Methods

public void destroy ()

Required to exit Sceneform.

Typically called from onDestroy().

public static void destroyAllResources ()

Immediately releases all rendering resources, even if in use.

Use this if nothing more will be rendered in this scene or any other, and the memory must be released immediately.

public void enableDebug (boolean enable)

If enabled, provides various visualizations for debugging.

Parameters
enable True to enable debugging visualizations, false to disable it.

public Scene getScene ()

Returns the Sceneform Scene created by this view.

public boolean isDebugEnabled ()

Indicates whether debugging is enabled for this view.

public boolean onTouchEvent (MotionEvent motionEvent)

Parameters
motionEvent

public void pause ()

Pause Sceneform, which pauses the rendering thread.

Typically called from onPause().

public static long reclaimReleasedResources ()

Releases rendering resources ready for garbage collection

Called every frame to collect unused resources. May be called manually to release resources after rendering has stopped.

Returns
  • Count of resources currently in use

public void resume ()

Resume Sceneform, which resumes the rendering thread.

Typically called from onResume().

Throws
CameraNotAvailableException

public void setAnimationTimeTransformer (SceneView.AnimationTimeTransformer animationTimeTransformer)

To control the animation playback rate, the SceneView customer can supply a function to return the time to update the global animation cursor time. Note that the returned times must be monotonically increasing.

Parameters
animationTimeTransformer The transform to apply to the nano frame times generated from the Choreographer to generate the animation update time. Note that the default implementation uses the Choreographer time untransformed. If overridden during playback, the returned times must still monitonically increase from the previous values that were returned (i.e. the Choreographer values). The input nano time can be used to ensure that returned times never decrease.

public void setBackground (Drawable background)

Set the background to a given Drawable, or remove the background. If the background is a ColorDrawable, then the background color of the Scene is set to getColor() (the alpha of the color is ignored). Otherwise, default to the behavior of setBackground(Drawable).

Parameters
background

public void startMirroringToSurface (Surface surface, int left, int bottom, int width, int height)

To capture the contents of this view, designate a Surface onto which this SceneView should be mirrored. Use getSurface(), createInputSurface() or createPersistentInputSurface() to obtain the input surface for recording. This will incur a rendering performance cost and should only be set when capturing this view. To stop the additional rendering, call stopMirroringToSurface.

Parameters
surface the Surface onto which the rendered scene should be mirrored.
left the left edge of the rectangle into which the view should be mirrored on surface.
bottom the bottom edge of the rectangle into which the view should be mirrored on surface.
width the width of the rectangle into which the SceneView should be mirrored on surface.
height the height of the rectangle into which the SceneView should be mirrored on surface.

public void stopMirroringToSurface (Surface surface)

When capturing is complete, call this method to stop mirroring the SceneView to the specified Surface. If this is not called, the additional performance cost will remain.

The application is responsible for calling release() on the Surface when done.

Parameters
surface