Pyrogenesis  trunk
Public Member Functions | Private Attributes | List of all members
CVertexBufferManager Class Reference

#include <VertexBufferManager.h>

Public Member Functions

CVertexBuffer::VBChunkAllocate (size_t vertexSize, size_t numVertices, GLenum usage, GLenum target, void *backingStore=NULL)
 Try to allocate a vertex buffer of the given size and type. More...
 
void Release (CVertexBuffer::VBChunk *chunk)
 Returns the given chunk to its owning buffer. More...
 
const std::list< CVertexBuffer * > & GetBufferList () const
 Returns a list of all buffers. More...
 
size_t GetBytesReserved ()
 
size_t GetBytesAllocated ()
 
void Shutdown ()
 Explicit shutdown of the vertex buffer subsystem; releases all currently-allocated buffers. More...
 

Private Attributes

std::list< CVertexBuffer * > m_Buffers
 List of all known vertex buffers. More...
 

Member Function Documentation

CVertexBuffer::VBChunk * CVertexBufferManager::Allocate ( size_t  vertexSize,
size_t  numVertices,
GLenum  usage,
GLenum  target,
void *  backingStore = NULL 
)

Try to allocate a vertex buffer of the given size and type.

Parameters
vertexSizesize of each vertex in the buffer
numVerticesnumber of vertices in the buffer
usageGL_STATIC_DRAW, GL_DYNAMIC_DRAW, GL_STREAM_DRAW
targettypically GL_ARRAY_BUFFER or GL_ELEMENT_ARRAY_BUFFER
backingStoreif usage is STATIC, this is NULL; else for DYNAMIC/STREAM, this must be a copy of the vertex data that remains valid for the lifetime of the VBChunk
Returns
chunk, or NULL if no free chunks available
const std::list<CVertexBuffer*>& CVertexBufferManager::GetBufferList ( ) const
inline

Returns a list of all buffers.

size_t CVertexBufferManager::GetBytesAllocated ( )
size_t CVertexBufferManager::GetBytesReserved ( )
void CVertexBufferManager::Release ( CVertexBuffer::VBChunk chunk)

Returns the given chunk to its owning buffer.

void CVertexBufferManager::Shutdown ( void  )

Explicit shutdown of the vertex buffer subsystem; releases all currently-allocated buffers.

Member Data Documentation

std::list<CVertexBuffer*> CVertexBufferManager::m_Buffers
private

List of all known vertex buffers.


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