Temp
This commit is contained in:
44
project/src/Buffers/ShadowMapBuffer.cpp
Normal file
44
project/src/Buffers/ShadowMapBuffer.cpp
Normal 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();
|
||||
}
|
||||
Reference in New Issue
Block a user