#include "XCEngine/RHI/D3D12/D3D12ShaderResourceView.h" namespace XCEngine { namespace RHI { D3D12ShaderResourceView::D3D12ShaderResourceView() : m_handle({0}) , m_resource(nullptr) { } D3D12ShaderResourceView::~D3D12ShaderResourceView() { Shutdown(); } void D3D12ShaderResourceView::Initialize(ID3D12Device* device, ID3D12Resource* resource, const D3D12_SHADER_RESOURCE_VIEW_DESC* desc) { m_resource = resource; m_handle = {}; device->CreateShaderResourceView(resource, desc, m_handle); } void D3D12ShaderResourceView::InitializeAt(ID3D12Device* device, ID3D12Resource* resource, D3D12_CPU_DESCRIPTOR_HANDLE handle, const D3D12_SHADER_RESOURCE_VIEW_DESC* desc) { m_resource = resource; m_handle = handle; device->CreateShaderResourceView(resource, desc, m_handle); } void D3D12ShaderResourceView::Shutdown() { m_handle = {}; m_resource = nullptr; } } // namespace RHI } // namespace XCEngine