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

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
- Public Member Functions inherited from osg::Object
 Object ()
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * cloneType () const =0
virtual Object * clone (const CopyOp &) const =0
virtual void setThreadSafeRefUnref (bool threadSafe)
virtual void setName (const std::string &name)
void setName (const char *name)
const std::string & getName () const
void setDataVariance (DataVariance dv)
DataVariance getDataVariance () const
virtual void computeDataVariance ()
void setUserDataContainer (osg::UserDataContainer *udc)
osg::UserDataContainer * getUserDataContainer ()
const osg::UserDataContainer * getUserDataContainer () const
osg::UserDataContainer * getOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
virtual Referenced * getUserData ()
virtual const Referenced * getUserData () const
template<typename T >
bool getUserValue (const std::string &name, T &value) const
template<typename T >
void setUserValue (const std::string &name, const T &value)
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referenced & operator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::Mutex * getRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSet * getObserverSet () const
ObserverSet * getOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) 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 Member Functions inherited from osg::Object
virtual ~Object ()
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const

Protected Attributes

BufferObjectProfile _profile
bool _copyDataAndReleaseGLBufferObject
BufferDataList _bufferDataList
GLBufferObjects _glBufferObjects
- Protected Attributes inherited from osg::Object
std::string _name
DataVariance _dataVariance
osg::UserDataContainer * _userDataContainer
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Additional Inherited Members

- Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC, STATIC, UNSPECIFIED }

Member Typedef Documentation

typedef std::vector< BufferData* > osg::BufferObject::BufferDataList
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.

osg::BufferObject::~BufferObject ( )
protected

Member Function Documentation

unsigned int osg::BufferObject::addBufferData ( BufferData *  bd)
virtual const char* osg::BufferObject::className ( ) const
inlinevirtual

return the name of the object's class type. Must be defined by derived classes.

Implements osg::Object.

unsigned int osg::BufferObject::computeRequiredBufferSize ( ) const
static void osg::BufferObject::deleteBufferObject ( unsigned int  contextID,
GLuint  globj 
)
static

deprecated, provided for backwards compatibility.

void osg::BufferObject::dirty ( )
BufferData* osg::BufferObject::getBufferData ( unsigned int  index)
inline
const BufferData* osg::BufferObject::getBufferData ( unsigned int  index) const
inline
bool osg::BufferObject::getCopyDataAndReleaseGLBufferObject ( ) 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
BufferObjectProfile& osg::BufferObject::getProfile ( )
inline
const BufferObjectProfile& osg::BufferObject::getProfile ( ) 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
inlinevirtual

Reimplemented from osg::Object.

References NULL.

virtual const char* osg::BufferObject::libraryName ( ) const
inlinevirtual

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)
void osg::BufferObject::removeBufferData ( BufferData *  bd)
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 
)
void osg::BufferObject::setCopyDataAndReleaseGLBufferObject ( bool  copyAndRelease)
inline

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

BufferDataList osg::BufferObject::_bufferDataList
protected
bool osg::BufferObject::_copyDataAndReleaseGLBufferObject
protected
GLBufferObjects osg::BufferObject::_glBufferObjects
mutableprotected
BufferObjectProfile osg::BufferObject::_profile
protected

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