SurfaceControl
public final class SurfaceControl
extends Object
implements Parcelable
java.lang.Object | |
↳ | 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 | |
---|---|
class | SurfaceControl.Builder Builder class for |
class | SurfaceControl.JankData Jank information to be fed back via |
interface | SurfaceControl.OnJankDataListener Listener interface to be informed about SurfaceFlinger's jank classification for a specific surface. |
class | SurfaceControl.OnJankDataListenerRegistration Handle to a registered |
class | SurfaceControl.Transaction An atomic set of changes to a set of SurfaceControl. |
interface | SurfaceControl.TransactionCommittedListener Interface to handle request to |
class | SurfaceControl.TransactionStats Transaction stats given to the listener registered in |
class | SurfaceControl.TrustedPresentationThresholds This class was deprecated in API level 35. Use |
Constants | |
---|---|
int | BUFFER_TRANSFORM_IDENTITY Identity transform. |
int | BUFFER_TRANSFORM_MIRROR_HORIZONTAL Mirror horizontally. |
int | BUFFER_TRANSFORM_MIRROR_VERTICAL Mirror vertically. |
int | BUFFER_TRANSFORM_ROTATE_180 Rotate 180 degrees clock-wise. |
int | BUFFER_TRANSFORM_ROTATE_270 Rotate 270 degrees clock-wise. |
int | BUFFER_TRANSFORM_ROTATE_90 Rotate 90 degrees clock-wise. |
Inherited constants |
---|
Fields | |
---|---|
public static final Creator<SurfaceControl> | CREATOR
|
Public methods | |
---|---|
int | describeContents() Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
boolean | isValid() Check whether this instance points to a valid layer with the system-compositor. |
void | readFromParcel(Parcel in) |
void | release() Release the local reference to the server-side surface. |
String | toString() Returns a string representation of the object. |
void | writeToParcel(Parcel dest, int flags) Flatten this object in to a Parcel. |
Inherited methods | |
---|---|
Constants
BUFFER_TRANSFORM_IDENTITY
public static final int BUFFER_TRANSFORM_IDENTITY
Identity transform. These transforms that can be applied to buffers as they are displayed to a window.
Constant Value: 0 (0x00000000)
BUFFER_TRANSFORM_MIRROR_HORIZONTAL
public static final int BUFFER_TRANSFORM_MIRROR_HORIZONTAL
Mirror horizontally. Can be combined with BUFFER_TRANSFORM_MIRROR_VERTICAL
and BUFFER_TRANSFORM_ROTATE_90
.
Constant Value: 1 (0x00000001)
BUFFER_TRANSFORM_MIRROR_VERTICAL
public static final int BUFFER_TRANSFORM_MIRROR_VERTICAL
Mirror vertically. Can be combined with BUFFER_TRANSFORM_MIRROR_HORIZONTAL
and BUFFER_TRANSFORM_ROTATE_90
.
Constant Value: 2 (0x00000002)
BUFFER_TRANSFORM_ROTATE_180
public static final int BUFFER_TRANSFORM_ROTATE_180
Rotate 180 degrees clock-wise. Cannot be combined with other transforms. Equivalent to (BUFFER_TRANSFORM_MIRROR_HORIZONTAL
| BUFFER_TRANSFORM_MIRROR_VERTICAL
).
Constant Value: 3 (0x00000003)
BUFFER_TRANSFORM_ROTATE_270
public static final int BUFFER_TRANSFORM_ROTATE_270
Rotate 270 degrees clock-wise. Cannot be combined with other transforms. Equivalent to (BUFFER_TRANSFORM_ROTATE_180
| BUFFER_TRANSFORM_ROTATE_90
).
Constant Value: 7 (0x00000007)
BUFFER_TRANSFORM_ROTATE_90
public static final int BUFFER_TRANSFORM_ROTATE_90
Rotate 90 degrees clock-wise. Can be combined with BUFFER_TRANSFORM_MIRROR_HORIZONTAL
and BUFFER_TRANSFORM_MIRROR_VERTICAL
.
Constant Value: 4 (0x00000004)
Fields
Public methods
describeContents
public int describeContents ()
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.
Returns | |
---|---|
int | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR |
isValid
public boolean isValid ()
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()
).
Returns | |
---|---|
boolean | Whether this SurfaceControl is valid. |
release
public void release ()
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
public String toString ()
Returns a string representation of the object.
Returns | |
---|---|
String | a string representation of the object. |
writeToParcel
public void writeToParcel (Parcel dest, int flags)
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.PARCELABLE_WRITE_RETURN_VALUE . Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.