MAGE  v0.171.0
Matthias Advanced Game Engine
mage::rendering::ShadowCubeMapBuffer Class Reference

#include <shadow_map_buffer.hpp>

Public Member Functions

 ShadowCubeMapBuffer (ID3D11Device &device, std::size_t nb_shadow_cube_maps, const U32x2 &resolution={ 512u, 512u }, DepthFormat format=DepthFormat::D16)
 
 ShadowCubeMapBuffer (const ShadowCubeMapBuffer &buffer)=delete
 
 ShadowCubeMapBuffer (ShadowCubeMapBuffer &&buffer) noexcept
 
 ~ShadowCubeMapBuffer ()
 
ShadowCubeMapBufferoperator= (const ShadowCubeMapBuffer &buffer)=delete
 
ShadowCubeMapBufferoperator= (ShadowCubeMapBuffer &&buffer) noexcept
 
std::size_t GetNumberOfShadowMaps () const noexcept
 
std::size_t GetNumberOfShadowCubeMaps () const noexcept
 
void Bind (ID3D11DeviceContext &device_context) const noexcept
 
void BindRasterizerState (ID3D11DeviceContext &device_context) const noexcept
 
void ClearDSVs (ID3D11DeviceContext &device_context) const noexcept
 
void BindDSV (ID3D11DeviceContext &device_context, std::size_t dsv_index) const noexcept
 
ID3D11DepthStencilView & GetDSV (std::size_t dsv_index) const noexcept
 
ID3D11ShaderResourceView & GetSRV () const noexcept
 

Private Member Functions

void SetupRasterizerState (ID3D11Device &device)
 
void SetupShadowCubeMapBuffer (ID3D11Device &device, std::size_t nb_shadow_cube_maps)
 
void SetupShadowCubeMapArray (ID3D11Device &device, std::size_t nb_shadow_cube_maps, DXGI_FORMAT texture_format, DXGI_FORMAT dsv_format, DXGI_FORMAT srv_format)
 

Private Attributes

DepthFormat m_format
 
Viewport m_viewport
 
ComPtr< ID3D11RasterizerState > m_rasterizer_state
 
std::vector< ComPtr< ID3D11DepthStencilView > > m_dsvs
 
ComPtr< ID3D11ShaderResourceView > m_srv
 

Constructor & Destructor Documentation

◆ ShadowCubeMapBuffer() [1/3]

mage::rendering::ShadowCubeMapBuffer::ShadowCubeMapBuffer ( ID3D11Device &  device,
std::size_t  nb_shadow_cube_maps,
const U32x2 resolution = { 512u, 512u },
DepthFormat  format = DepthFormat::D16 
)
explicit

◆ ShadowCubeMapBuffer() [2/3]

mage::rendering::ShadowCubeMapBuffer::ShadowCubeMapBuffer ( const ShadowCubeMapBuffer buffer)
delete

◆ ShadowCubeMapBuffer() [3/3]

mage::rendering::ShadowCubeMapBuffer::ShadowCubeMapBuffer ( ShadowCubeMapBuffer &&  buffer)
defaultnoexcept

◆ ~ShadowCubeMapBuffer()

mage::rendering::ShadowCubeMapBuffer::~ShadowCubeMapBuffer ( )
default

Member Function Documentation

◆ Bind()

void mage::rendering::ShadowCubeMapBuffer::Bind ( ID3D11DeviceContext &  device_context) const
noexcept

◆ BindDSV()

void mage::rendering::ShadowCubeMapBuffer::BindDSV ( ID3D11DeviceContext &  device_context,
std::size_t  dsv_index 
) const
noexcept

◆ BindRasterizerState()

void mage::rendering::ShadowCubeMapBuffer::BindRasterizerState ( ID3D11DeviceContext &  device_context) const
noexcept

◆ ClearDSVs()

void mage::rendering::ShadowCubeMapBuffer::ClearDSVs ( ID3D11DeviceContext &  device_context) const
noexcept

◆ GetDSV()

ID3D11DepthStencilView& mage::rendering::ShadowCubeMapBuffer::GetDSV ( std::size_t  dsv_index) const
noexcept

◆ GetNumberOfShadowCubeMaps()

std::size_t mage::rendering::ShadowCubeMapBuffer::GetNumberOfShadowCubeMaps ( ) const
noexcept

◆ GetNumberOfShadowMaps()

std::size_t mage::rendering::ShadowCubeMapBuffer::GetNumberOfShadowMaps ( ) const
noexcept

◆ GetSRV()

ID3D11ShaderResourceView& mage::rendering::ShadowCubeMapBuffer::GetSRV ( ) const
noexcept

◆ operator=() [1/2]

ShadowCubeMapBuffer& mage::rendering::ShadowCubeMapBuffer::operator= ( const ShadowCubeMapBuffer buffer)
delete

◆ operator=() [2/2]

ShadowCubeMapBuffer & mage::rendering::ShadowCubeMapBuffer::operator= ( ShadowCubeMapBuffer &&  buffer)
defaultnoexcept

◆ SetupRasterizerState()

void mage::rendering::ShadowCubeMapBuffer::SetupRasterizerState ( ID3D11Device &  device)
private

◆ SetupShadowCubeMapArray()

void mage::rendering::ShadowCubeMapBuffer::SetupShadowCubeMapArray ( ID3D11Device &  device,
std::size_t  nb_shadow_cube_maps,
DXGI_FORMAT  texture_format,
DXGI_FORMAT  dsv_format,
DXGI_FORMAT  srv_format 
)
private

◆ SetupShadowCubeMapBuffer()

void mage::rendering::ShadowCubeMapBuffer::SetupShadowCubeMapBuffer ( ID3D11Device &  device,
std::size_t  nb_shadow_cube_maps 
)
private

Member Data Documentation

◆ m_dsvs

std::vector< ComPtr< ID3D11DepthStencilView > > mage::rendering::ShadowCubeMapBuffer::m_dsvs
private

◆ m_format

DepthFormat mage::rendering::ShadowCubeMapBuffer::m_format
private

◆ m_rasterizer_state

ComPtr< ID3D11RasterizerState > mage::rendering::ShadowCubeMapBuffer::m_rasterizer_state
private

◆ m_srv

ComPtr< ID3D11ShaderResourceView > mage::rendering::ShadowCubeMapBuffer::m_srv
private

◆ m_viewport

Viewport mage::rendering::ShadowCubeMapBuffer::m_viewport
private