17#ifndef OSG_INDIRECTPRIMITIVESET
18#define OSG_INDIRECTPRIMITIVESET 1
34 virtual unsigned int getTotalDataSize()
const {
return getNumElements()*getElementSize(); }
36 virtual unsigned int &
count(
const unsigned int&index)=0;
38 virtual unsigned int &
first(
const unsigned int&index)=0;
55 virtual unsigned int getTotalDataSize()
const {
return getNumElements()*getElementSize(); }
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; }
164 _indirectCommandArray = idc;
236 virtual const char*
className()
const {
return "DrawElementsIndirectUByte"; }
239 virtual unsigned int getTotalDataSize()
const {
return static_cast<unsigned int>(size()); }
242 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
247 virtual unsigned int getNumIndices()
const {
return static_cast<unsigned int>(size()); }
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]; }
259 virtual void addElement(
unsigned int v) { push_back(GLubyte(v)); }
301 template <
class InputIterator>
310 virtual const char*
className()
const {
return "DrawElementsIndirectUShort"; }
313 virtual unsigned int getTotalDataSize()
const {
return 2u*
static_cast<unsigned int>(size()); }
316 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
321 virtual unsigned int getNumIndices()
const {
return static_cast<unsigned int>(size()); }
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]; }
332 virtual void addElement(
unsigned int v) { push_back(GLushort(v)); }
373 template <
class InputIterator>
382 virtual const char*
className()
const {
return "DrawElementsIndirectUInt"; }
385 virtual unsigned int getTotalDataSize()
const {
return 4u*
static_cast<unsigned int>(size()); }
388 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
393 virtual unsigned int getNumIndices()
const {
return static_cast<unsigned int>(size()); }
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]; }
402 virtual void addElement(
unsigned int v) { push_back(GLuint(v)); }
421 _primitiveType=(
Type(MultiDrawElementsUShortIndirectPrimitiveType));
439 _primitiveType=(
Type(MultiDrawElementsUShortIndirectPrimitiveType));
450 _primitiveType=(
Type(MultiDrawElementsUShortIndirectPrimitiveType));
453 template <
class InputIterator>
458 _primitiveType=(
Type(MultiDrawElementsUShortIndirectPrimitiveType));
464 virtual const char*
className()
const {
return "MultiDrawElementsIndirectUShort"; }
466 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
490 _primitiveType=(
Type(MultiDrawElementsUByteIndirectPrimitiveType));
509 _primitiveType=(
Type(MultiDrawElementsUByteIndirectPrimitiveType));
520 _primitiveType=(
Type(MultiDrawElementsUByteIndirectPrimitiveType));
523 template <
class InputIterator>
528 _primitiveType=(
Type(MultiDrawElementsUByteIndirectPrimitiveType));
534 virtual const char*
className()
const {
return "MultiDrawElementsIndirectUByte"; }
536 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
558 _primitiveType=(
Type(MultiDrawElementsUIntIndirectPrimitiveType));
575 _primitiveType=(
Type(MultiDrawElementsUIntIndirectPrimitiveType));
586 _primitiveType=(
Type(MultiDrawElementsUIntIndirectPrimitiveType));
589 template <
class InputIterator>
594 _primitiveType=(
Type(MultiDrawElementsUIntIndirectPrimitiveType));
600 virtual const char*
className()
const {
return "MultiDrawElementsIndirectUInt"; }
602 virtual void draw(
State& state,
bool useVertexBufferObjects)
const;
626 _firstCommand(firstcommand),
634 _firstCommand(dal._firstCommand),
635 _stride(dal._stride),
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;
671 _indirectCommandArray = idc;
698 _primitiveType=
Type(MultiDrawArraysIndirectPrimitiveType);
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;
Definition BufferObject:495
void setBufferObject(BufferObject *bufferObject)
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
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
The MultiDrawArraysIndirect PrimitiveSet.
Definition PrimitiveSetIndirect:621
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
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
Definition PrimitiveSetIndirect:644
virtual unsigned int index(unsigned int pos) const
virtual const char * libraryName() const
Definition PrimitiveSetIndirect:643
virtual unsigned int getNumIndices() const
virtual osg::Object * cloneType() const
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
The DrawElementsIndirectUByte PrimitiveSet.
Definition PrimitiveSetIndirect:203
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
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
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
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
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
The DrawElementsIndirectUInt PrimitiveSet.
Definition PrimitiveSetIndirect:344
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
Definition PrimitiveSetIndirect:382
virtual const char * libraryName() const
Definition PrimitiveSetIndirect:381
virtual Object * cloneType() const
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
Definition PrimitiveSetIndirect:379
virtual void offsetIndices(int offset)
The DrawElementsIndirectUShort PrimitiveSet.
Definition PrimitiveSetIndirect:272
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
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
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
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
Definition PrimitiveSetIndirect:309
virtual void accept(PrimitiveIndexFunctor &functor) const
The DrawElementsIndirect base PrimitiveSet.
Definition PrimitiveSetIndirect:152
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)
set offset of the first command to draw in the IndirectCommandDrawArrays
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
Definition PrimitiveSet:337
Definition BufferObject:645
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
Definition MixinVector:29
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
bool empty() const
Definition MixinVector:91
The MultiDrawArraysIndirect PrimitiveSet.
Definition PrimitiveSetIndirect:691
unsigned int _count
Definition PrimitiveSetIndirect:728
virtual osg::Object * cloneType() const
Definition PrimitiveSetIndirect:706
virtual osg::Object * clone(const osg::CopyOp ©op) const
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
Definition PrimitiveSetIndirect:709
void setNumCommandsToDraw(unsigned int i)
count of Indirect Command to execute
Definition PrimitiveSetIndirect:723
Definition PrimitiveSetIndirect:484
virtual const char * className() const
Definition PrimitiveSetIndirect:534
unsigned int _count
Definition PrimitiveSetIndirect:547
virtual osg::Object * cloneType() const
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
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
Definition PrimitiveSetIndirect:552
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
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
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
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
The MultiDrawElementsIndirect PrimitiveSets.
Definition PrimitiveSetIndirect:415
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
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
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
Definition PrimitiveSetIndirect:461
MultiDrawElementsIndirectUShort(GLenum mode, unsigned int no, const GLushort *ptr)
Definition PrimitiveSetIndirect:435
virtual unsigned int getNumPrimitives() const
virtual ~MultiDrawElementsIndirectUShort()
Definition PrimitiveSet:54
Definition PrimitiveSet:103
Definition PrimitiveSet:125
Type
Definition PrimitiveSet:129
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
T * get(unsigned int contextID)
Definition ContextData:152
#define NULL
Definition osg/Export:55
#define OSG_EXPORT
Definition osg/Export:39
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
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