Added in API level 29

SurfaceControl


class SurfaceControl : Parcelable
kotlin.Any
   ↳ android.view.SurfaceControl

Handle to an on-screen Surface managed by the system compositor. The SurfaceControl is a combination of a buffer source, and metadata about how to display the buffers. By constructing a Surface from this SurfaceControl you can submit buffers to be composited. Using SurfaceControl.Transaction you can manipulate various properties of how the buffer will be displayed on-screen. SurfaceControl's are arranged into a scene-graph like hierarchy, and as such any SurfaceControl may have a parent. Geometric properties like transform, crop, and Z-ordering will be inherited from the parent, as if the child were content in the parents buffer stream.

Summary

Nested classes

Builder class for SurfaceControl objects.

Jank information to be fed back via OnJankDataListener.

abstract

Listener interface to be informed about SurfaceFlinger's jank classification for a specific surface.

Handle to a registered OnJankDatalistener.

An atomic set of changes to a set of SurfaceControl.

abstract

Interface to handle request to SurfaceControl.Transaction.addTransactionCommittedListener(Executor, TransactionCommittedListener)

Transaction stats given to the listener registered in SurfaceControl.Transaction.addTransactionCompletedListener

Threshold values that are sent with Transaction.setTrustedPresentationCallback(SurfaceControl, TrustedPresentationThresholds, Executor, Consumer)

Constants
static Int

Identity transform.

static Int

Mirror horizontally.

static Int

Mirror horizontally and rotate 90 degrees clock-wise.

static Int

Mirror vertically.

static Int

Mirror vertically and rotate 90 degrees clock-wise.

static Int

Rotate 180 degrees clock-wise.

static Int

Rotate 270 degrees clock-wise.

static Int

Rotate 90 degrees clock-wise.

Inherited constants
Public methods
Int

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

Boolean

Check whether this instance points to a valid layer with the system-compositor.

Unit

Unit

Release the local reference to the server-side surface.

String

Returns a string representation of the object.

Unit
writeToParcel(dest: Parcel, flags: Int)

Flatten this object in to a Parcel.

Protected methods
Unit

Properties
static Parcelable.Creator<SurfaceControl!>

Constants

BUFFER_TRANSFORM_IDENTITY

Added in API level 32
static val BUFFER_TRANSFORM_IDENTITY: Int

Identity transform. These transforms that can be applied to buffers as they are displayed to a window.

Value: 0

BUFFER_TRANSFORM_MIRROR_HORIZONTAL

Added in API level 32
static val BUFFER_TRANSFORM_MIRROR_HORIZONTAL: Int

Mirror horizontally. Can be combined with BUFFER_TRANSFORM_MIRROR_VERTICAL and BUFFER_TRANSFORM_ROTATE_90.

Value: 1

BUFFER_TRANSFORM_MIRROR_HORIZONTAL_ROTATE_90

Added in API level 29
static val BUFFER_TRANSFORM_MIRROR_HORIZONTAL_ROTATE_90: Int

Mirror horizontally and rotate 90 degrees clock-wise. Equivalent to (BUFFER_TRANSFORM_MIRROR_HORIZONTAL | BUFFER_TRANSFORM_ROTATE_90).

Value: 5

BUFFER_TRANSFORM_MIRROR_VERTICAL

Added in API level 32
static val BUFFER_TRANSFORM_MIRROR_VERTICAL: Int

Mirror vertically. Can be combined with BUFFER_TRANSFORM_MIRROR_HORIZONTAL and BUFFER_TRANSFORM_ROTATE_90.

Value: 2

BUFFER_TRANSFORM_MIRROR_VERTICAL_ROTATE_90

Added in API level 29
static val BUFFER_TRANSFORM_MIRROR_VERTICAL_ROTATE_90: Int

Mirror vertically and rotate 90 degrees clock-wise. Equivalent to (BUFFER_TRANSFORM_MIRROR_VERTICAL | BUFFER_TRANSFORM_ROTATE_90).

Value: 6

BUFFER_TRANSFORM_ROTATE_180

Added in API level 32
static val BUFFER_TRANSFORM_ROTATE_180: Int

Rotate 180 degrees clock-wise. Cannot be combined with other transforms. Equivalent to (BUFFER_TRANSFORM_MIRROR_HORIZONTAL | BUFFER_TRANSFORM_MIRROR_VERTICAL).

Value: 3

BUFFER_TRANSFORM_ROTATE_270

Added in API level 32
static val BUFFER_TRANSFORM_ROTATE_270: Int

Rotate 270 degrees clock-wise. Cannot be combined with other transforms. Equivalent to (BUFFER_TRANSFORM_ROTATE_180 | BUFFER_TRANSFORM_ROTATE_90).

Value: 7

BUFFER_TRANSFORM_ROTATE_90

Added in API level 32
static val BUFFER_TRANSFORM_ROTATE_90: Int

Rotate 90 degrees clock-wise. Can be combined with BUFFER_TRANSFORM_MIRROR_HORIZONTAL and BUFFER_TRANSFORM_MIRROR_VERTICAL.

Value: 4

Public methods

describeContents

Added in API level 29
fun describeContents(): Int

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel,int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Return
Int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.
Value is either 0 or

isValid

Added in API level 29
fun isValid(): Boolean

Check whether this instance points to a valid layer with the system-compositor. For example this may be false if construction failed, or the layer was released (release).

Return
Boolean Whether this SurfaceControl is valid.

readFromParcel

Added in API level 29
fun readFromParcel(in: Parcel!): Unit

release

Added in API level 29
fun release(): Unit

Release the local reference to the server-side surface. The surface may continue to exist on-screen as long as its parent continues to exist. To explicitly remove a surface from the screen use Transaction.reparent with a null-parent. After release, isValid will return false and other methods will throw an exception. Always call release() when you're done with a SurfaceControl.

toString

Added in API level 29
fun toString(): String

Returns a string representation of the object.

Return
String a string representation of the object.

writeToParcel

Added in API level 29
fun writeToParcel(
    dest: Parcel,
    flags: Int
): Unit

Flatten this object in to a Parcel.

Parameters
dest Parcel: The Parcel in which the object should be written.
This value cannot be null.
flags Int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.
Value is either 0 or a combination of the following:

Protected methods

finalize

protected fun finalize(): Unit
Exceptions
java.lang.Throwable the Exception raised by this method

Properties

CREATOR

Added in API level 29
static val CREATOR: Parcelable.Creator<SurfaceControl!>