# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Nested Classes | Constants | Inherited Constants | Fields | Methods | Inherited Methods

# 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 `SurfaceControl` objects.
`class` | `SurfaceControl.Transaction` An atomic set of changes to a set of SurfaceControl.

### 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
From interface `android.os.Parcelable`
`int` | `CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` | `PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `writeToParcel(Parcel, int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

### 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
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `android.os.Parcelable`
`abstract int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`abstract void` | `writeToParcel(Parcel dest, int flags)` Flatten this object in to a Parcel.

## 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.

See also:

- `Supported transforms are any combination of horizontal mirror, vertical mirror, and clock-wise 90 degree rotation, in that order. Rotations of 180 and 270 degrees are made up of those basic transforms.`

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.

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.

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

### CREATOR

    public static final Creator<SurfaceControl> CREATOR

## 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.

### readFromParcel

    public void readFromParcel (Parcel in)

Parameters
`in` | `Parcel`

### 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. In general, the `toString` method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The `toString` method for class `Object` returns a string consisting of the name of the class of which the object is an instance, the at-sign character ``@`', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

>      getClass().getName() + '@' + Integer.toHexString(hashCode())

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.
`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

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*