This commit is contained in:
2025-01-14 02:26:26 +01:00
parent 0d556f12b4
commit 9805c7a2c1
26 changed files with 4868 additions and 4 deletions

View File

@@ -0,0 +1,44 @@
#include "ShadowMapBuffer.h"
ShadowMapBuffer::ShadowMapBuffer(ID3D11Device *device, UINT width, UINT height)
: m_device(device), m_width(width), m_height(height), m_shaderResourceView(nullptr),
m_depthBuffer(device, width, height), m_samplerState(device) {
}
ShadowMapBuffer::~ShadowMapBuffer() {
if (m_shaderResourceView) m_shaderResourceView->Release();
}
bool ShadowMapBuffer::Initialize() {
if (!m_depthBuffer.Initialize()) {
return false;
}
if (!m_samplerState.Initialize()) {
return false;
}
// Create ShaderResourceView for the depth buffer
D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc = {};
srvDesc.Format = DXGI_FORMAT_R32_FLOAT;
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
HRESULT hr = m_device->CreateShaderResourceView(m_depthBuffer.GetDepthBuffer(), &srvDesc, &m_shaderResourceView);
if (FAILED(hr)) {
return false;
}
return true;
}
void ShadowMapBuffer::SetRenderTarget(ID3D11DeviceContext *deviceContext) {
deviceContext->OMSetRenderTargets(0, nullptr, m_depthBuffer.GetDepthStencilView());
}
void ShadowMapBuffer::ResetRenderTarget(ID3D11DeviceContext *deviceContext) {
ID3D11RenderTargetView *nullRTV = nullptr;
deviceContext->OMSetRenderTargets(1, &nullRTV, nullptr);
}
ID3D11DepthStencilView *ShadowMapBuffer::GetDepthStencilView() {
return m_depthBuffer.GetDepthStencilView();
}