Package com.jogamp.opengl
Interface GLArrayData
-
- All Known Subinterfaces:
GLArrayDataEditable
- All Known Implementing Classes:
GLArrayDataClient
,GLArrayDataServer
,GLArrayDataWrapper
public interface GLArrayData
The 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 void
associate(Object obj, boolean enable)
Implementation and type dependent object association.void
destroy(GL gl)
Buffer
getBuffer()
The Buffer holding the data, may be null if a GPU buffer without client bound dataint
getComponentCount()
The number of components per elementint
getComponentSizeInBytes()
The component's size in bytesint
getComponentType()
The component's GL data type, ie.int
getElementCount()
The current number of used elements.int
getIndex()
The index of the predefined array index, see list below, or -1 in case of a shader attribute array.int
getLocation()
Returns the shader attribute location for this name, -1 if not yet determinedString
getName()
The name of the reflecting shader array attribute.boolean
getNormalized()
True, if GL shall normalize fixed point data while converting them into float.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.int
getStride()
int
getVBOName()
The VBO name or 0 if not a VBOlong
getVBOOffset()
The VBO buffer offset or 0 if not a VBOint
getVBOTarget()
The VBO target or 0 if not a VBOint
getVBOUsage()
The VBO usage or 0 if not a VBOboolean
isVBO()
Determines whether the data is server side (VBO) and enabled, or a client side array (false).boolean
isVertexAttribute()
Returns true if this data set is intended for a GLSL vertex shader attribute, otherwise false, ie intended for fixed function vertex pointerint
setLocation(int v)
Sets the given location of the shader attributeint
setLocation(GL2ES2 gl, int program)
Retrieves the location of the shader attribute from the linked shader program.int
setLocation(GL2ES2 gl, int program, int location)
Binds the location of the shader attribute to the given location for the unlinked shader program.void
setName(String newName)
Set a new name for this array.String
toString()
-
-
-
Method Detail
-
associate
void associate(Object obj, boolean enable)
Implementation and type dependent object association.One currently known use case is to associate a
ShaderState
to 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_DRAW
orGL.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_BUFFER
orGL.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
true
for fixed point data type andfalse
for floating point data types.
-
getStride
int getStride()
- Returns:
- the byte offset between consecutive components
-
destroy
void destroy(GL gl)
-
-