com.jogamp.opengl.util

## Class GLPixelStorageModes

- java.lang.Object
- - com.jogamp.opengl.util.GLPixelStorageModes

-     public class GLPixelStorageModes
      extends Object

  Utility to safely set and restore the PACK and UNPACK pixel storage mode, regardless of the GLProfile.

  PACK for GPU to CPU transfers, e.g. `ReadPixels`, etc.

  UNPACK for CPU o GPU transfers, e.g. `TexImage2D`, etc

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `GLPixelStorageModes()` Create instance w/o `saveAll(GL)`
    `GLPixelStorageModes(GL gl)` Create instance w/ `saveAll(GL)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `resetAll(GL gl)` Resets PACK and UNPACK pixel storage modes to their default value, i.e.
    `void` | `resetPack(GL gl)` Resets PACK pixel storage modes to their default value.
    `void` | `resetUnpack(GL gl)` Resets UNPACK pixel storage modes to their default value.
    `void` | `restore(GL gl)` Restores PACK and UNPACK pixel storage mode previously saved w/ `saveAll(GL)` or `savePack(GL)` and `saveUnpack(GL)`.
    `void` | `saveAll(GL gl)` Saves PACK and UNPACK pixel storage modes and `resets` them, i.e.
    `void` | `savePack(GL gl)` Saves PACK pixel storage modes and `resets` them.
    `void` | `saveUnpack(GL gl)` Saves UNPACK pixel storage modes and `resets` them.
    `void` | `setAlignment(GL gl, int packAlignment, int unpackAlignment)` Sets the `GL.GL_PACK_ALIGNMENT` and `GL.GL_UNPACK_ALIGNMENT`.
    `void` | `setPackAlignment(GL gl, int packAlignment)` Sets the `GL.GL_PACK_ALIGNMENT`.
    `void` | `setPackRowLength(GL2ES3 gl, int packRowLength)` Sets the `GL2ES3.GL_PACK_ROW_LENGTH`.
    `void` | `setRowLength(GL2ES3 gl, int packRowLength, int unpackRowLength)` Sets the `GL2ES3.GL_PACK_ROW_LENGTH` and `GL2ES2.GL_UNPACK_ROW_LENGTH`.
    `void` | `setUnpackAlignment(GL gl, int unpackAlignment)` Sets the `GL.GL_UNPACK_ALIGNMENT`.
    `void` | `setUnpackRowLength(GL2ES2 gl, int unpackRowLength)` Sets the `GL2ES2.GL_UNPACK_ROW_LENGTH`.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GLPixelStorageModes

          public GLPixelStorageModes()

      Create instance w/o `saveAll(GL)`

    - #### GLPixelStorageModes

          public GLPixelStorageModes(GL gl)

      Create instance w/ `saveAll(GL)`

  - ### Method Detail

    - #### setPackAlignment

          public final void setPackAlignment(GL gl,
                              int packAlignment)

      Sets the `GL.GL_PACK_ALIGNMENT`.

      Saves the PACK pixel storage modes if not saved yet, see `savePack(GL)`.

    - #### setUnpackAlignment

          public final void setUnpackAlignment(GL gl,
                                int unpackAlignment)

      Sets the `GL.GL_UNPACK_ALIGNMENT`.

      Saves the UNPACK pixel storage modes if not saved yet, see `saveUnpack(GL)`.

    - #### setAlignment

          public final void setAlignment(GL gl,
                          int packAlignment,
                          int unpackAlignment)

      Sets the `GL.GL_PACK_ALIGNMENT` and `GL.GL_UNPACK_ALIGNMENT`.

      Saves the PACK and UNPACK pixel storage modes if not saved yet, see `saveAll(GL)`.

    - #### setPackRowLength

          public final void setPackRowLength(GL2ES3 gl,
                              int packRowLength)

      Sets the `GL2ES3.GL_PACK_ROW_LENGTH`.

      Saves the PACK pixel storage modes if not saved yet, see `savePack(GL)`.

    - #### setUnpackRowLength

          public final void setUnpackRowLength(GL2ES2 gl,
                                int unpackRowLength)

      Sets the `GL2ES2.GL_UNPACK_ROW_LENGTH`.

      Saves the UNPACK pixel storage modes if not saved yet, see `saveUnpack(GL)`.

    - #### setRowLength

          public final void setRowLength(GL2ES3 gl,
                          int packRowLength,
                          int unpackRowLength)

      Sets the `GL2ES3.GL_PACK_ROW_LENGTH` and `GL2ES2.GL_UNPACK_ROW_LENGTH`.

      Saves the PACK and UNPACK pixel storage modes if not saved yet, see `saveAll(GL)`.

    - #### saveAll

          public final void saveAll(GL gl)

      Saves PACK and UNPACK pixel storage modes and `resets` them, i.e. issues `savePack(GL)` and `saveUnpack(GL)`.

      Operation is skipped, if the modes were already saved.

      Restore via `restore(GL)`

    - #### resetAll

          public final void resetAll(GL gl)

      Resets PACK and UNPACK pixel storage modes to their default value, i.e. issues `resetPack(GL)` and `resetUnpack(GL)`.

    - #### restore

          public final void restore(GL gl)
                             throws GLException

      Restores PACK and UNPACK pixel storage mode previously saved w/ `saveAll(GL)` or `savePack(GL)` and `saveUnpack(GL)`.
      Throws:
        `GLException` - if neither PACK nor UNPACK modes were saved.

    - #### resetPack

          public final void resetPack(GL gl)

      Resets PACK pixel storage modes to their default value.

    - #### savePack

          public final void savePack(GL gl)

      Saves PACK pixel storage modes and `resets` them.

      Operation is skipped, if the modes were already saved.

      Restore via `restore(GL)`

    - #### resetUnpack

          public final void resetUnpack(GL gl)

      Resets UNPACK pixel storage modes to their default value.

    - #### saveUnpack

          public final void saveUnpack(GL gl)

      Saves UNPACK pixel storage modes and `resets` them.

      Operation is skipped, if the modes were already saved.

      Restore via `restore(GL)`

Copyright 2010 JogAmp Community.