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.