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

Class that encapsulates the 2 pass (setup, sort) computation of lights affecting the screen space tiles. Holds the compute programs for each of the passes and invokes them in order when execute is called.

Public Member Functions

 DtLightComputeProgram (DtDe &de)
 
virtual ~DtLightComputeProgram ()
 
virtual void slot_reloadShader (void)
 
virtual bool failedCompilation (void) const
 
virtual void execute (const DtTileSpaceLightGrid *tileSpaceLightGrid, const int tileLightIndexTotalCount, const size_t lightCount, const int numChunks, const Matrix4_64 &projectionMatrix, const Vector3_64 &vWorldEye, const Vector3_64 &vWorldCenter, const Vector3_64 &vWorldUp, const Vector2_uint32 &viewportSize, const int viewOffset, const unsigned int sensorMask)
 

Protected Member Functions

virtual void initializeShadersIfNecessary (void)
 
virtual void deleteShaders (void)
 

Protected Attributes

std::array< DtGlProgram
*, theNumLightSourceComputeShaders
myComputePrograms
 
std::array
< DtLightComputeProgramShaderConstants
*, theNumLightSourceComputeShaders
myLightSourceComputeShaderConstants
 
std::array< DtGlBuffer
*, theNumLightSourceComputeShaders
myGpuShaderUbo
 
std::array< int,
theNumLightSourceComputeShaders
myGpuShaderUboBinding
 
bool myShadersFailedToCompile
 
DtDemyDe
 
DtSignalConnectionManager myConnections
 
std::atomic< boolmyDeleteShaders
 
int myWorkGroupLocalSizeX
 

Static Protected Attributes

static const int theNumLightSourceComputeShaders = 2
 
static const std::array
< std::string,
theNumLightSourceComputeShaders
theLightSourcesComputeShaderFilePaths
 
static const std::string theLightingFunctionsShaderFilePath
 

Private Member Functions

 DtLightComputeProgram ()=delete
 
 DtLightComputeProgram (const DtLightComputeProgram &)=delete
 
DtLightComputeProgramoperator= (const DtLightComputeProgram &)=delete
 

Constructor & Destructor Documentation

makVrv::DtLightComputeProgram::DtLightComputeProgram ( DtDe de)

ctor

virtual makVrv::DtLightComputeProgram::~DtLightComputeProgram ( )
virtual

dtor

makVrv::DtLightComputeProgram::DtLightComputeProgram ( )
privatedelete

not allowed

makVrv::DtLightComputeProgram::DtLightComputeProgram ( const DtLightComputeProgram )
privatedelete

not allowed

Member Function Documentation

DtLightComputeProgram& makVrv::DtLightComputeProgram::operator= ( const DtLightComputeProgram )
privatedelete

not allowed

virtual void makVrv::DtLightComputeProgram::slot_reloadShader ( void  )
virtual

slot to listen in on reload shaders signal

virtual bool makVrv::DtLightComputeProgram::failedCompilation ( void  ) const
virtual

did the compilation fail? used to early out (and not call execute)

virtual void makVrv::DtLightComputeProgram::execute ( const DtTileSpaceLightGrid tileSpaceLightGrid,
const int  tileLightIndexTotalCount,
const size_t  lightCount,
const int  numChunks,
const Matrix4_64 projectionMatrix,
const Vector3_64 vWorldEye,
const Vector3_64 vWorldCenter,
const Vector3_64 vWorldUp,
const Vector2_uint32 viewportSize,
const int  viewOffset,
const unsigned int  sensorMask 
)
virtual

execute the 2 passes for sorting lights

virtual void makVrv::DtLightComputeProgram::initializeShadersIfNecessary ( void  )
protectedvirtual

setup the light source binning compute shaders

virtual void makVrv::DtLightComputeProgram::deleteShaders ( void  )
protectedvirtual

delete the light source binning compute shaders

Member Data Documentation

const int makVrv::DtLightComputeProgram::theNumLightSourceComputeShaders = 2
staticprotected
std::array<DtGlProgram*, theNumLightSourceComputeShaders> makVrv::DtLightComputeProgram::myComputePrograms
protected
std::array<DtLightComputeProgramShaderConstants*, theNumLightSourceComputeShaders> makVrv::DtLightComputeProgram::myLightSourceComputeShaderConstants
protected
std::array<DtGlBuffer*, theNumLightSourceComputeShaders> makVrv::DtLightComputeProgram::myGpuShaderUbo
protected
std::array<int, theNumLightSourceComputeShaders> makVrv::DtLightComputeProgram::myGpuShaderUboBinding
protected
const std::array<std::string, theNumLightSourceComputeShaders> makVrv::DtLightComputeProgram::theLightSourcesComputeShaderFilePaths
staticprotected
const std::string makVrv::DtLightComputeProgram::theLightingFunctionsShaderFilePath
staticprotected
bool makVrv::DtLightComputeProgram::myShadersFailedToCompile
protected
DtDe& makVrv::DtLightComputeProgram::myDe
protected
DtSignalConnectionManager makVrv::DtLightComputeProgram::myConnections
protected
std::atomic<bool> makVrv::DtLightComputeProgram::myDeleteShaders
protected
int makVrv::DtLightComputeProgram::myWorkGroupLocalSizeX
protected

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)