87 const void*
getData()
const {
return _data; }
122 bool _hasSwappedRGBAData;
125 static int _vboMinimumSizeLimit;
126 static int _vboMaximumSizeLimit;
size_t SbNodeIdType
Type of unique ids of SoNode, used in the notification/change detection handling.
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
An SoState collects and holds state while traversing a scene graph.
SoVBO is used to manage OpenGL vertex buffer objects.
bool bind(SoState *state)
bind the buffer to GL, transfer data if not already done.
void setData(int numBytes, const void *data, SbNodeIdType nodeId, SoState *state)
sets the client buffer data, ownership stays with the caller
static int getVboMinimumSizeLimit()
get the lower limit for VBO usage
const void * getData() const
get the data pointer
SoVBO(GLenum type)
create VBO of type GL_ARRAY_BUFFER (for vertex/normal/color etc. data) or GL_ELEMENT_ARRAY_BUFFER for...
void copyAndSwapPackedRGBA(SoState *state)
allocates new data buffer, copies the values set by setData() and swaps them bytewise,...
void updateData(void *data)
update the VBO data from the current data (bind() needs to be called before).
static bool shouldUseVBO(SoState *state, int numData)
returns if a VBO should be used depending on given state and the number of data elements (not bytes)
static bool isVertexArrayRenderingAllowed()
returns of vertex array rendering is allowed.
void freeGL(SoState *state=NULL)
free the GL part of the VBO (if state is passed, the VBO may be deleted immediately)
bool hasSwappedRGBAData() const
returns if the stored data has been swapped to be compatible to OpenGL on little endian machines
void clearData()
clears the data, freeing it when it is owned by VBO
void unbind()
unbind the VBO in the GL state
SbNodeIdType getDataId() const
get the node id of the data
bool isValid(SoState *state)
Returns if the VBO is valid and it's data is stored on the GPU.