Package com.jogamp.opengl
Interface GLArrayData
-
- All Known Subinterfaces:
GLArrayDataEditable
- All Known Implementing Classes:
GLArrayDataClient,GLArrayDataServer,GLArrayDataWrapper
public interface GLArrayDataThe total number of bytes hold by the referenced buffer is: getComponentSize()* getComponentNumber() * getElementNumber()
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidassociate(Object obj, boolean enable)Implementation and type dependent object association.voiddestroy(GL gl)BuffergetBuffer()The Buffer holding the data, may be null if a GPU buffer without client bound dataintgetComponentCount()The number of components per elementintgetComponentSizeInBytes()The component's size in bytesintgetComponentType()The component's GL data type, ie.intgetElementCount()The current number of used elements.intgetIndex()The index of the predefined array index, see list below, or -1 in case of a shader attribute array.intgetLocation()Returns the shader attribute location for this name, -1 if not yet determinedStringgetName()The name of the reflecting shader array attribute.booleangetNormalized()True, if GL shall normalize fixed point data while converting them into float.intgetSizeInBytes()The currently used size in bytes.
In case the buffer's position is 0 (sealed, flipped), it's based on it's limit instead of it's position.intgetStride()intgetVBOName()The VBO name or 0 if not a VBOlonggetVBOOffset()The VBO buffer offset or 0 if not a VBOintgetVBOTarget()The VBO target or 0 if not a VBOintgetVBOUsage()The VBO usage or 0 if not a VBObooleanisVBO()Determines whether the data is server side (VBO) and enabled, or a client side array (false).booleanisVertexAttribute()Returns true if this data set is intended for a GLSL vertex shader attribute, otherwise false, ie intended for fixed function vertex pointerintsetLocation(int v)Sets the given location of the shader attributeintsetLocation(GL2ES2 gl, int program)Retrieves the location of the shader attribute from the linked shader program.intsetLocation(GL2ES2 gl, int program, int location)Binds the location of the shader attribute to the given location for the unlinked shader program.voidsetName(String newName)Set a new name for this array.StringtoString()
-
-
-
Method Detail
-
associate
void associate(Object obj, boolean enable)
Implementation and type dependent object association.One currently known use case is to associate a
ShaderStateto an GLSL aware vertex attribute object, allowing to use the ShaderState to handle it's data persistence, location and state change.
This is implicitly done viashaderState.ownAttribute(GLArrayData, boolean).- Parameters:
obj- implementation and type dependent associationenable- pass true to enable the association and false to disable it.
-
isVertexAttribute
boolean isVertexAttribute()
Returns true if this data set is intended for a GLSL vertex shader attribute, otherwise false, ie intended for fixed function vertex pointer
-
getIndex
int getIndex()
The index of the predefined array index, see list below, or -1 in case of a shader attribute array.
-
getName
String getName()
The name of the reflecting shader array attribute.
-
setName
void setName(String newName)
Set a new name for this array.This clears the location, i.e. sets it to -1.
- See Also:
setLocation(int),setLocation(GL2ES2, int)
-
getLocation
int getLocation()
Returns the shader attribute location for this name, -1 if not yet determined
-
setLocation
int setLocation(int v)
Sets the given location of the shader attribute- Returns:
- the given location
- See Also:
ShaderState.vertexAttribPointer(GL2ES2, GLArrayData)
-
setLocation
int setLocation(GL2ES2 gl, int program)
Retrieves the location of the shader attribute from the linked shader program.No validation is performed within the implementation.
- Parameters:
gl-program-- Returns:
- ≥0 denotes a valid attribute 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.
-
setLocation
int setLocation(GL2ES2 gl, int program, int location)
Binds the location of the shader attribute to the given location for the unlinked shader program.No validation is performed within the implementation.
- Parameters:
gl-program-- Returns:
- the given location
-
isVBO
boolean isVBO()
Determines whether the data is server side (VBO) and enabled, or a client side array (false).
-
getVBOOffset
long getVBOOffset()
The VBO buffer offset or 0 if not a VBO
-
getVBOName
int getVBOName()
The VBO name or 0 if not a VBO
-
getVBOUsage
int getVBOUsage()
The VBO usage or 0 if not a VBO- Returns:
- 0 if not a GPU buffer, otherwise
GL2ES2.GL_STREAM_DRAW,GL.GL_STATIC_DRAWorGL.GL_DYNAMIC_DRAW
-
getVBOTarget
int getVBOTarget()
The VBO target or 0 if not a VBO- Returns:
- 0 if not a GPU buffer, otherwise
GL.GL_ARRAY_BUFFERorGL.GL_ELEMENT_ARRAY_BUFFER
-
getBuffer
Buffer getBuffer()
The Buffer holding the data, may be null if a GPU buffer without client bound data
-
getComponentCount
int getComponentCount()
The number of components per element
-
getComponentType
int getComponentType()
The component's GL data type, ie. GL_FLOAT
-
getComponentSizeInBytes
int getComponentSizeInBytes()
The component's size in bytes
-
getElementCount
int getElementCount()
The current number of used elements.On element consist out of
In case the buffer's position is 0 (sealed, flipped), it's based on it's limit instead of it's position.getComponentCount()components.
-
getSizeInBytes
int getSizeInBytes()
The currently used size in bytes.
In case the buffer's position is 0 (sealed, flipped), it's based on it's limit instead of it's position.
-
getNormalized
boolean getNormalized()
True, if GL shall normalize fixed point data while converting them into float.Default behavior (of the fixed function pipeline) is
truefor fixed point data type andfalsefor floating point data types.
-
getStride
int getStride()
- Returns:
- the byte offset between consecutive components
-
destroy
void destroy(GL gl)
-
-