Package com.google.android.exoplayer2.effect

## Interface GlMatrixTransformation

- All Superinterfaces:
    `Effect`, `GlEffect`
  All Known Subinterfaces:
    `MatrixTransformation`
  All Known Implementing Classes:
    `Crop`, `Presentation`, `ScaleToFitTransformation`

      public interface GlMatrixTransformation
      extends GlEffect

  Specifies a 4x4 transformation `Matrix` to apply in the vertex shader for each frame.

  The matrix is applied to points given in normalized device coordinates (-1 to 1 on x, y, and z axes). Transformed pixels that are moved outside of the normal device coordinate range are clipped.

  Output frame pixels outside of the transformed input frame will be black, with alpha = 0 if applicable.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default Pair<Integer,​Integer>` | `configure​(int inputWidth, int inputHeight)` | Configures the input and output dimensions.
    `float[]` | `getGlMatrixArray​(long presentationTimeUs)` | Returns the 4x4 transformation `Matrix` to apply to the frame with the given timestamp.
    `default SingleFrameGlTextureProcessor` | `toGlTextureProcessor​(Context context, boolean useHdr)` | Returns a `SingleFrameGlTextureProcessor` that applies the effect.

- - ### Method Detail

    - #### configure

          default Pair<Integer,​Integer> configure​(int inputWidth,
                                                        int inputHeight)

      Configures the input and output dimensions.

      Must be called before `getGlMatrixArray(long)`.

      Parameters:
        `inputWidth` - The input frame width, in pixels.
        `inputHeight` - The input frame height, in pixels.
      Returns:
        The output frame width and height, in pixels.

    - #### getGlMatrixArray

          float[] getGlMatrixArray​(long presentationTimeUs)

      Returns the 4x4 transformation `Matrix` to apply to the frame with the given timestamp.

    - #### toGlTextureProcessor

          default SingleFrameGlTextureProcessor toGlTextureProcessor​(Context context,
                                                                     boolean useHdr)
                                                              throws FrameProcessingException

      Description copied from interface: `GlEffect`
      Returns a `SingleFrameGlTextureProcessor` that applies the effect.
      Specified by:
        `toGlTextureProcessor` in interface `GlEffect`
      Parameters:
        `context` - A `Context`.
        `useHdr` - Whether input textures come from an HDR source. If `true`, colors will be in linear RGB BT.2020. If `false`, colors will be in linear RGB BT.709.
      Throws:
        `FrameProcessingException`