osg::DrawElementsIndirect Class Referenceabstract

The DrawElementsIndirect base PrimitiveSet. More...

`#include <PrimitiveSetIndirect>`

Inheritance diagram for osg::DrawElementsIndirect:

## Public Member Functions

| DrawElementsIndirect (Type primType=PrimitiveType, GLenum mode=0, unsigned int firstCommand=0, GLsizei stride=0)
| DrawElementsIndirect (const DrawElementsIndirect &rhs, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
void | setIndirectCommandArray (IndirectCommandDrawElements *idc)
| set command array of this indirect primitive set
IndirectCommandDrawElements * | getIndirectCommandArray ()
| get command array of this indirect primitive set
const IndirectCommandDrawElements * | getIndirectCommandArray () const
void | setFirstCommandToDraw (unsigned int i)
| set offset of the first command to draw in the IndirectCommandDrawArrays
unsigned int | getFirstCommandToDraw () const
| get offset of the first command in the IndirectCommandDrawArrays
void | setStride (GLsizei i)
| stride (to set if you use custom CommandArray)
GLsizei | getStride () const
| stride (to set if you use custom CommandArray)
virtual unsigned int | getNumPrimitives () const =0
Public Member Functions inherited from osg::DrawElements
| DrawElements (Type primType=PrimitiveType, GLenum mode=0, int numInstances=0)
| DrawElements (const DrawElements &copy, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual DrawElements * | getDrawElements ()
virtual const DrawElements * | getDrawElements () const
void | setElementBufferObject (osg::ElementBufferObject *ebo)
osg::ElementBufferObject * | getElementBufferObject ()
const osg::ElementBufferObject * | getElementBufferObject () const
virtual GLenum | getDataType ()=0
virtual void | resizeElements (unsigned int numIndices)=0
virtual void | reserveElements (unsigned int numIndices)=0
virtual void | setElement (unsigned int, unsigned int)=0
virtual unsigned int | getElement (unsigned int)=0
virtual void | addElement (unsigned int)=0
Public Member Functions inherited from osg::PrimitiveSet
| PrimitiveSet (Type primType=PrimitiveType, GLenum mode=0, int numInstances=0)
| PrimitiveSet (const PrimitiveSet &prim, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual bool | isSameKindAs (const Object *obj) const
virtual const char * | libraryName () const
virtual const char * | className () const
Type | getType () const
virtual osg::PrimitiveSet * | asPrimitiveSet ()
virtual const osg::PrimitiveSet * | asPrimitiveSet () const
virtual const GLvoid * | getDataPointer () const
virtual unsigned int | getTotalDataSize () const
virtual bool | supportsBufferObject () const
void | setNumInstances (int n)
int | getNumInstances () const
void | setMode (GLenum mode)
GLenum | getMode () const
virtual void | draw (State &state, bool useVertexBufferObjects) const =0
virtual void | accept (PrimitiveFunctor &functor) const =0
virtual void | accept (PrimitiveIndexFunctor &functor) const =0
virtual unsigned int | index (unsigned int pos) const =0
virtual unsigned int | getNumIndices () const =0
virtual void | offsetIndices (int offset)=0
virtual void | computeRange () const
Public Member Functions inherited from osg::BufferData
| BufferData ()
| BufferData (const BufferData &bd, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual osg::Array * | asArray ()
virtual const osg::Array * | asArray () const
virtual osg::Image * | asImage ()
virtual const osg::Image * | asImage () const
void | setBufferObject (BufferObject *bufferObject)
BufferObject * | getBufferObject ()
const BufferObject * | getBufferObject () const
void | setBufferIndex (unsigned int index)
unsigned int | getBufferIndex () const
GLBufferObject * | getGLBufferObject (unsigned int contextID) const
GLBufferObject * | getOrCreateGLBufferObject (unsigned int contextID) const
void | setModifiedCallback (ModifiedCallback *md)
ModifiedCallback * | getModifiedCallback ()
const ModifiedCallback * | getModifiedCallback () const
void | dirty ()
void | setModifiedCount (unsigned int value)
unsigned int | getModifiedCount () const
virtual void | resizeGLObjectBuffers (unsigned int maxSize)
void | releaseGLObjects (State *state=0) const
unsigned int | getNumClients () const
void | addClient (osg::Object *)
void | removeClient (osg::Object *)
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
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
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)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
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)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
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

## Protected Member Functions

virtual | ~DrawElementsIndirect ()
Protected Member Functions inherited from osg::DrawElements
virtual | ~DrawElements ()
Protected Member Functions inherited from osg::PrimitiveSet
virtual | ~PrimitiveSet ()
Protected Member Functions inherited from osg::BufferData
virtual | ~BufferData ()
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

unsigned int | _firstCommand
GLsizei | _stride
ref_ptr< IndirectCommandDrawElements > | _indirectCommandArray
Protected Attributes inherited from osg::PrimitiveSet
Type | _primitiveType
int | _numInstances
GLenum | _mode
Protected Attributes inherited from osg::BufferData
unsigned int | _modifiedCount
unsigned int | _bufferIndex
osg::ref_ptr< BufferObject > | _bufferObject
osg::ref_ptr< ModifiedCallback > | _modifiedCallback
unsigned int | _numClients
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::PrimitiveSet

enum

Type {
PrimitiveType , DrawArraysPrimitiveType , DrawArrayLengthsPrimitiveType , DrawElementsUBytePrimitiveType ,
DrawElementsUShortPrimitiveType , DrawElementsUIntPrimitiveType , MultiDrawArraysPrimitiveType , DrawArraysIndirectPrimitiveType ,
DrawElementsUByteIndirectPrimitiveType , DrawElementsUShortIndirectPrimitiveType , DrawElementsUIntIndirectPrimitiveType , MultiDrawArraysIndirectPrimitiveType ,
MultiDrawElementsUByteIndirectPrimitiveType , MultiDrawElementsUShortIndirectPrimitiveType , MultiDrawElementsUIntIndirectPrimitiveType
}

enum

Mode {
POINTS = GL_POINTS , LINES = GL_LINES , LINE_STRIP = GL_LINE_STRIP , LINE_LOOP = GL_LINE_LOOP ,
TRIANGLES = GL_TRIANGLES , TRIANGLE_STRIP = GL_TRIANGLE_STRIP , TRIANGLE_FAN = GL_TRIANGLE_FAN , QUADS = GL_QUADS ,
QUAD_STRIP = GL_QUAD_STRIP , POLYGON = GL_POLYGON , LINES_ADJACENCY = GL_LINES_ADJACENCY , LINE_STRIP_ADJACENCY = GL_LINE_STRIP_ADJACENCY ,
TRIANGLES_ADJACENCY = GL_TRIANGLES_ADJACENCY , TRIANGLE_STRIP_ADJACENCY = GL_TRIANGLE_STRIP_ADJACENCY , PATCHES = GL_PATCHES
}

Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

The DrawElementsIndirect base PrimitiveSet.

## Constructor & Destructor Documentation

## DrawElementsIndirect() [1/2]

osg::DrawElementsIndirect::DrawElementsIndirect | ( | Type | primType = PrimitiveType,
|  | GLenum | mode = 0,
|  | unsigned int | firstCommand = 0,
|  | GLsizei | stride = 0 )

inline

References _firstCommand, _stride, osg::DrawElements::DrawElements(), osg::PrimitiveSet::PrimitiveType, and setIndirectCommandArray().

Referenced by DrawElementsIndirect(), osg::DrawElementsIndirectUByte::DrawElementsIndirectUByte(), osg::DrawElementsIndirectUByte::DrawElementsIndirectUByte(), osg::DrawElementsIndirectUByte::DrawElementsIndirectUByte(), osg::DrawElementsIndirectUByte::DrawElementsIndirectUByte(), osg::DrawElementsIndirectUInt::DrawElementsIndirectUInt(), osg::DrawElementsIndirectUInt::DrawElementsIndirectUInt(), osg::DrawElementsIndirectUInt::DrawElementsIndirectUInt(), osg::DrawElementsIndirectUInt::DrawElementsIndirectUInt(), osg::DrawElementsIndirectUInt::DrawElementsIndirectUInt(), osg::DrawElementsIndirectUShort::DrawElementsIndirectUShort(), osg::DrawElementsIndirectUShort::DrawElementsIndirectUShort(), osg::DrawElementsIndirectUShort::DrawElementsIndirectUShort(), osg::DrawElementsIndirectUShort::DrawElementsIndirectUShort(), and osg::DrawElementsIndirectUShort::DrawElementsIndirectUShort().

## DrawElementsIndirect() [2/2]

osg::DrawElementsIndirect::DrawElementsIndirect | ( | const DrawElementsIndirect & | rhs,
|  | const CopyOp & | copyop = CopyOp::SHALLOW_COPY )

inline

References _firstCommand, _indirectCommandArray, _stride, osg::DrawElements::DrawElements(), DrawElementsIndirect(), and osg::CopyOp::SHALLOW_COPY.

## ~DrawElementsIndirect()

virtual osg::DrawElementsIndirect::~DrawElementsIndirect | ( |  | ) |

inline protected virtual

## Member Function Documentation

## getFirstCommandToDraw()

unsigned int osg::DrawElementsIndirect::getFirstCommandToDraw | ( |  | ) | const

inline

get offset of the first command in the IndirectCommandDrawArrays

References _firstCommand.

## getIndirectCommandArray() [1/2]

IndirectCommandDrawElements * osg::DrawElementsIndirect::getIndirectCommandArray | ( |  | ) |

inline

get command array of this indirect primitive set

References _indirectCommandArray.

## getIndirectCommandArray() [2/2]

const IndirectCommandDrawElements * osg::DrawElementsIndirect::getIndirectCommandArray | ( |  | ) | const

inline

References _indirectCommandArray.

## getNumPrimitives()

virtual unsigned int osg::DrawElementsIndirect::getNumPrimitives | ( |  | ) | const

pure virtual

Reimplemented from osg::PrimitiveSet.

Implemented in osg::DrawElementsIndirectUByte, osg::DrawElementsIndirectUInt, osg::DrawElementsIndirectUShort, osg::MultiDrawElementsIndirectUByte, osg::MultiDrawElementsIndirectUInt, and osg::MultiDrawElementsIndirectUShort.

## getStride()

GLsizei osg::DrawElementsIndirect::getStride | ( |  | ) | const

inline

stride (to set if you use custom CommandArray)

References _stride.

## setFirstCommandToDraw()

void osg::DrawElementsIndirect::setFirstCommandToDraw | ( | unsigned int | i | ) |

inline

set offset of the first command to draw in the IndirectCommandDrawArrays

Further methods are for advanced DI when you plan to use your own IndirectCommandElement (stride) or if you want to draw a particular command index of the IndirectCommandElement(FirstCommandToDraw)

References _firstCommand.

## setIndirectCommandArray()

void osg::DrawElementsIndirect::setIndirectCommandArray | ( | IndirectCommandDrawElements * | idc | ) |

inline

set command array of this indirect primitive set

References _indirectCommandArray.

Referenced by DrawElementsIndirect().

## setStride()

void osg::DrawElementsIndirect::setStride | ( | GLsizei | i | ) |

inline

stride (to set if you use custom CommandArray)

References _stride.

## Member Data Documentation

## _firstCommand

unsigned int osg::DrawElementsIndirect::_firstCommand

protected

Referenced by DrawElementsIndirect(), DrawElementsIndirect(), getFirstCommandToDraw(), and setFirstCommandToDraw().

## _indirectCommandArray

ref_ptr<IndirectCommandDrawElements> osg::DrawElementsIndirect::_indirectCommandArray

protected

Referenced by DrawElementsIndirect(), getIndirectCommandArray(), getIndirectCommandArray(), and setIndirectCommandArray().

## _stride

GLsizei osg::DrawElementsIndirect::_stride

protected

Referenced by DrawElementsIndirect(), DrawElementsIndirect(), getStride(), and setStride().

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

- PrimitiveSetIndirect