openscenegraph
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
osg::BufferObject Class Reference
Inheritance diagram for osg::BufferObject:
osg::Object osg::Referenced osg::ElementBufferObject osg::PixelBufferObject osg::PixelDataBufferObject osg::UniformBufferObject osg::VertexBufferObject

List of all members.

Public Member Functions

 BufferObject ()
 BufferObject (const BufferObject &bo, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
void setTarget (GLenum target)
GLenum getTarget () const
void setUsage (GLenum usage)
GLenum getUsage () const
BufferObjectProfile & getProfile ()
const BufferObjectProfile & getProfile () const
void setCopyDataAndReleaseGLBufferObject (bool copyAndRelease)
bool getCopyDataAndReleaseGLBufferObject () const
void dirty ()
virtual void resizeGLObjectBuffers (unsigned int maxSize)
void releaseGLObjects (State *state=0) const
unsigned int addBufferData (BufferData *bd)
void removeBufferData (unsigned int index)
void removeBufferData (BufferData *bd)
void setBufferData (unsigned int index, BufferData *bd)
BufferData * getBufferData (unsigned int index)
const BufferData * getBufferData (unsigned int index) const
unsigned int getNumBufferData () const
void setGLBufferObject (unsigned int contextID, GLBufferObject *glbo)
GLBufferObject * getGLBufferObject (unsigned int contextID) const
GLBufferObject * getOrCreateGLBufferObject (unsigned int contextID) const
unsigned int computeRequiredBufferSize () const

Static Public Member Functions

static void deleteBufferObject (unsigned int contextID, GLuint globj)

Protected Types

typedef std::vector< BufferData * > BufferDataList
typedef osg::buffered_object
< osg::ref_ptr< GLBufferObject > > 
GLBufferObjects

Protected Member Functions

 ~BufferObject ()

Protected Attributes

BufferObjectProfile _profile
bool _copyDataAndReleaseGLBufferObject
BufferDataList _bufferDataList
GLBufferObjects _glBufferObjects

Member Typedef Documentation

typedef std::vector< BufferData* > osg::BufferObject::BufferDataList [protected]

Constructor & Destructor Documentation

Copy constructor using CopyOp to manage deep vs shallow copy.


Member Function Documentation

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.

static void osg::BufferObject::deleteBufferObject ( unsigned int  contextID,
GLuint  globj 
) [static]

deprecated, provided for backwards compatibility.

BufferData* osg::BufferObject::getBufferData ( unsigned int  index) [inline]
const BufferData* osg::BufferObject::getBufferData ( unsigned int  index) const [inline]

Get whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immmediately.

GLBufferObject* osg::BufferObject::getGLBufferObject ( unsigned int  contextID) const [inline]
unsigned int osg::BufferObject::getNumBufferData ( ) const [inline]
GLBufferObject* osg::BufferObject::getOrCreateGLBufferObject ( unsigned int  contextID) const [inline]
GLenum osg::BufferObject::getTarget ( ) const [inline]
GLenum osg::BufferObject::getUsage ( ) const [inline]

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

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.

void osg::BufferObject::removeBufferData ( unsigned int  index)
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::PixelDataBufferObject.

void osg::BufferObject::setBufferData ( unsigned int  index,
BufferData *  bd 
)

Set whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immmediately so that it may be reused.

void osg::BufferObject::setGLBufferObject ( unsigned int  contextID,
GLBufferObject *  glbo 
) [inline]
void osg::BufferObject::setTarget ( GLenum  target) [inline]
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.


Member Data Documentation


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