VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
makVrv::DtIndirectCullProgram Class Reference

handles the running of the compute shader pass for indirect culling, LODing and switches More...

Classes

struct  ReferencedCullProgram
 struct used to cache the cull shaders and programs so they are not created by every instance of DtIndirectCullPass More...
 

Public Member Functions

virtual ~DtIndirectCullProgram ()
 
virtual void deleteShaders (bool viaDestructor, bool viaReload) const
 Delete all the shaders used by the compute cull pass. More...
 
virtual void clearCullProgram (bool viaDestructor) const
 Clear the cull program and subtract 1 from the cull program reference count. More...
 
virtual void releaseGLObjects (osg::State *state) const
 release the GL objects needed by the comput cull pass More...
 
virtual void initializeIfNecessary (const DtCullShaderConfig &cullShaderConfig)
 initialize the compute shader state if needed More...
 
virtual void execute (const DtIndirectViewParameters &viewParameters, const DtGpuCulling &gpuCulling, const osg::FrameStamp *frameStamp, const int lightSourceStateId, const int geometrySpecificationsBufferSize, const GLuint64 geomSpecIndexToCommandIndexAddress, const GLuint64 gpuPerGeomInstancesAddress, const osg::Camera *camera)
 run the compute shader pass More...
 

Protected Member Functions

 DtIndirectCullProgram (DtDe &de)
 Constructor. More...
 

Protected Attributes

ReferencedCullProgrammyMutableReferencedCullProgram
 mutable since they represent openGL objects which need to be cleaned up in constant functions. More...
 
DtIndirectCullProgramConstantsmyProgramConstants
 the constants associated with the cull program More...
 
DtGlBuffermyGpuShaderUbo
 buffer for the UBO of the cull program More...
 
int myGpuShaderUboBinding
 buffer binding for the UBO of the cull program More...
 
bool myMutableShadersFailedToCompile
 indicate whether we have failed to compile More...
 
double myStartTime
 
float myLastTimeFrame
 
DtCullShaderConfig myCullShaderConfig
 
DtVector3< intmyWorkGroupLocalSize
 
DtDemyDe
 
const DtTerrainPatchObjectManagermyTerrainPatchObjectManager
 
DtSkyObjectManagermySkyObjectManager
 

Static Protected Attributes

static const bool theDebugInstancesAppended
 
static std::map< std::string,
ReferencedCullProgram * > 
theShaderCache
 

Private Member Functions

 DtIndirectCullProgram ()
 Default Constructor not implemented – Must use DtDe constructor. More...
 
 DtIndirectCullProgram (const DtIndirectCullProgram &other)
 Copy Constructor not implemented – Copy Not Allowed. More...
 
DtIndirectCullProgramoperator= (const DtIndirectCullProgram &other)
 Assignment Operator Not implemented – Assignment Not Allowed. More...
 

Friends

class DtIndirectCullPassCreator
 

Detailed Description

handles the running of the compute shader pass for indirect culling, LODing and switches

Constructor & Destructor Documentation

makVrv::DtIndirectCullProgram::DtIndirectCullProgram ( DtDe de)
protected

Constructor.

virtual makVrv::DtIndirectCullProgram::~DtIndirectCullProgram ( )
virtual
makVrv::DtIndirectCullProgram::DtIndirectCullProgram ( )
private

Default Constructor not implemented – Must use DtDe constructor.

makVrv::DtIndirectCullProgram::DtIndirectCullProgram ( const DtIndirectCullProgram other)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtIndirectCullProgram& makVrv::DtIndirectCullProgram::operator= ( const DtIndirectCullProgram other)
private

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectCullProgram::deleteShaders ( bool  viaDestructor,
bool  viaReload 
) const
virtual

Delete all the shaders used by the compute cull pass.

virtual void makVrv::DtIndirectCullProgram::clearCullProgram ( bool  viaDestructor) const
virtual

Clear the cull program and subtract 1 from the cull program reference count.

virtual void makVrv::DtIndirectCullProgram::releaseGLObjects ( osg::State *  state) const
virtual

release the GL objects needed by the comput cull pass

virtual void makVrv::DtIndirectCullProgram::initializeIfNecessary ( const DtCullShaderConfig cullShaderConfig)
virtual

initialize the compute shader state if needed

virtual void makVrv::DtIndirectCullProgram::execute ( const DtIndirectViewParameters viewParameters,
const DtGpuCulling gpuCulling,
const osg::FrameStamp *  frameStamp,
const int  lightSourceStateId,
const int  geometrySpecificationsBufferSize,
const GLuint64  geomSpecIndexToCommandIndexAddress,
const GLuint64  gpuPerGeomInstancesAddress,
const osg::Camera *  camera 
)
virtual

run the compute shader pass

Friends And Related Function Documentation

friend class DtIndirectCullPassCreator
friend

Member Data Documentation

ReferencedCullProgram* makVrv::DtIndirectCullProgram::myMutableReferencedCullProgram
mutableprotected

mutable since they represent openGL objects which need to be cleaned up in constant functions.

DtIndirectCullProgramConstants* makVrv::DtIndirectCullProgram::myProgramConstants
protected

the constants associated with the cull program

DtGlBuffer* makVrv::DtIndirectCullProgram::myGpuShaderUbo
protected

buffer for the UBO of the cull program

int makVrv::DtIndirectCullProgram::myGpuShaderUboBinding
protected

buffer binding for the UBO of the cull program

bool makVrv::DtIndirectCullProgram::myMutableShadersFailedToCompile
mutableprotected

indicate whether we have failed to compile

double makVrv::DtIndirectCullProgram::myStartTime
mutableprotected
float makVrv::DtIndirectCullProgram::myLastTimeFrame
protected
DtCullShaderConfig makVrv::DtIndirectCullProgram::myCullShaderConfig
protected
DtVector3<int> makVrv::DtIndirectCullProgram::myWorkGroupLocalSize
protected
DtDe& makVrv::DtIndirectCullProgram::myDe
protected
const DtTerrainPatchObjectManager& makVrv::DtIndirectCullProgram::myTerrainPatchObjectManager
protected
DtSkyObjectManager& makVrv::DtIndirectCullProgram::mySkyObjectManager
protected
const bool makVrv::DtIndirectCullProgram::theDebugInstancesAppended
staticprotected
std::map<std::string, ReferencedCullProgram *> makVrv::DtIndirectCullProgram::theShaderCache
staticprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)