From 9fda349fa1aa6258c0295c6e260fdc1a071e8d2e Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Tue, 17 Mar 2026 01:21:17 +0800 Subject: [PATCH] Add CreateDesc helper for DescriptorHeap --- engine/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h | 2 ++ engine/src/RHI/D3D12/D3D12DescriptorHeap.cpp | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/engine/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h b/engine/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h index 8652d37e..fb7454d3 100644 --- a/engine/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h +++ b/engine/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h @@ -31,6 +31,8 @@ public: D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart() const; D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart() const; + static D3D12_DESCRIPTOR_HEAP_DESC CreateDesc(DescriptorHeapType type, uint32_t numDescriptors, bool shaderVisible = false); + private: ComPtr m_descriptorHeap; DescriptorHeapType m_type; diff --git a/engine/src/RHI/D3D12/D3D12DescriptorHeap.cpp b/engine/src/RHI/D3D12/D3D12DescriptorHeap.cpp index 201f7d39..10b120fb 100644 --- a/engine/src/RHI/D3D12/D3D12DescriptorHeap.cpp +++ b/engine/src/RHI/D3D12/D3D12DescriptorHeap.cpp @@ -70,5 +70,14 @@ uint32_t D3D12DescriptorHeap::GetDescriptorCount() const { return m_numDescriptors; } +D3D12_DESCRIPTOR_HEAP_DESC D3D12DescriptorHeap::CreateDesc(DescriptorHeapType type, uint32_t numDescriptors, bool shaderVisible) { + D3D12_DESCRIPTOR_HEAP_DESC desc = {}; + desc.Type = ToD3D12(type); + desc.NumDescriptors = numDescriptors; + desc.Flags = shaderVisible ? D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE : D3D12_DESCRIPTOR_HEAP_FLAG_NONE; + desc.NodeMask = 0; + return desc; +} + } // namespace RHI } // namespace XCEngine