VR-Forces Developer's Guide
 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
makVrv::DtIndirectCullProgram Class Reference

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

Classes

struct  TotalCounter
 

Public Member Functions

virtual ~DtIndirectCullProgram ()
 
 DtIndirectCullProgram ()=delete
 
 DtIndirectCullProgram (const DtIndirectCullProgram &other)=delete
 
DtIndirectCullProgramoperator= (const DtIndirectCullProgram &other)=delete
 
virtual void incrementNumUsers ()
 
virtual void decrementNumUsers ()
 
virtual void execute (const DtIndirectViewParameters &viewParameters, const DtGpuCulling &gpuCulling, const osg::FrameStamp *frameStamp, const int lightSourceStateId, const int geometrySpecificationsBufferSize, const uint64_t geomSpecIndexToCommandIndexAddress, const uint64_t gpuPerGeomInstancesAddress, const osg::Camera *camera)
 
virtual void deleteShaders ()
 

Protected Member Functions

 DtIndirectCullProgram (DtDe &de, const DtCullShaderConfig &cullShaderConfig)
 
virtual void initializeIfNecessary (void)
 

Protected Attributes

friend DtIndirectCullProgramCreator
 
DtGlProgrammyCullProgram
 
DtIndirectCullProgramConstantsmyProgramConstants
 
DtGlBuffermyGpuShaderUbo
 
int myGpuShaderUboBinding
 
bool myMutableShadersFailedToCompile
 
double myStartTime
 
float myLastTimeFrame
 
const DtCullShaderConfig myCullShaderConfig
 
DtVector3< intmyWorkGroupLocalSize
 
DtDemyDe
 
const DtIndirectRunTimeSettingsmyIndirectRunTimeSettings
 
DtSkyObjectManagermySkyObjectManager
 
std::atomic< intmyNumUsers
 

Static Protected Attributes

static const bool theDebugInstancesAppended
 
static const bool myTrackObjects
 
static TotalCounter theTotalCounter
 

Constructor & Destructor Documentation

makVrv::DtIndirectCullProgram::DtIndirectCullProgram ( DtDe de,
const DtCullShaderConfig cullShaderConfig 
)
protected

Constructor.

virtual makVrv::DtIndirectCullProgram::~DtIndirectCullProgram ( )
virtual
makVrv::DtIndirectCullProgram::DtIndirectCullProgram ( )
delete

Default Constructor not implemented – Must use DtDe constructor.

makVrv::DtIndirectCullProgram::DtIndirectCullProgram ( const DtIndirectCullProgram other)
delete

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

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

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectCullProgram::incrementNumUsers ( )
virtual

ref counting tracking

virtual void makVrv::DtIndirectCullProgram::decrementNumUsers ( )
virtual

ref counting tracking

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

run the compute shader pass

virtual void makVrv::DtIndirectCullProgram::deleteShaders ( )
virtual

cleanup the gpu shaders

virtual void makVrv::DtIndirectCullProgram::initializeIfNecessary ( void  )
protectedvirtual

initialize the compute shader state if needed

Member Data Documentation

friend makVrv::DtIndirectCullProgram::DtIndirectCullProgramCreator
protected
DtGlProgram* makVrv::DtIndirectCullProgram::myCullProgram
protected

The program.

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
const DtCullShaderConfig makVrv::DtIndirectCullProgram::myCullShaderConfig
protected
DtVector3<int> makVrv::DtIndirectCullProgram::myWorkGroupLocalSize
protected
DtDe& makVrv::DtIndirectCullProgram::myDe
protected
const DtIndirectRunTimeSettings& makVrv::DtIndirectCullProgram::myIndirectRunTimeSettings
protected
DtSkyObjectManager& makVrv::DtIndirectCullProgram::mySkyObjectManager
protected
const bool makVrv::DtIndirectCullProgram::theDebugInstancesAppended
staticprotected
std::atomic<int> makVrv::DtIndirectCullProgram::myNumUsers
protected
const bool makVrv::DtIndirectCullProgram::myTrackObjects
staticprotected
TotalCounter makVrv::DtIndirectCullProgram::theTotalCounter
staticprotected

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)