Package io.flutter.view

# Interface TextureRegistry.SurfaceProducer

All Superinterfaces:
  `TextureRegistry.TextureEntry`

Enclosing interface:
  TextureRegistry

public static interface TextureRegistry.SurfaceProducer extends TextureRegistry.TextureEntry
Uses a Surface to populate the texture.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `TextureRegistry.SurfaceProducer.Callback`
  Callback invoked by `setCallback(Callback)`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getHeight()`
  `Surface`
  `getSurface()`
  Direct access to the surface object.
  `int`
  `getWidth()`
  `void`
  `scheduleFrame()`
  This method is not officially part of the public API surface and will be deprecated.
  `void`
  `setCallback(TextureRegistry.SurfaceProducer.Callback callback)`
  Sets a callback that is notified when a previously created `Surface` returned by `getSurface()` is no longer valid, either due to being destroyed or being changed.
  `void`
  `setSize(int width, int height)`
  Specify the size of this texture in physical pixels

  ### Methods inherited from interface io.flutter.view.TextureRegistry.TextureEntry

  `id, release`

- ## Method Details

  - ### setSize

    void setSize(int width, int height)
    Specify the size of this texture in physical pixels

  - ### getWidth

    int getWidth()
    Returns:
      The currently specified width (physical pixels)

  - ### getHeight

    int getHeight()
    Returns:
      The currently specified height (physical pixels)

  - ### getSurface

    Surface getSurface()
    Direct access to the surface object.

    When using this API, you will usually need to implement `TextureRegistry.SurfaceProducer.Callback` and provide it to `setCallback(Callback)` in order to be notified when an existing surface has been destroyed (such as when the application goes to the background) or a new surface has been created (such as when the application is resumed back to the foreground).

    NOTE: You should not cache the returned surface but instead invoke `getSurface` each time you need to draw. The surface may change when the texture is resized or has its format changed.

    Returns:
      a Surface to use for a drawing target for various APIs.

  - ### setCallback

    void setCallback(TextureRegistry.SurfaceProducer.Callback callback)
    Sets a callback that is notified when a previously created `Surface` returned by `getSurface()` is no longer valid, either due to being destroyed or being changed.
    Parameters:
      `callback` - The callback to notify, or null to remove the callback.

  - ### scheduleFrame

    void scheduleFrame()
    This method is not officially part of the public API surface and will be deprecated.