Nameless Engine
|
#include <DirectXShadowMapArrayIndexManager.h>
Public Member Functions | |
DirectXShadowMapArrayIndexManager (const DirectXShadowMapArrayIndexManager &)=delete | |
DirectXShadowMapArrayIndexManager & | operator= (const DirectXShadowMapArrayIndexManager &)=delete |
DirectXShadowMapArrayIndexManager (DirectXShadowMapArrayIndexManager &&) noexcept=delete | |
DirectXShadowMapArrayIndexManager & | operator= (DirectXShadowMapArrayIndexManager &&) noexcept=delete |
virtual | ~DirectXShadowMapArrayIndexManager () override |
ContinuousDirectXDescriptorRange * | getSrvDescriptorRange () const |
Public Member Functions inherited from ne::ShadowMapArrayIndexManager | |
ShadowMapArrayIndexManager (const ShadowMapArrayIndexManager &)=delete | |
ShadowMapArrayIndexManager & | operator= (const ShadowMapArrayIndexManager &)=delete |
ShadowMapArrayIndexManager (ShadowMapArrayIndexManager &&) noexcept=delete | |
ShadowMapArrayIndexManager & | operator= (ShadowMapArrayIndexManager &&) noexcept=delete |
Static Public Member Functions | |
static std::variant< std::unique_ptr< DirectXShadowMapArrayIndexManager >, Error > | create (Renderer *pRenderer, GpuResourceManager *pResourceManager, const std::string &sShaderArrayResourceName) |
Static Public Member Functions inherited from ne::ShadowMapArrayIndexManager | |
static std::variant< std::unique_ptr< ShadowMapArrayIndexManager >, Error > | create (Renderer *pRenderer, GpuResourceManager *pResourceManager, const std::string &sShaderArrayResourceName) |
Private Member Functions | |
void | onSrvRangeIndicesChanged () |
Private Attributes | |
std::shared_ptr< ContinuousDirectXDescriptorRange > | pSrvRange |
std::pair< std::recursive_mutex, std::unordered_set< ShadowMapHandle * > > | mtxRegisteredShadowMaps |
Additional Inherited Members | |
Static Protected Member Functions inherited from ne::ShadowMapArrayIndexManager | |
static void | changeShadowMapArrayIndex (ShadowMapHandle *pShadowMapHandle, unsigned int iNewArrayIndex) |
Manages indices of shadows maps into a descriptor array used by shaders.
|
overridevirtual |
Makes sure no descriptor is registered.
|
protected |
|
overrideprotectedvirtual |
Goes through all graphics pipelines ad binds shadow maps to pipelines that use them.
Implements ne::ShadowMapArrayIndexManager.
|
overrideprotectedvirtual |
Looks if the specified pipeline uses shadow maps and if uses binds shadow maps to the pipeline.
pPipeline | Pipeline to bind shadow maps to. |
Implements ne::ShadowMapArrayIndexManager.
|
static |
|
inline |
Returns internal SRV descriptor range to the array of shadow maps.
|
private |
Called after SRV range changed its location in the heap.
|
overrideprotectedvirtual |
Reserves an index into a descriptor array for the shadow map resource of the specified handle and bind internal GPU shadow map resource (if the handle) to that descriptor.
pShadowMapHandle | Shadow map to register. |
Implements ne::ShadowMapArrayIndexManager.
|
overrideprotectedvirtual |
Unregisters a shadow map and frees its index into a descriptor array to be used by others.
pShadowMapHandle | Shadow map to unregister. |
Implements ne::ShadowMapArrayIndexManager.
|
private |
Info about shadows maps that take place in this array.
|
private |
Continuous SRV descriptor range of registered shadow maps for shaders.