#include "XCEngine/RHI/D3D12/D3D12Texture.h" namespace XCEngine { namespace RHI { D3D12Texture::D3D12Texture() { } D3D12Texture::~D3D12Texture() { Shutdown(); } bool D3D12Texture::Initialize(ID3D12Device* device, const D3D12_RESOURCE_DESC& desc, D3D12_RESOURCE_STATES initialState) { D3D12_HEAP_PROPERTIES heapProperties = {}; heapProperties.Type = D3D12_HEAP_TYPE_DEFAULT; heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; heapProperties.CreationNodeMask = 0; heapProperties.VisibleNodeMask = 0; D3D12_CLEAR_VALUE* pOptimizedClearValue = nullptr; HRESULT hResult = device->CreateCommittedResource( &heapProperties, D3D12_HEAP_FLAG_NONE, &desc, initialState, pOptimizedClearValue, IID_PPV_ARGS(&m_resource) ); if (FAILED(hResult)) { return false; } return true; } bool D3D12Texture::InitializeFromExisting(ID3D12Resource* resource) { m_resource = resource; return true; } void D3D12Texture::Shutdown() { m_resource.Reset(); } } // namespace RHI } // namespace XCEngine