25#ifndef GL_NV_occlusion_query
27 #define GL_OCCLUSION_TEST_HP 0x8165
28 #define GL_OCCLUSION_TEST_RESULT_HP 0x8166
29 #define GL_PIXEL_COUNTER_BITS_NV 0x8864
30 #define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
31 #define GL_PIXEL_COUNT_NV 0x8866
32 #define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
36#ifndef GL_ARB_occlusion_query
38 #define GL_SAMPLES_PASSED_ARB 0x8914
39 #define GL_QUERY_COUNTER_BITS_ARB 0x8864
40 #define GL_CURRENT_QUERY_ARB 0x8865
41 #define GL_QUERY_RESULT_ARB 0x8866
42 #define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
47#ifndef GL_TIME_ELAPSED
48 #define GL_TIME_ELAPSED 0x88BF
49 #define GL_TIMESTAMP 0x8E28
52#ifndef GL_QUERY_RESULT
53 #define GL_QUERY_RESULT 0x8866
54 #define GL_QUERY_RESULT_AVAILABLE 0x8867
58#define INLINE_DRAWABLE_DRAW
69class ArrayDispatchers;
123 if(!_boundingSphereComputed) getBoundingBox();
124 return _boundingSphere;
132 if(!_boundingSphereComputed)
134 _boundingBox = _initialBoundingBox;
136 if (_computeBoundingBoxCallback.valid())
137 _boundingBox.
expandBy(_computeBoundingBoxCallback->computeBound(*
this));
139 _boundingBox.expandBy(computeBoundingBox());
141 if(_boundingBox.valid()){
142 _boundingSphere.set(_boundingBox.center(), _boundingBox.radius());
144 _boundingSphere.init();
147 _boundingSphereComputed =
true;
222 inline GLuint&
getDisplayList(
unsigned int contextID)
const {
return _globjList[contextID]; }
238#ifdef OSG_USE_DEPRECATED_API
240 inline void dirtyDisplayList()
265#ifdef INLINE_DRAWABLE_DRAW
266 inline void draw(
RenderInfo& renderInfo)
const;
273 if (_drawCallback.valid())
274 _drawCallback->drawImplementation(renderInfo,
this);
276 drawImplementation(renderInfo);
317 if (_createVertexArrayStateCallback.valid())
return _createVertexArrayStateCallback->createVertexArrayStateImplementation(renderInfo,
this);
318 else return createVertexArrayStateImplementation(renderInfo);
408 SECONDARY_COLORS = 4,
413 TEXTURE_COORDS_0 = TEXTURE_COORDS,
414 TEXTURE_COORDS_1 = TEXTURE_COORDS_0+1,
415 TEXTURE_COORDS_2 = TEXTURE_COORDS_0+2,
416 TEXTURE_COORDS_3 = TEXTURE_COORDS_0+3,
417 TEXTURE_COORDS_4 = TEXTURE_COORDS_0+4,
418 TEXTURE_COORDS_5 = TEXTURE_COORDS_0+5,
419 TEXTURE_COORDS_6 = TEXTURE_COORDS_0+6,
420 TEXTURE_COORDS_7 = TEXTURE_COORDS_0+7
548#ifdef INLINE_DRAWABLE_DRAW
553 if (useVertexArrayObject)
586#ifdef OSG_GL_DISPLAYLISTS_AVAILABLE
600 glNewList( globj, GL_COMPILE );
virtual void accept(ArrayVisitor &)=0
void applyArray(Drawable::AttributeType type, Array *array)
Definition Drawable:649
virtual void apply(Vec3dArray &array)
Definition Drawable:645
Drawable::AttributeFunctor & _af
Definition Drawable:661
AttributeFunctorArrayVisitor(Drawable::AttributeFunctor &af)
Definition Drawable:626
virtual void apply(Vec4dArray &array)
Definition Drawable:646
virtual void apply(UByteArray &array)
Definition Drawable:635
virtual ~AttributeFunctorArrayVisitor()
Definition Drawable:630
virtual void apply(ByteArray &array)
Definition Drawable:632
virtual void apply(UIntArray &array)
Definition Drawable:637
AttributeFunctorArrayVisitor & operator=(const AttributeFunctorArrayVisitor &)
Definition Drawable:660
virtual void apply(ShortArray &array)
Definition Drawable:633
virtual void apply(IntArray &array)
Definition Drawable:634
virtual void apply(Vec2dArray &array)
Definition Drawable:644
Drawable::AttributeType _type
Definition Drawable:662
virtual void apply(DoubleArray &array)
Definition Drawable:643
virtual void apply(FloatArray &array)
Definition Drawable:639
virtual void apply(Vec4Array &array)
Definition Drawable:642
virtual void apply(Vec3Array &array)
Definition Drawable:641
virtual void apply(Vec2Array &array)
Definition Drawable:640
virtual void apply(Vec4ubArray &array)
Definition Drawable:638
virtual void apply(UShortArray &array)
Definition Drawable:636
Definition BoundingBox:34
void expandBy(const vec_type &v)
Definition BoundingBox:156
Definition BoundingSphere:35
Drawable::ConstAttributeFunctor & _af
Definition Drawable:705
virtual void apply(const Vec2dArray &array)
Definition Drawable:687
ConstAttributeFunctorArrayVisitor(Drawable::ConstAttributeFunctor &af)
Definition Drawable:669
virtual void apply(const FloatArray &array)
Definition Drawable:682
virtual void apply(const Vec3dArray &array)
Definition Drawable:688
virtual void apply(const UByteArray &array)
Definition Drawable:678
virtual void apply(const Vec4dArray &array)
Definition Drawable:689
virtual void apply(const Vec2Array &array)
Definition Drawable:683
void applyArray(Drawable::AttributeType type, const Array *array)
Definition Drawable:692
virtual ~ConstAttributeFunctorArrayVisitor()
Definition Drawable:673
virtual void apply(const UIntArray &array)
Definition Drawable:680
virtual void apply(const IntArray &array)
Definition Drawable:677
virtual void apply(const DoubleArray &array)
Definition Drawable:686
virtual void apply(const UShortArray &array)
Definition Drawable:679
ConstAttributeFunctorArrayVisitor & operator=(const ConstAttributeFunctorArrayVisitor &)
Definition Drawable:703
virtual void apply(const ShortArray &array)
Definition Drawable:676
Drawable::AttributeType _type
Definition Drawable:706
virtual void apply(const Vec4ubArray &array)
Definition Drawable:681
virtual void apply(const ByteArray &array)
Definition Drawable:675
virtual void apply(const Vec3Array &array)
Definition Drawable:684
virtual void apply(const Vec4Array &array)
Definition Drawable:685
virtual void apply(AttributeType, unsigned int, Vec4 *)
Definition Drawable:441
virtual void apply(AttributeType, unsigned int, GLbyte *)
Definition Drawable:430
virtual void apply(AttributeType, unsigned int, float *)
Definition Drawable:438
virtual void apply(AttributeType, unsigned int, GLushort *)
Definition Drawable:435
virtual void apply(AttributeType, unsigned int, GLint *)
Definition Drawable:432
virtual void apply(AttributeType, unsigned int, GLuint *)
Definition Drawable:436
virtual void apply(AttributeType, unsigned int, Vec3d *)
Definition Drawable:446
virtual void apply(AttributeType, unsigned int, double *)
Definition Drawable:444
virtual void apply(AttributeType, unsigned int, Vec4ub *)
Definition Drawable:442
virtual void apply(AttributeType, unsigned int, GLshort *)
Definition Drawable:431
virtual ~AttributeFunctor()
Definition Drawable:428
virtual void apply(AttributeType, unsigned int, Vec2 *)
Definition Drawable:439
virtual void apply(AttributeType, unsigned int, Vec2d *)
Definition Drawable:445
virtual void apply(AttributeType, unsigned int, Vec3 *)
Definition Drawable:440
virtual void apply(AttributeType, unsigned int, GLubyte *)
Definition Drawable:434
virtual void apply(AttributeType, unsigned int, Vec4d *)
Definition Drawable:447
virtual void apply(AttributeType, unsigned int, const Vec4d *)
Definition Drawable:483
virtual void apply(AttributeType, unsigned int, const GLushort *)
Definition Drawable:471
virtual ~ConstAttributeFunctor()
Definition Drawable:464
virtual void apply(AttributeType, unsigned int, const Vec4ub *)
Definition Drawable:478
virtual void apply(AttributeType, unsigned int, const GLshort *)
Definition Drawable:467
virtual void apply(AttributeType, unsigned int, const Vec2 *)
Definition Drawable:475
virtual void apply(AttributeType, unsigned int, const Vec3d *)
Definition Drawable:482
virtual void apply(AttributeType, unsigned int, const float *)
Definition Drawable:474
virtual void apply(AttributeType, unsigned int, const Vec3 *)
Definition Drawable:476
virtual void apply(AttributeType, unsigned int, const GLbyte *)
Definition Drawable:466
virtual void apply(AttributeType, unsigned int, const double *)
Definition Drawable:480
virtual void apply(AttributeType, unsigned int, const GLint *)
Definition Drawable:468
virtual void apply(AttributeType, unsigned int, const GLubyte *)
Definition Drawable:470
virtual void apply(AttributeType, unsigned int, const Vec4 *)
Definition Drawable:477
virtual void apply(AttributeType, unsigned int, const Vec2d *)
Definition Drawable:481
virtual void apply(AttributeType, unsigned int, const GLuint *)
Definition Drawable:472
virtual void accept(PrimitiveFunctor &) const
Definition Drawable:503
virtual bool supports(const PrimitiveIndexFunctor &) const
Definition Drawable:506
void setComputeBoundingBoxCallback(ComputeBoundingBoxCallback *callback)
Definition Drawable:174
virtual bool supports(const AttributeFunctor &) const
Definition Drawable:452
void setShape(const ref_ptr< T > &shape)
Definition Drawable:190
ref_ptr< Shape > _shape
Definition Drawable:531
const BoundingBox & getInitialBound() const
Definition Drawable:119
virtual void compileGLObjects(RenderInfo &renderInfo) const
virtual bool supports(const PrimitiveFunctor &) const
Definition Drawable:497
static GLuint generateDisplayList(unsigned int contextID, unsigned int sizeHint=0)
Drawable(const Drawable &drawable, const CopyOp ©op=CopyOp::SHALLOW_COPY)
virtual void accept(AttributeFunctor &)
Definition Drawable:457
virtual void dirtyGLObjects()
virtual void releaseGLObjects(State *state=0) const
virtual void resizeGLObjectBuffers(unsigned int maxSize)
virtual bool supports(const ConstAttributeFunctor &) const
Definition Drawable:487
virtual void setShape(Shape *shape)
Definition Drawable:188
bool getSupportsDisplayList() const
Definition Drawable:210
DrawCallback * getDrawCallback()
Definition Drawable:370
const VertexArrayStateList & getVertexArrayStateList() const
Definition Drawable:328
const Shape * getShape() const
Definition Drawable:196
CreateVertexArrayStateCallback * getCreateVertexArrayStateCallback()
Definition Drawable:308
void setBound(const BoundingBox &bb) const
bool _useVertexArrayObject
Definition Drawable:537
static void deleteDisplayList(unsigned int contextID, GLuint globj, unsigned int sizeHint=0)
void drawInner(RenderInfo &renderInfo) const
Definition Drawable:271
const ComputeBoundingBoxCallback * getComputeBoundingBoxCallback() const
Definition Drawable:180
virtual unsigned int getGLObjectSizeHint() const
Definition Drawable:252
ref_ptr< DrawCallback > _drawCallback
Definition Drawable:544
void setUseVertexArrayObject(bool flag)
VertexArrayStateList _vertexArrayStateList
Definition Drawable:542
const CreateVertexArrayStateCallback * getCreateVertexArrayStateCallback() const
Definition Drawable:311
DrawableCullCallback CullCallback
Definition Drawable:346
BoundingBox _boundingBox
Definition Drawable:529
VertexArrayState * createVertexArrayState(RenderInfo &renderInfo) const
Definition Drawable:315
ref_ptr< CreateVertexArrayStateCallback > _createVertexArrayStateCallback
Definition Drawable:545
GLuint & getDisplayList(unsigned int contextID) const
Definition Drawable:222
bool getUseDisplayList() const
Definition Drawable:219
void setUseDisplayList(bool flag)
DrawableEventCallback EventCallback
Definition Drawable:345
virtual BoundingBox computeBoundingBox() const
BoundingBox _initialBoundingBox
Definition Drawable:527
void setInitialBound(const osg::BoundingBox &bbox)
Definition Drawable:116
bool getUseVertexArrayObject() const
Definition Drawable:236
virtual void setThreadSafeRefUnref(bool threadSafe)
const BoundingBox & getBoundingBox() const
Definition Drawable:130
static unsigned int getMinimumNumberOfDisplayListsToRetainInCache()
GLObjectList _globjList
Definition Drawable:540
void draw(RenderInfo &renderInfo) const
Definition Drawable:549
virtual void setUseVertexBufferObjects(bool flag)
virtual void accept(ConstAttributeFunctor &) const
Definition Drawable:492
ComputeBoundingBoxCallback * getComputeBoundingBoxCallback()
Definition Drawable:177
void setVertexArrayStateList(VertexArrayStateList &vasl)
Definition Drawable:324
bool _supportsDisplayList
Definition Drawable:533
virtual const Drawable * asDrawable() const
Definition Drawable:105
const BoundingSphere & getBound() const
Definition Drawable:121
bool _useDisplayList
Definition Drawable:534
virtual void setDrawCallback(DrawCallback *dc)
Definition Drawable:367
VertexArrayStateList & getVertexArrayStateList()
Definition Drawable:326
virtual BoundingSphere computeBound() const
virtual void drawImplementation(RenderInfo &) const
Definition Drawable:380
AttributeTypes
Definition Drawable:403
unsigned int AttributeType
Definition Drawable:400
void setCreateVertexArrayStateCallback(CreateVertexArrayStateCallback *cb)
Definition Drawable:305
bool _useVertexBufferObjects
Definition Drawable:536
const DrawCallback * getDrawCallback() const
Definition Drawable:373
void setSupportsDisplayList(bool flag)
MatrixList getWorldMatrices(const osg::Node *haltTraversalAtNode=0) const
DrawableUpdateCallback UpdateCallback
Definition Drawable:344
static void setMinimumNumberOfDisplayListsToRetainInCache(unsigned int minimum)
ref_ptr< ComputeBoundingBoxCallback > _computeBoundingBoxCallback
Definition Drawable:528
bool getUseVertexBufferObjects() const
Definition Drawable:229
bool _supportsVertexBufferObjects
Definition Drawable:535
virtual void accept(PrimitiveIndexFunctor &) const
Definition Drawable:512
virtual Drawable * asDrawable()
Definition Drawable:101
virtual VertexArrayState * createVertexArrayStateImplementation(RenderInfo &renderInfo) const
virtual void computeDataVariance()
Shape * getShape()
Definition Drawable:193
osg::buffered_value< GLuint > GLObjectList
Definition Drawable:539
size_type size() const
Definition MixinVector:92
const_reference front() const
Definition MixinVector:138
bool empty() const
Definition MixinVector:91
@ DYNAMIC
Definition Object:218
DataVariance getDataVariance() const
Definition Object:231
Definition PrimitiveSet:54
Definition PrimitiveSet:103
State * getState()
Definition RenderInfo:58
unsigned int getContextID() const
Definition RenderInfo:55
bool useVertexBufferObject(bool useVBO) const
Definition State:790
VertexArrayState * getCurrentVertexArrayState() const
Definition State:547
bool useVertexArrayObject(bool useVAO) const
Definition State:793
void bindVertexArrayObject(const VertexArrayState *vas)
Definition State:633
A concrete array holding elements of type T.
Definition Array:243
Definition VertexArrayState:219
Definition VertexArrayState:25
void setRequiresSetArrays(bool flag)
Definition VertexArrayState:176
Definition buffered_value:27
T * get() const
Definition ref_ptr:117
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
std::vector< Matrix > MatrixList
Definition Node:53
#define OSG_EXPORT
Definition osg/Export:39
ComputeBoundingBoxCallback()
Definition Drawable:163
virtual BoundingBox computeBound(const osg::Drawable &) const
Definition Drawable:170
ComputeBoundingBoxCallback(const ComputeBoundingBoxCallback &org, const CopyOp ©op)
Definition Drawable:165
META_Object(osg, ComputeBoundingBoxCallback)
CreateVertexArrayStateCallback()
Definition Drawable:289
CreateVertexArrayStateCallback(const CreateVertexArrayStateCallback &rhs, const CopyOp ©op)
Definition Drawable:291
META_Object(osg, CreateVertexArrayStateCallback)
virtual osg::VertexArrayState * createVertexArrayStateImplementation(osg::RenderInfo &renderInfo, const osg::Drawable *drawable) const
Definition Drawable:297
META_Object(osg, DrawCallback)
DrawCallback(const DrawCallback &org, const CopyOp ©op)
Definition Drawable:357
virtual void drawImplementation(osg::RenderInfo &, const osg::Drawable *) const
Definition Drawable:363
DrawCallback()
Definition Drawable:355