27 #include <osg/Geometry>
28 #include <osg/Texture>
29 #include <osg/Referenced>
31 #include <tbb/concurrent_queue.h>
32 #include <tbb/atomic.h>
35 #include <boost/signals.hpp>
41 #define INDIRECTGEOMETRYREGISTRAR_DEBUG 0
55 class DtIndirectGeometryRegistrar;
57 class DtIndirectTextureCollectionPolicy;
59 class DtAggregatedGeometry;
61 class DtAggregatedGeometryCreator;
62 class DtIndirectGeometryAggregatorCreator;
63 class DtCoreGlBufferCreator;
64 class DtOsgShaderManager;
136 virtual void setName(
const std::string& name);
144 bool cullFaceEnabled =
false,
149 virtual void processRegisterModelQueue(
DtOsgRenderer* renderer);
152 virtual bool beingProcessed();
155 virtual unsigned int rebuildIfNeeded(osg::RenderInfo& renderInfo,
unsigned int currentFrameNum);
158 virtual unsigned int numModelsInQueue();
161 virtual int numModels(
void)
const;
164 virtual int modelId(
int index)
const;
167 virtual bool isModelDownloaded(
int modelId)
const;
173 virtual int numGeometriesForModelID(
int modelId)
const;
176 virtual void bindBuffers();
181 virtual void unbindBuffers();
198 virtual GLenum indicesType(
void)
const;
203 virtual void releaseGLObjects(osg::State* state)
const;
207 virtual bool registeredModelsDirty();
216 virtual void setPagerHandlesModelLoading(
bool value);
217 virtual bool pagerHandlesModelLoading();
220 virtual boost::mutex& addingModelsMutex();
226 bool cullFaceEnabled =
true,
232 virtual bool allTexturesReady(
const int modelId,
unsigned int contextID)
const;
247 , myCullFaceEnabled(true)
311 static const std::string& theClassName();
The DtAggregatedGeometry creator for the DtAggregatedGeometryCreator class.
Definition: DtAggregatedGeometry.h:274
Definition: DtIndirectGeometryRegistrar.h:242
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:125
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtIndirectPolygonOffset myPolygonOffset
Definition: DtIndirectGeometryRegistrar.h:259
QueueRegisterModelOps myQueueRegisterModelOps
Definition: DtIndirectGeometryRegistrar.h:263
contains the information which indirect needs for all geometry found by the geometry aggregator after...
Definition: DtAggregatedGeometry.h:99
DtDe & myDe
Definition: DtIndirectGeometryRegistrar.h:313
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains the DtIndirectTextureProcessor class declaration.
creator for DtCoreGlBuffer
Definition: DtCoreGlBuffer.h:58
Indirect geometry can have multiple models and their corresponding ids registered in it...
Definition: DtIndirectGeometryRegistrar.h:101
DtGeometrySpecification class declaration.
Abstract class to look in the stateset and collect textures specified via its template The effect tex...
Definition: DtIndirectTextureCollectionPolicy.h:38
std::string myModelFileName
Definition: DtIndirectGeometryRegistrar.h:257
creator for DtIndirectGeometryAggregator
Definition: DtIndirectGeometryAggregator.h:211
bool myCullFaceEnabled
Definition: DtIndirectGeometryRegistrar.h:258
Indirect rendering works because we are able to combine multiple geometries into a single 'aggregated...
Definition: DtIndirectGeometryAggregator.h:63
DtIndirectGeometryRegistrar & operator=(const DtIndirectGeometryRegistrar &other)
Assignment Operator Not implemented – Assignment Not Allowed.
Definition: DtIndirectGeometryRegistrar.h:130
osg::ref_ptr< const osg::Node > myModel
Definition: DtIndirectGeometryRegistrar.h:255
Contains the DtIndirectEffectTexturesTemplate class declaration.
RegisterModelOp()
Definition: DtIndirectGeometryRegistrar.h:245
Contains makVrv::DtVirtualBaseClass class.
DtIndirectEffectTexturesTemplate myEffectTexturesState
Definition: DtIndirectGeometryRegistrar.h:239
Simple state/glmodes class for handling setting up modes It can now handle generic state modes and at...
Definition: DtIndirectGeometryStateManager.h:29
osg::ref_ptr< DtIndirectTextureProcessor > myTextureProcessor
Definition: DtIndirectGeometryRegistrar.h:267
tbb::atomic< bool > myBeingProcessed
Definition: DtIndirectGeometryRegistrar.h:273
DtIndirectGeometryAggregator * myAggregator
Definition: DtIndirectGeometryRegistrar.h:272
Contains the DtIndirectGeometryStateManager class declaration.
const DtIndirectTextureCollectionPolicy * myTextureCollectionPolicy
Definition: DtIndirectGeometryRegistrar.h:265
contains the Per Model info which DtAggregatedGeometry needs It is owned by the Indirect geometry reg...
Definition: DtAggregatedGeometry.h:47
DtDe & myDe
DtDe reference.
Definition: DtIndirectGeometryRegistrar.h:281
bool myPagerHandlesModelLoading
Definition: DtIndirectGeometryRegistrar.h:240
Definition: DtIndirectTextureProcessor.h:41
bool myRegisteredModelsDirty
Definition: DtIndirectGeometryRegistrar.h:269
boost::mutex myAddingModelsMutex
Definition: DtIndirectGeometryRegistrar.h:274
Contains makVrv::DtIndirectSwitchManager class.
DtOsgShaderManager injects custom shaders into the scenes, and keeps their uniform parameters set to ...
Definition: DtOsgShaderManager.h:55
unsigned int GLenum
Definition: DtGlTextureBufferObject.h:18
creator for DtIndirectGeometryRegistrar
Definition: DtIndirectGeometryRegistrar.h:288
Contains makVrv::DtIndirectLodManager class.
DtIndirectGeometryStateManager myMutableStateContainer
mutable since it is needed to be used in drawImplementaion for the indirect geometry not private so i...
Definition: DtIndirectGeometryRegistrar.h:278
non virtual container class for defining a polygon offset state
Definition: DtIndirectPolygonOffset.h:18
DtAggregatedGeometry * myAggregatedGeometry
Definition: DtIndirectGeometryRegistrar.h:237
Contains DLL export macros.
int myModelId
Definition: DtIndirectGeometryRegistrar.h:254
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
tbb::concurrent_queue< RegisterModelOp > QueueRegisterModelOps
Definition: DtIndirectGeometryRegistrar.h:262
Contains the DtIndirectGeometryAggregator class declaration.
DtOsgShaderManager & myShaderManager
Definition: DtIndirectGeometryRegistrar.h:283
unsigned int myLastRebuiltFrameNum
Definition: DtIndirectGeometryRegistrar.h:270
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:38