17#ifndef OSG_INDIRECTPRIMITIVESET
18#define OSG_INDIRECTPRIMITIVESET 1
36 virtual unsigned int &
count(
const unsigned int&index)=0;
38 virtual unsigned int &
first(
const unsigned int&index)=0;
57 virtual unsigned int &
count(
const unsigned int&index)=0;
59 virtual unsigned int &
firstIndex(
const unsigned int&index)=0;
60 virtual unsigned int &
baseVertex(
const unsigned int&index)=0;
74 DrawArraysIndirectCommand(
unsigned int pcount = 0,
unsigned int pinstanceCount = 0,
unsigned int pfirst = 0,
unsigned int pbaseInstance = 0) :
100 virtual unsigned int &
count(
const unsigned int&index) {
return at(index).count; }
101 virtual unsigned int &
instanceCount(
const unsigned int&index) {
return at(index).instanceCount; }
102 virtual unsigned int &
first(
const unsigned int&index) {
return at(index).first; }
103 virtual unsigned int &
baseInstance(
const unsigned int&index) {
return at(index).baseInstance; }
112 DrawElementsIndirectCommand(
unsigned int pcount = 0,
unsigned int pinstanceCount = 0,
unsigned int pfirstIndex = 0,
unsigned int pbaseVertex = 0,
unsigned int pbaseInstance = 0) :
139 virtual unsigned int &
count(
const unsigned int&index) {
return at(index).count; }
140 virtual unsigned int &
instanceCount(
const unsigned int&index) {
return at(index).instanceCount; }
141 virtual unsigned int &
firstIndex(
const unsigned int&index) {
return at(index).firstIndex; }
142 virtual unsigned int &
baseVertex(
const unsigned int&index) {
return at(index).baseVertex; }
143 virtual unsigned int &
baseInstance(
const unsigned int&index) {
return at(index).baseInstance; }
236 virtual const char*
className()
const {
return "DrawElementsIndirectUByte"; }
242 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
248 virtual unsigned int index(
unsigned int pos)
const {
return (*
this)[pos]; }
256 virtual void setElement(
unsigned int i,
unsigned int v) { (*this)[i] = v; }
257 virtual unsigned int getElement(
unsigned int i) {
return (*
this)[i]; }
301 template <
class InputIterator>
310 virtual const char*
className()
const {
return "DrawElementsIndirectUShort"; }
316 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
322 virtual unsigned int index(
unsigned int pos)
const {
return (*
this)[pos]; }
329 virtual void setElement(
unsigned int i,
unsigned int v) { (*this)[i] = v; }
330 virtual unsigned int getElement(
unsigned int i) {
return (*
this)[i]; }
373 template <
class InputIterator>
382 virtual const char*
className()
const {
return "DrawElementsIndirectUInt"; }
388 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
394 virtual unsigned int index(
unsigned int pos)
const {
return (*
this)[pos]; }
400 virtual void setElement(
unsigned int i,
unsigned int v) { (*this)[i] = v; }
401 virtual unsigned int getElement(
unsigned int i) {
return (*
this)[i]; }
453 template <
class InputIterator>
464 virtual const char*
className()
const {
return "MultiDrawElementsIndirectUShort"; }
466 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
523 template <
class InputIterator>
534 virtual const char*
className()
const {
return "MultiDrawElementsIndirectUByte"; }
536 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
589 template <
class InputIterator>
600 virtual const char*
className()
const {
return "MultiDrawElementsIndirectUInt"; }
602 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
644 virtual const char*
className()
const {
return "DrawArraysIndirect"; }
646 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
652 virtual unsigned int index(
unsigned int pos)
const;
709 virtual const char*
className()
const {
return "MultiDrawArraysIndirect"; }
711 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
717 virtual unsigned int index(
unsigned int pos)
const;
The core osg library provides the basic scene graph classes such as Nodes, State and Drawables,...
Definition AlphaFunc:19
T * get(unsigned int contextID)
Definition ContextData:152
MixinVector< GLuint > VectorGLuint
Definition PrimitiveSet:39
MixinVector< GLushort > VectorGLushort
Definition PrimitiveSet:38
MixinVector< GLubyte > VectorGLubyte
Definition PrimitiveSet:37
BufferData()
Definition BufferObject:498
void setBufferObject(BufferObject *bufferObject)
Definition BufferObject:645
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
size_type size() const
Definition MixinVector:92
void resize(size_type new_size, const value_type &fill_value=value_type())
Definition MixinVector:85
const_reference front() const
Definition MixinVector:138
void reserve(size_type new_capacity)
Definition MixinVector:86
const_reference at(size_type index) const
Definition MixinVector:110
void push_back(const value_type &value)
Definition MixinVector:117
MixinVector()
Definition MixinVector:45
bool empty() const
Definition MixinVector:91
Base class/standard interface for objects which require IO support, cloning and reference counting.
Definition Object:61
A PrimitiveFunctor is used (in conjunction with osg::Drawable::accept (PrimitiveFunctor&)) to get acc...
Definition PrimitiveSet:54
Definition PrimitiveSet:103
Definition PrimitiveSet:125
Type _primitiveType
Definition PrimitiveSet:216
Type
Definition PrimitiveSet:129
@ DrawElementsUByteIndirectPrimitiveType
Definition PrimitiveSet:138
@ MultiDrawElementsUByteIndirectPrimitiveType
Definition PrimitiveSet:142
@ PrimitiveType
Definition PrimitiveSet:130
@ DrawArraysIndirectPrimitiveType
Definition PrimitiveSet:137
@ MultiDrawElementsUIntIndirectPrimitiveType
Definition PrimitiveSet:144
@ DrawElementsUIntIndirectPrimitiveType
Definition PrimitiveSet:140
@ DrawElementsUShortIndirectPrimitiveType
Definition PrimitiveSet:139
@ MultiDrawElementsUShortIndirectPrimitiveType
Definition PrimitiveSet:143
@ MultiDrawArraysIndirectPrimitiveType
Definition PrimitiveSet:141
PrimitiveSet(Type primType=PrimitiveType, GLenum mode=0, int numInstances=0)
Definition PrimitiveSet:166
DrawElements(Type primType=PrimitiveType, GLenum mode=0, int numInstances=0)
Definition PrimitiveSet:340
common interface for IndirectCommandDrawArrayss
Definition PrimitiveSetIndirect:27
virtual unsigned int & first(const unsigned int &index)=0
virtual unsigned int getNumElements() const =0
virtual unsigned int & instanceCount(const unsigned int &index)=0
virtual unsigned int & baseInstance(const unsigned int &index)=0
virtual unsigned int getTotalDataSize() const
Definition PrimitiveSetIndirect:34
IndirectCommandDrawArrays()
Definition PrimitiveSetIndirect:29
virtual unsigned int & count(const unsigned int &index)=0
virtual unsigned int getElementSize() const =0
virtual void reserveElements(const unsigned int)=0
IndirectCommandDrawArrays(const IndirectCommandDrawArrays ©, const CopyOp ©op)
Definition PrimitiveSetIndirect:31
virtual void resizeElements(const unsigned int)=0
Definition PrimitiveSetIndirect:48
virtual void reserveElements(const unsigned int)=0
IndirectCommandDrawElements(const IndirectCommandDrawElements ©, const CopyOp ©op)
Definition PrimitiveSetIndirect:52
virtual unsigned int & instanceCount(const unsigned int &index)=0
IndirectCommandDrawElements()
Definition PrimitiveSetIndirect:50
virtual unsigned int getElementSize() const =0
virtual unsigned int & count(const unsigned int &index)=0
virtual unsigned int getNumElements() const =0
virtual unsigned int getTotalDataSize() const
Definition PrimitiveSetIndirect:55
virtual void resizeElements(const unsigned int)=0
virtual unsigned int & firstIndex(const unsigned int &index)=0
virtual unsigned int & baseInstance(const unsigned int &index)=0
virtual unsigned int & baseVertex(const unsigned int &index)=0
DrawArraysCommand.
Definition PrimitiveSetIndirect:73
unsigned int first
Definition PrimitiveSetIndirect:79
DrawArraysIndirectCommand(unsigned int pcount=0, unsigned int pinstanceCount=0, unsigned int pfirst=0, unsigned int pbaseInstance=0)
Definition PrimitiveSetIndirect:74
unsigned int count
Definition PrimitiveSetIndirect:77
unsigned int baseInstance
Definition PrimitiveSetIndirect:80
unsigned int instanceCount
Definition PrimitiveSetIndirect:78
default implementation of IndirectCommandDrawArrays DefaultIndirectCommandDrawArrays to be hosted on ...
Definition PrimitiveSetIndirect:86
virtual unsigned int & instanceCount(const unsigned int &index)
Definition PrimitiveSetIndirect:101
virtual const GLvoid * getDataPointer() const
Definition PrimitiveSetIndirect:94
virtual unsigned int & count(const unsigned int &index)
Definition PrimitiveSetIndirect:100
virtual unsigned int getNumElements() const
Definition PrimitiveSetIndirect:96
virtual void resizeElements(const unsigned int n)
Definition PrimitiveSetIndirect:98
virtual void reserveElements(const unsigned int n)
Definition PrimitiveSetIndirect:97
virtual unsigned int & baseInstance(const unsigned int &index)
Definition PrimitiveSetIndirect:103
DefaultIndirectCommandDrawArrays(const DefaultIndirectCommandDrawArrays ©, const CopyOp ©op)
Definition PrimitiveSetIndirect:91
META_Object(osg, DefaultIndirectCommandDrawArrays) DefaultIndirectCommandDrawArrays()
Definition PrimitiveSetIndirect:88
virtual unsigned int & first(const unsigned int &index)
Definition PrimitiveSetIndirect:102
virtual unsigned int getElementSize() const
Definition PrimitiveSetIndirect:95
default implementation of IndirectCommandDrawElements DrawElementsCommand
Definition PrimitiveSetIndirect:111
unsigned int baseInstance
Definition PrimitiveSetIndirect:119
unsigned int instanceCount
Definition PrimitiveSetIndirect:116
unsigned int firstIndex
Definition PrimitiveSetIndirect:117
DrawElementsIndirectCommand(unsigned int pcount=0, unsigned int pinstanceCount=0, unsigned int pfirstIndex=0, unsigned int pbaseVertex=0, unsigned int pbaseInstance=0)
Definition PrimitiveSetIndirect:112
unsigned int baseVertex
Definition PrimitiveSetIndirect:118
unsigned int count
Definition PrimitiveSetIndirect:115
vector of DrawElementsCommand to be hosted on GPU
Definition PrimitiveSetIndirect:124
virtual unsigned int & firstIndex(const unsigned int &index)
Definition PrimitiveSetIndirect:141
virtual unsigned int & baseInstance(const unsigned int &index)
Definition PrimitiveSetIndirect:143
META_Object(osg, DefaultIndirectCommandDrawElements) DefaultIndirectCommandDrawElements()
Definition PrimitiveSetIndirect:126
virtual void reserveElements(const unsigned int n)
Definition PrimitiveSetIndirect:136
virtual const GLvoid * getDataPointer() const
Definition PrimitiveSetIndirect:133
virtual void resizeElements(const unsigned int n)
Definition PrimitiveSetIndirect:137
virtual unsigned int & count(const unsigned int &index)
Definition PrimitiveSetIndirect:139
virtual unsigned int getNumElements() const
Definition PrimitiveSetIndirect:134
virtual unsigned int & baseVertex(const unsigned int &index)
Definition PrimitiveSetIndirect:142
virtual unsigned int & instanceCount(const unsigned int &index)
Definition PrimitiveSetIndirect:140
DefaultIndirectCommandDrawElements(const DefaultIndirectCommandDrawElements ©, const CopyOp ©op)
Definition PrimitiveSetIndirect:130
virtual unsigned int getElementSize() const
Definition PrimitiveSetIndirect:135
unsigned int getFirstCommandToDraw() const
get offset of the first command in the IndirectCommandDrawArrays
Definition PrimitiveSetIndirect:181
DrawElementsIndirect(Type primType=PrimitiveType, GLenum mode=0, unsigned int firstCommand=0, GLsizei stride=0)
Definition PrimitiveSetIndirect:155
virtual ~DrawElementsIndirect()
Definition PrimitiveSetIndirect:192
GLsizei _stride
Definition PrimitiveSetIndirect:195
void setFirstCommandToDraw(unsigned int i)
Further methods are for advanced DI when you plan to use your own IndirectCommandElement (stride) or ...
Definition PrimitiveSetIndirect:178
const IndirectCommandDrawElements * getIndirectCommandArray() const
Definition PrimitiveSetIndirect:172
IndirectCommandDrawElements * getIndirectCommandArray()
get command array of this indirect primitive set
Definition PrimitiveSetIndirect:171
void setIndirectCommandArray(IndirectCommandDrawElements *idc)
set command array of this indirect primitive set
Definition PrimitiveSetIndirect:162
GLsizei getStride() const
stride (to set if you use custom CommandArray)
Definition PrimitiveSetIndirect:187
ref_ptr< IndirectCommandDrawElements > _indirectCommandArray
Definition PrimitiveSetIndirect:196
DrawElementsIndirect(const DrawElementsIndirect &rhs, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:158
virtual unsigned int getNumPrimitives() const =0
unsigned int _firstCommand
Definition PrimitiveSetIndirect:194
void setStride(GLsizei i)
stride (to set if you use custom CommandArray)
Definition PrimitiveSetIndirect:184
DrawElementsIndirectUByte(const DrawElementsIndirectUByte &array, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:211
virtual void reserveElements(unsigned int numIndices)
Definition PrimitiveSetIndirect:254
DrawElementsIndirectUByte(GLenum mode, unsigned int no, const GLubyte *ptr)
Definition PrimitiveSetIndirect:220
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:236
virtual unsigned int getTotalDataSize() const
Definition PrimitiveSetIndirect:239
DrawElementsIndirectUByte(GLenum mode=0)
Definition PrimitiveSetIndirect:208
VectorGLubyte vector_type
Definition PrimitiveSetIndirect:206
virtual const char * libraryName() const
return the name of the object's library.
Definition PrimitiveSetIndirect:235
virtual void setElement(unsigned int i, unsigned int v)
Definition PrimitiveSetIndirect:256
virtual unsigned int getNumIndices() const
Definition PrimitiveSetIndirect:247
DrawElementsIndirectUByte(GLenum mode, unsigned int no)
Definition PrimitiveSetIndirect:228
virtual Object * clone(const CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:233
virtual const GLvoid * getDataPointer() const
Definition PrimitiveSetIndirect:238
virtual unsigned int getElement(unsigned int i)
Definition PrimitiveSetIndirect:257
virtual void accept(PrimitiveIndexFunctor &functor) const
virtual Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:232
virtual unsigned int index(unsigned int pos) const
Definition PrimitiveSetIndirect:248
virtual unsigned int getNumPrimitives() const
virtual void accept(PrimitiveFunctor &functor) const
virtual void resizeElements(unsigned int numIndices)
Definition PrimitiveSetIndirect:253
virtual bool supportsBufferObject() const
Definition PrimitiveSetIndirect:240
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual GLenum getDataType()
Definition PrimitiveSetIndirect:251
virtual void offsetIndices(int offset)
virtual void addElement(unsigned int v)
Definition PrimitiveSetIndirect:259
virtual ~DrawElementsIndirectUByte()
virtual bool isSameKindAs(const Object *obj) const
Definition PrimitiveSetIndirect:234
DrawElementsIndirectUShort(GLenum mode, unsigned int no, const GLushort *ptr)
Definition PrimitiveSetIndirect:289
virtual unsigned int getNumPrimitives() const
virtual void reserveElements(unsigned int numIndices)
Definition PrimitiveSetIndirect:327
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:310
virtual unsigned int getNumIndices() const
Definition PrimitiveSetIndirect:321
virtual const GLvoid * getDataPointer() const
Definition PrimitiveSetIndirect:312
virtual ~DrawElementsIndirectUShort()
virtual bool supportsBufferObject() const
Definition PrimitiveSetIndirect:314
virtual void addElement(unsigned int v)
Definition PrimitiveSetIndirect:332
virtual void resizeElements(unsigned int numIndices)
Definition PrimitiveSetIndirect:326
DrawElementsIndirectUShort(const DrawElementsIndirectUShort &array, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:280
virtual Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:306
DrawElementsIndirectUShort(GLenum mode=0)
Definition PrimitiveSetIndirect:277
virtual unsigned int index(unsigned int pos) const
Definition PrimitiveSetIndirect:322
DrawElementsIndirectUShort(GLenum mode, unsigned int no)
Definition PrimitiveSetIndirect:297
virtual Object * clone(const CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:307
DrawElementsIndirectUShort(GLenum mode, InputIterator first, InputIterator last)
Definition PrimitiveSetIndirect:302
virtual unsigned int getElement(unsigned int i)
Definition PrimitiveSetIndirect:330
virtual void accept(PrimitiveFunctor &functor) const
virtual void setElement(unsigned int i, unsigned int v)
Definition PrimitiveSetIndirect:329
virtual GLenum getDataType()
Definition PrimitiveSetIndirect:325
VectorGLushort vector_type
Definition PrimitiveSetIndirect:275
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual void offsetIndices(int offset)
virtual bool isSameKindAs(const Object *obj) const
Definition PrimitiveSetIndirect:308
virtual unsigned int getTotalDataSize() const
Definition PrimitiveSetIndirect:313
virtual const char * libraryName() const
return the name of the object's library.
Definition PrimitiveSetIndirect:309
virtual void accept(PrimitiveIndexFunctor &functor) const
DrawElementsIndirectUInt(const DrawElementsIndirectUInt &array, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:352
DrawElementsIndirectUInt(GLenum mode, unsigned int no, const GLuint *ptr)
Definition PrimitiveSetIndirect:361
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:382
virtual const char * libraryName() const
return the name of the object's library.
Definition PrimitiveSetIndirect:381
virtual Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:378
virtual void accept(PrimitiveFunctor &functor) const
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual void setElement(unsigned int i, unsigned int v)
Definition PrimitiveSetIndirect:400
virtual unsigned int index(unsigned int pos) const
Definition PrimitiveSetIndirect:394
virtual GLenum getDataType()
Definition PrimitiveSetIndirect:397
virtual bool supportsBufferObject() const
Definition PrimitiveSetIndirect:386
virtual void addElement(unsigned int v)
Definition PrimitiveSetIndirect:402
virtual bool isSameKindAs(const Object *obj) const
Definition PrimitiveSetIndirect:380
virtual unsigned int getNumPrimitives() const
VectorGLuint vector_type
Definition PrimitiveSetIndirect:347
DrawElementsIndirectUInt(GLenum mode=0)
Definition PrimitiveSetIndirect:349
virtual unsigned int getNumIndices() const
Definition PrimitiveSetIndirect:393
virtual unsigned int getTotalDataSize() const
Definition PrimitiveSetIndirect:385
virtual void accept(PrimitiveIndexFunctor &functor) const
virtual void resizeElements(unsigned int numIndices)
Definition PrimitiveSetIndirect:398
DrawElementsIndirectUInt(GLenum mode, unsigned int no)
Definition PrimitiveSetIndirect:369
virtual const GLvoid * getDataPointer() const
Definition PrimitiveSetIndirect:384
virtual unsigned int getElement(unsigned int i)
Definition PrimitiveSetIndirect:401
DrawElementsIndirectUInt(GLenum mode, InputIterator first, InputIterator last)
Definition PrimitiveSetIndirect:374
virtual ~DrawElementsIndirectUInt()
virtual void reserveElements(unsigned int numIndices)
Definition PrimitiveSetIndirect:399
virtual Object * clone(const CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:379
virtual void offsetIndices(int offset)
unsigned int getNumCommandsToDraw() const
count of Indirect Command to execute
Definition PrimitiveSetIndirect:476
MultiDrawElementsIndirectUShort(GLenum mode, InputIterator first, InputIterator last)
Definition PrimitiveSetIndirect:454
unsigned int _count
Definition PrimitiveSetIndirect:479
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual osg::Object * clone(const osg::CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:462
MultiDrawElementsIndirectUShort(GLenum mode, unsigned int no)
Definition PrimitiveSetIndirect:446
void setNumCommandsToDraw(unsigned int i)
if you want to draw a subset of the IndirectCommandElement(FirstCommandToDraw,NumCommandsToDraw)
Definition PrimitiveSetIndirect:474
virtual void accept(PrimitiveFunctor &functor) const
virtual void accept(PrimitiveIndexFunctor &functor) const
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:464
MultiDrawElementsIndirectUShort(GLenum mode=0)
Definition PrimitiveSetIndirect:417
MultiDrawElementsIndirectUShort(const MultiDrawElementsIndirectUShort &mdi, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:424
virtual bool isSameKindAs(const osg::Object *obj) const
Definition PrimitiveSetIndirect:463
virtual osg::Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:461
MultiDrawElementsIndirectUShort(GLenum mode, unsigned int no, const GLushort *ptr)
Definition PrimitiveSetIndirect:435
virtual unsigned int getNumPrimitives() const
virtual ~MultiDrawElementsIndirectUShort()
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:534
unsigned int _count
Definition PrimitiveSetIndirect:547
virtual osg::Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:531
virtual bool isSameKindAs(const osg::Object *obj) const
Definition PrimitiveSetIndirect:533
MultiDrawElementsIndirectUByte(GLenum mode=0)
Definition PrimitiveSetIndirect:486
MultiDrawElementsIndirectUByte(GLenum mode, InputIterator first, InputIterator last)
Definition PrimitiveSetIndirect:524
unsigned int getNumCommandsToDraw() const
count of Indirect Command to execute
Definition PrimitiveSetIndirect:544
virtual void accept(PrimitiveFunctor &functor) const
virtual unsigned int getNumPrimitives() const
virtual void draw(State &state, bool useVertexBufferObjects) const
void setNumCommandsToDraw(unsigned int i)
count of Indirect Command to execute
Definition PrimitiveSetIndirect:542
virtual osg::Object * clone(const osg::CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:532
MultiDrawElementsIndirectUByte(GLenum mode, unsigned int no, const GLubyte *ptr)
Definition PrimitiveSetIndirect:505
virtual void accept(PrimitiveIndexFunctor &functor) const
virtual ~MultiDrawElementsIndirectUByte()
MultiDrawElementsIndirectUByte(GLenum mode, unsigned int no)
Definition PrimitiveSetIndirect:516
MultiDrawElementsIndirectUByte(const MultiDrawElementsIndirectUByte &mdi, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:494
virtual bool isSameKindAs(const osg::Object *obj) const
Definition PrimitiveSetIndirect:599
virtual ~MultiDrawElementsIndirectUInt()
virtual unsigned int getNumPrimitives() const
MultiDrawElementsIndirectUInt(GLenum mode=0)
Definition PrimitiveSetIndirect:554
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:600
MultiDrawElementsIndirectUInt(GLenum mode, unsigned int no, const GLuint *ptr)
Definition PrimitiveSetIndirect:571
MultiDrawElementsIndirectUInt(GLenum mode, unsigned int no)
Definition PrimitiveSetIndirect:582
virtual osg::Object * clone(const osg::CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:598
MultiDrawElementsIndirectUInt(GLenum mode, InputIterator first, InputIterator last)
Definition PrimitiveSetIndirect:590
void setNumCommandsToDraw(unsigned int i)
count of Indirect Command to execute
Definition PrimitiveSetIndirect:608
virtual void accept(PrimitiveFunctor &functor) const
MultiDrawElementsIndirectUInt(const MultiDrawElementsIndirectUInt &mdi, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:561
virtual osg::Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:597
unsigned int _count
Definition PrimitiveSetIndirect:613
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual void accept(PrimitiveIndexFunctor &functor) const
unsigned int getNumCommandsToDraw() const
count of Indirect Command to execute
Definition PrimitiveSetIndirect:610
virtual bool isSameKindAs(const osg::Object *obj) const
Definition PrimitiveSetIndirect:642
void setFirstCommandToDraw(unsigned int i)
set offset of the first command in the IndirectCommandDrawArrays
Definition PrimitiveSetIndirect:664
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual osg::Object * clone(const osg::CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:641
virtual void accept(PrimitiveFunctor &functor) const
void setIndirectCommandArray(IndirectCommandDrawArrays *idc)
Definition PrimitiveSetIndirect:669
const IndirectCommandDrawArrays * getIndirectCommandArray() const
Definition PrimitiveSetIndirect:676
IndirectCommandDrawArrays * getIndirectCommandArray()
Definition PrimitiveSetIndirect:677
virtual void accept(PrimitiveIndexFunctor &functor) const
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:644
virtual unsigned int index(unsigned int pos) const
virtual const char * libraryName() const
return the name of the object's library.
Definition PrimitiveSetIndirect:643
virtual unsigned int getNumIndices() const
virtual osg::Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:640
DrawArraysIndirect(const DrawArraysIndirect &dal, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:632
unsigned int _firstCommand
Definition PrimitiveSetIndirect:681
void setStride(GLsizei i)
stride (to set if you use custom CommandArray)
Definition PrimitiveSetIndirect:658
GLsizei _stride
Definition PrimitiveSetIndirect:682
ref_ptr< IndirectCommandDrawArrays > _indirectCommandArray
Definition PrimitiveSetIndirect:683
GLsizei getStride() const
stride (to set if you use custom CommandArray)
Definition PrimitiveSetIndirect:661
unsigned int getFirstCommandToDraw() const
get offset of the first command in the IndirectCommandDrawArrays
Definition PrimitiveSetIndirect:667
virtual unsigned int getNumPrimitives() const
virtual void offsetIndices(int offset)
DrawArraysIndirect(GLenum mode=0, unsigned int firstcommand=0, GLsizei stride=0)
Definition PrimitiveSetIndirect:624
unsigned int _count
Definition PrimitiveSetIndirect:728
virtual osg::Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition PrimitiveSetIndirect:706
virtual osg::Object * clone(const osg::CopyOp ©op) const
Clone an object, with Object* return type.
Definition PrimitiveSetIndirect:707
virtual void accept(PrimitiveIndexFunctor &functor) const
MultiDrawArraysIndirect(GLenum mode=0, unsigned int firstcommand=0, unsigned int count=0, GLsizei stride=0)
Definition PrimitiveSetIndirect:694
MultiDrawArraysIndirect(const MultiDrawArraysIndirect &dal, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition PrimitiveSetIndirect:701
virtual unsigned int getNumIndices() const
virtual unsigned int getNumPrimitives() const
virtual unsigned int index(unsigned int pos) const
virtual void accept(PrimitiveFunctor &functor) const
virtual bool isSameKindAs(const osg::Object *obj) const
Definition PrimitiveSetIndirect:708
virtual void draw(State &state, bool useVertexBufferObjects) const
virtual void offsetIndices(int offset)
unsigned int getNumCommandsToDraw() const
count of Indirect Command to execute
Definition PrimitiveSetIndirect:725
virtual const char * className() const
return the name of the object's class type.
Definition PrimitiveSetIndirect:709
void setNumCommandsToDraw(unsigned int i)
count of Indirect Command to execute
Definition PrimitiveSetIndirect:723
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings,...
Definition State:80
#define NULL
Definition Export:55
#define OSG_EXPORT
Definition Export:39