Class GLUniformData


  • public final class GLUniformData
    extends Object
    GLSL uniform data wrapper encapsulating data to be uploaded to the GPU as a uniform.
    • Constructor Detail

      • GLUniformData

        public GLUniformData​(String name,
                             int val)
        int atom Number of objects is 1
        Parameters:
        name - the uniform name as used in the shader
      • GLUniformData

        public GLUniformData​(String name,
                             float val)
        float atom Number of objects is 1
        Parameters:
        name - the uniform name as used in the shader
      • GLUniformData

        public GLUniformData​(String name,
                             int components,
                             IntBuffer data)
        Multiple IntBuffer Vector Number of objects is calculated by data.limit()/components
        Parameters:
        name - the uniform name as used in the shader
        components - number of elements of one object, ie 4 for GL_FLOAT_VEC4,
        data - the data
      • GLUniformData

        public GLUniformData​(String name,
                             int components,
                             FloatBuffer data)
        Multiple FloatBuffer Vector Number of objects is calculated by data.limit()/components
        Parameters:
        name - the uniform name as used in the shader
        components - number of elements of one object, ie 4 for GL_FLOAT_VEC4,
        data - the underlying data
      • GLUniformData

        public GLUniformData​(String name,
                             int components,
                             SyncBuffer syncBuffer)
        Multiple IntBuffer or FloatBuffer Vector Number of objects is calculated by data.limit()/components
        Parameters:
        name - the uniform name as used in the shader
        components - number of elements of one object, ie 4 for GL_FLOAT_VEC4,
        syncBuffer - SyncBuffer providing SyncAction and Buffer, allowing to sync the buffer with the underlying data, see getBuffer()
      • GLUniformData

        public GLUniformData​(String name,
                             int rows,
                             int columns,
                             FloatBuffer data)
        Multiple FloatBuffer Matrix Number of objects is calculated by data.limit()/(rows*columns)
        Parameters:
        name - the uniform name as used in the shader
        rows - the matrix rows
        column - the matrix column
        data - the underlying data
      • GLUniformData

        public GLUniformData​(String name,
                             int rows,
                             int columns,
                             SyncBuffer syncBuffer)
        Multiple FloatBuffer Matrix Number of objects is calculated by data.limit()/(rows*columns)
        Parameters:
        name - the uniform name as used in the shader
        rows - the matrix rows
        column - the matrix column
        syncBuffer - SyncBuffer providing SyncAction and Buffer, allowing to sync the buffer with the underlying data, see getBuffer()
    • Method Detail

      • creatEmptyVector

        public static GLUniformData creatEmptyVector​(String name,
                                                     int components)
      • creatEmptyMatrix

        public static GLUniformData creatEmptyMatrix​(String name,
                                                     int rows,
                                                     int columns)
      • intValue

        public int intValue()
      • floatValue

        public float floatValue()
      • intBufferValue

        public IntBuffer intBufferValue()
      • floatBufferValue

        public FloatBuffer floatBufferValue()
      • getName

        public String getName()
        Return the uniform name as used in the shader
      • getLocation

        public int getLocation()
      • setLocation

        public int setLocation​(int location)
        Sets the given location of the shader uniform.
        Returns:
        the given location
      • setLocation

        public int setLocation​(GL2ES2 gl,
                               int program)
        Retrieves the location of the shader uniform with getName() from the linked shader program.

        No validation is performed within the implementation.

        Parameters:
        gl -
        program -
        Returns:
        ≥0 denotes a valid uniform location as found and used in the given shader program. <0 denotes an invalid location, i.e. not found or used in the given shader program.
      • getObject

        public Object getObject()
        Returns the data object.

        In case a SyncAction has been set, it is invoked to synchronize the object with the underlying data before returning the object.

        Returns:
        the data object.
        See Also:
        SyncAction.sync()
      • getBuffer

        public Buffer getBuffer()
        Returns the data buffer.

        In case a SyncAction has been set, it is invoked to synchronize the buffer with the underlying data before returning the buffer.

        Returns:
        the data buffer.
        See Also:
        SyncAction.sync()
      • isMatrix

        public boolean isMatrix()
      • isBuffer

        public boolean isBuffer()
      • count

        public int count()
      • components

        public int components()
      • rows

        public int rows()
      • columns

        public int columns()