OpenSceneGraph 2.8.3

osg::BufferObject Class Reference

Inheritance diagram for osg::BufferObject:

List of all members.

Classes

struct  BufferEntry
class  Extensions
 Extensions class which encapsulates the querying of extensions and associated function pointers, and provide convenience wrappers to check for the extensions or use the associated functions. More...

Public Member Functions

 BufferObject ()
 BufferObject (const BufferObject &bo, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
 return the name of the object's library.
virtual const char * className () const
 return the name of the object's class type.
void setUsage (GLenum usage)
 Set what type of usage the buffer object will have.
GLenum getUsage () const
 Get the type of usage the buffer object has been set up for.
bool isBufferObjectSupported (unsigned int contextID) const
bool isPBOSupported (unsigned int contextID) const
GLuint & buffer (unsigned int contextID) const
void bindBuffer (unsigned int contextID) const
virtual void unbindBuffer (unsigned int contextID) const
void dirty ()
bool isDirty (unsigned int contextID) const
virtual void compileBuffer (State &state) const =0
virtual void resizeGLObjectBuffers (unsigned int maxSize)
 Resize any per context GLObject buffers to specified size.
void releaseGLObjects (State *state=0) const
 If State is non-zero, this function releases OpenGL objects for the specified graphics context.

Static Public Member Functions

static void deleteBufferObject (unsigned int contextID, GLuint globj)
 Use deleteVertexBufferObject instead of glDeleteBuffers to allow OpenGL buffer objects to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID.
static void flushDeletedBufferObjects (unsigned int contextID, double, double &availableTime)
 flush all the cached display list which need to be deleted in the OpenGL context related to contextID.
static void discardDeletedBufferObjects (unsigned int contextID)
 dicard all the cached display list which need to be deleted in the OpenGL context related to contextID.
static ExtensionsgetExtensions (unsigned int contextID, bool createIfNotInitalized)
 Function to call to get the extension of a specified context.
static void setExtensions (unsigned int contextID, Extensions *extensions)
 setExtensions allows users to override the extensions across graphics contexts.

Protected Types

typedef osg::buffered_value
< GLuint > 
GLObjectList
typedef osg::buffered_value
< unsigned int > 
CompiledList

Protected Member Functions

virtual ~BufferObject ()

Protected Attributes

GLObjectList _bufferObjectList
CompiledList _compiledList
GLenum _target
GLenum _usage
unsigned int _totalSize

Member Typedef Documentation

typedef osg::buffered_value<unsigned int> osg::BufferObject::CompiledList [protected]

Constructor & Destructor Documentation

osg::BufferObject::BufferObject ( )
osg::BufferObject::BufferObject ( const BufferObject bo,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::BufferObject::~BufferObject ( ) [protected, virtual]

Member Function Documentation

void osg::BufferObject::bindBuffer ( unsigned int  contextID) const [inline]
GLuint& osg::BufferObject::buffer ( unsigned int  contextID) const [inline]
virtual const char* osg::BufferObject::className ( ) const [inline, virtual]

return the name of the object's class type.

Must be defined by derived classes.

Implements osg::Object.

virtual void osg::BufferObject::compileBuffer ( State state) const [pure virtual]
static void osg::BufferObject::deleteBufferObject ( unsigned int  contextID,
GLuint  globj 
) [static]

Use deleteVertexBufferObject instead of glDeleteBuffers to allow OpenGL buffer objects to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID.

void osg::BufferObject::dirty ( ) [inline]
static void osg::BufferObject::discardDeletedBufferObjects ( unsigned int  contextID) [static]

dicard all the cached display list which need to be deleted in the OpenGL context related to contextID.

Note, unlike flush no OpenGL calls are made, instead the handles are all removed. this call is useful for when an OpenGL context has been destroyed.

static void osg::BufferObject::flushDeletedBufferObjects ( unsigned int  contextID,
double  ,
double &  availableTime 
) [static]

flush all the cached display list which need to be deleted in the OpenGL context related to contextID.

static Extensions* osg::BufferObject::getExtensions ( unsigned int  contextID,
bool  createIfNotInitalized 
) [static]

Function to call to get the extension of a specified context.

If the Extension object for that context has not yet been created and the 'createIfNotInitalized' flag been set to false then returns NULL. If 'createIfNotInitalized' is true then the Extensions object is automatically created. However, in this case the extension object is only created with the graphics context associated with ContextID..

GLenum osg::BufferObject::getUsage ( ) const [inline]

Get the type of usage the buffer object has been set up for.

bool osg::BufferObject::isBufferObjectSupported ( unsigned int  contextID) const [inline]
bool osg::BufferObject::isDirty ( unsigned int  contextID) const [inline]
bool osg::BufferObject::isPBOSupported ( unsigned int  contextID) const [inline]
virtual bool osg::BufferObject::isSameKindAs ( const Object obj) const [inline, virtual]

Reimplemented from osg::Object.

References NULL.

virtual const char* osg::BufferObject::libraryName ( ) const [inline, virtual]

return the name of the object's library.

Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.

Implements osg::Object.

void osg::BufferObject::releaseGLObjects ( State state = 0) const [virtual]

If State is non-zero, this function releases OpenGL objects for the specified graphics context.

Otherwise, releases OpenGL objects for all graphics contexts.

Reimplemented from osg::Object.

virtual void osg::BufferObject::resizeGLObjectBuffers ( unsigned int  maxSize) [virtual]

Resize any per context GLObject buffers to specified size.

Reimplemented from osg::Object.

Reimplemented in osg::VertexBufferObject, osg::ElementBufferObject, osg::PixelBufferObject, and osg::PixelDataBufferObject.

static void osg::BufferObject::setExtensions ( unsigned int  contextID,
Extensions extensions 
) [static]

setExtensions allows users to override the extensions across graphics contexts.

typically used when you have different extensions supported across graphics pipes but need to ensure that they all use the same low common denominator extensions.

void osg::BufferObject::setUsage ( GLenum  usage) [inline]

Set what type of usage the buffer object will have.

Options are: GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.

virtual void osg::BufferObject::unbindBuffer ( unsigned int  contextID) const [inline, virtual]

Member Data Documentation

GLenum osg::BufferObject::_target [protected]
unsigned int osg::BufferObject::_totalSize [mutable, protected]
GLenum osg::BufferObject::_usage [protected]

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

osg logo
Generated at Tue Mar 22 2011 13:20:20 for the OpenSceneGraph by doxygen 1.7.3.