12 #include <osg/MatrixTransform>
13 #include <osg/Drawable>
14 #include <tbb/concurrent_vector.h>
21 class DtDiGuyScenario;
22 class DtDiGuyOsgGraphicsInstanceGroup;
23 class DtGlTextureBufferObject;
38 virtual const char*
className()
const {
return "DtDiGuyInstanceDrawable"; }
53 virtual void copy_tbo_data(
const int& num_floats,
const float* data );
62 mutable tbb::concurrent_vector< DtDiGuyOsgGraphicsInstanceGroup*>
myDrawables;
77 virtual osg::Object*
clone(
const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY )
const;
Contains the DtOsgTextureBufferObjectApplyAttribute class.
Wrapper for OpenGL Texture Buffer Object.
Definition: DtGlTextureBufferObject.h:28
virtual void reset()
called at the beginning of every frame to clear out drawables list
DtDiGuyInstanceDrawable()
ctor
osg::ref_ptr< TextureBufferObjectApplyAttribute > m_diguy_texture_buffer_attribute
Definition: DtDiGuyInstanceDrawable.h:69
osg::Vec3d myMutableCameraPosition
Definition: DtDiGuyInstanceDrawable.h:65
virtual void addDrawable(DtDiGuyOsgGraphicsInstanceGroup *drawable)
adds an instanced drawable
tbb::concurrent_vector< DtDiGuyOsgGraphicsInstanceGroup * > myTransparentDrawables
Definition: DtDiGuyInstanceDrawable.h:63
virtual osg::Object * clone(const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) const
Clone this object.
osg::ref_ptr< osg::StateAttribute > myShaderProgram
Definition: DtDiGuyInstanceDrawable.h:66
virtual void releaseGLObjects(osg::State *state) const
releases texture data
virtual ~DtDiGuyInstanceDrawable()
dtor
virtual void setupTextureBufferObject()
virtual void copy_tbo_data(const int &num_floats, const float *data)
function called by main thread job to get data down to the shared GPU
Class that renders all the diguy instance objects in one osg drawable, major performance improvement...
Definition: DtDiGuyInstanceDrawable.h:27
DtGlTextureBufferObject * m_diguy_texture_buffer
Definition: DtDiGuyInstanceDrawable.h:68
tbb::concurrent_vector< DtDiGuyOsgGraphicsInstanceGroup * > myDrawables
Definition: DtDiGuyInstanceDrawable.h:62
virtual const char * className() const
needed by scene graph visualizer
Definition: DtDiGuyInstanceDrawable.h:38
virtual void drawImplementation(osg::RenderInfo &renderInfo) const
draws all the drawables.
This class is part of the DI-Guy Graphics API. It overrides the class diguyGraphicsInstanceGroup. Detailed documentation is in the implementation file documentation here.
Definition: DtDiGuyOsgGraphicsInstanceGroup.h:45