Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://coin3d.github.io
https://www.kongsberg.com/en/kogt/
SoVBO Class Reference

The SoVBO class is used to handle OpenGL vertex buffer objects. More...

Public Member Functions

 SoVBO (const GLenum target=0x8892, const GLenum usage=0x88E4)
 
 ~SoVBO ()
 
void setBufferData (const GLvoid *data, intptr_t size, SbUniqueId dataid=0)
 
void * allocBufferData (intptr_t size, SbUniqueId dataid=0)
 
SbUniqueId getBufferDataId (void) const
 
void getBufferData (const GLvoid *&data, intptr_t &size)
 
void bindBuffer (uint32_t contextid)
 

Static Public Member Functions

static void init (void)
 
static void setVertexCountLimits (const int minlimit, const int maxlimit)
 
static int getVertexCountMinLimit (void)
 
static int getVertexCountMaxLimit (void)
 
static void testGLPerformance (const uint32_t contextid)
 
static SbBool shouldCreateVBO (SoState *state, const uint32_t contextid, const int numdata)
 
static SbBool shouldRenderAsVertexArrays (SoState *statea, const uint32_t contextid, const int numdata)
 

Detailed Description

The SoVBO class is used to handle OpenGL vertex buffer objects.

It wraps the buffer handling, taking care of multi-context handling and allocation/deallocation of buffers. FIXME: more doc.

Constructor & Destructor Documentation

◆ SoVBO()

SoVBO::SoVBO ( const GLenum target = 0x8892,
const GLenum usage = 0x88E4 )

Constructor

◆ ~SoVBO()

SoVBO::~SoVBO ( )

Destructor

Member Function Documentation

◆ setBufferData()

void SoVBO::setBufferData ( const GLvoid * data,
intptr_t size,
SbUniqueId dataid = 0 )

Sets the buffer data. dataid is a unique id used to identify the buffer data. In Coin it is possible to use the node id (SoNode::getNodeId()) to test if a buffer is valid for a node.

◆ allocBufferData()

void * SoVBO::allocBufferData ( intptr_t size,
SbUniqueId dataid = 0 )

Used to allocate buffer data. The user is responsible for filling in the correct type of data in the buffer before the buffer is used.

See also
setBufferData()

◆ getBufferDataId()

SbUniqueId SoVBO::getBufferDataId ( void ) const

Returns the buffer data id.

See also
setBufferData()

◆ getBufferData()

void SoVBO::getBufferData ( const GLvoid *& data,
intptr_t & size )

Returns the data pointer and size.

◆ bindBuffer()

void SoVBO::bindBuffer ( uint32_t contextid)

Binds the buffer for the context contextid.

◆ setVertexCountLimits()

void SoVBO::setVertexCountLimits ( const int minlimit,
const int maxlimit )
static

Sets the global limits on the number of vertex data in a node before vertex buffer objects are considered to be used for rendering.

◆ getVertexCountMinLimit()

int SoVBO::getVertexCountMinLimit ( void )
static

Returns the vertex VBO minimum limit.

See also
setVertexCountLimits()

◆ getVertexCountMaxLimit()

int SoVBO::getVertexCountMaxLimit ( void )
static

Returns the vertex VBO maximum limit.

See also
setVertexCountLimits()

The documentation for this class was generated from the following files: