24 #include <tbb/atomic.h>
30 class DtOsgShaderFilesCache;
31 class DtIndirectViewParameters;
46 const std::string& shaderFolderPath);
50 unsigned int maxNumInstances,
float transition_percentage);
53 virtual void deleteShaders();
56 virtual void incrementNumUsers();
59 virtual void decrementNumUsers();
118 virtual void releaseGLObjects(osg::State* state)
const;
131 virtual void reloadShaders()
const;
142 virtual void addLodStack(
int perGeomInstanceIndex,
const DequeIndirectLodInfos& parentLodStack,
const DequeIndirectLodInfos& lodStack,
const osg::Matrix& localOriginMatrix,
const osg::Matrix& instanceTransform);
145 virtual void updateLodBuffersIfNecessary();
148 virtual void deleteShaders()
const;
150 virtual void deleteBuffers(
void);
152 virtual void tearDownBuffers(
void)
const;
195 static const std::string& theClassName();
VectorIndirectLodInfos myIndirectLodInfos
Definition: DtIndirectLodManager.h:156
Virtual base class.
Definition: DtVirtualBaseClass.h:22
float myEndRange
Definition: DtIndirectLodManager.h:89
structure for holding the information about a particular instance of a particular lod...
Definition: DtIndirectLodManager.h:86
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtVector3< int > myWorkGroupLocalSize
Definition: DtIndirectLodManager.h:70
std::vector< IndirectLodInfo > VectorIndirectLodInfos
Definition: DtIndirectLodManager.h:96
int myModelViewMatrixIndex
Definition: DtIndirectLodManager.h:66
voidpf void uLong size
Definition: ioapi.h:39
unsigned int GLuint
Definition: DtGlTextureBufferObject.h:17
creator for DtIndirectLodManager
Definition: DtIndirectLodManager.h:178
DtDe & myDe
Definition: DtIndirectLodManager.h:197
DtIndirectLodProgram * myMutableLodProgram
Definition: DtIndirectLodManager.h:169
Definition: DtOsgShaderFilesCache.h:22
int myMaxNumInstancesIndex
Definition: DtIndirectLodManager.h:65
handles the lods for all the indirect geometry.
Definition: DtIndirectLodManager.h:79
std::vector< DequeIndirectLodInfos > DequeIndirectLodInfoArray
Definition: DtIndirectLodManager.h:97
bool myMutableLodInfoDirty
Definition: DtIndirectLodManager.h:166
GLuint myLodProgramID
Definition: DtIndirectLodManager.h:62
int myLodTransitionPercentageIndex
Definition: DtIndirectLodManager.h:69
Contains makVrv::DtVirtualBaseClass class.
osg::Vec3 myCenter
Definition: DtIndirectLodManager.h:91
int myZoomMagnificationIndex
Definition: DtIndirectLodManager.h:67
singleton class that wraps indirect lod gpu shader.
Definition: DtIndirectLodManager.h:35
float myStartRange
Definition: DtIndirectLodManager.h:88
DtGlBuffer * myGpuLodVisibleBuffer
The buffer containing a bool for each instance to know if it should be drawn or not.
Definition: DtIndirectLodManager.h:164
unsigned int myMaxPerGeomInstanceId
Definition: DtIndirectLodManager.h:171
tbb::atomic< int > myNumUsers
Definition: DtIndirectLodManager.h:72
DtGlBuffer * myGpuLodInfoBuffer
The buffer containing all the lod infos for all instances managed by this manager.
Definition: DtIndirectLodManager.h:161
GLuint myLodShaderID
Definition: DtIndirectLodManager.h:63
A generic OpenGL buffer.
Definition: DtGlBuffer.h:25
The class that is used to communicate the camera viewing parameters to the DtICullingAndLOD interface...
Definition: DtGpuCullingAndLodDefines.h:38
DtDe & myDe
Definition: DtIndirectLodManager.h:158
Contains DLL export macros.
int myLodPerGeomInstanceId
Definition: DtIndirectLodManager.h:92
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
int myDistScaleIndex
Definition: DtIndirectLodManager.h:68
std::deque< IndirectLodInfo > DequeIndirectLodInfos
Definition: DtIndirectLodManager.h:95