#include "XCEngine/RHI/D3D12/D3D12CommandAllocator.h" #include "XCEngine/RHI/D3D12/D3D12Enum.h" namespace XCEngine { namespace RHI { D3D12CommandAllocator::D3D12CommandAllocator() : m_type(CommandQueueType::Direct) { } D3D12CommandAllocator::~D3D12CommandAllocator() { Shutdown(); } bool D3D12CommandAllocator::Initialize(ID3D12Device* device, CommandQueueType type) { m_type = type; HRESULT hResult = device->CreateCommandAllocator( ToD3D12(type), IID_PPV_ARGS(&m_commandAllocator)); return SUCCEEDED(hResult); } void D3D12CommandAllocator::Shutdown() { m_commandAllocator.Reset(); } void D3D12CommandAllocator::Reset() { m_commandAllocator->Reset(); } bool D3D12CommandAllocator::IsReady() const { return m_commandAllocator != nullptr; } } // namespace RHI } // namespace XCEngine