From 312699e2626e3c6d732bc0e7225de96e09daffe2 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Tue, 17 Mar 2026 01:33:17 +0800 Subject: [PATCH] Add CreateDescriptorRange helper --- engine/include/XCEngine/RHI/D3D12/D3D12RootSignature.h | 1 + engine/src/RHI/D3D12/D3D12RootSignature.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/engine/include/XCEngine/RHI/D3D12/D3D12RootSignature.h b/engine/include/XCEngine/RHI/D3D12/D3D12RootSignature.h index 77d0ba87..0e314143 100644 --- a/engine/include/XCEngine/RHI/D3D12/D3D12RootSignature.h +++ b/engine/include/XCEngine/RHI/D3D12/D3D12RootSignature.h @@ -39,6 +39,7 @@ public: static D3D12_STATIC_SAMPLER_DESC CreateStaticSampler(uint32_t shaderRegister, const D3D12_SAMPLER_DESC& desc, ShaderVisibility visibility = ShaderVisibility::Pixel); static D3D12_SAMPLER_DESC CreateSamplerDesc(FilterMode filter, TextureAddressMode address, float maxLOD = D3D12_FLOAT32_MAX); + static D3D12_DESCRIPTOR_RANGE CreateDescriptorRange(D3D12_DESCRIPTOR_RANGE_TYPE type, uint32_t baseShaderRegister, uint32_t numDescriptors, uint32_t registerSpace = 0); private: ComPtr m_rootSignature; diff --git a/engine/src/RHI/D3D12/D3D12RootSignature.cpp b/engine/src/RHI/D3D12/D3D12RootSignature.cpp index 3ff29e1a..57aae37d 100644 --- a/engine/src/RHI/D3D12/D3D12RootSignature.cpp +++ b/engine/src/RHI/D3D12/D3D12RootSignature.cpp @@ -128,5 +128,15 @@ D3D12_SAMPLER_DESC D3D12RootSignature::CreateSamplerDesc(FilterMode filter, Text return desc; } +D3D12_DESCRIPTOR_RANGE D3D12RootSignature::CreateDescriptorRange(D3D12_DESCRIPTOR_RANGE_TYPE type, uint32_t baseShaderRegister, uint32_t numDescriptors, uint32_t registerSpace) { + D3D12_DESCRIPTOR_RANGE range = {}; + range.RangeType = type; + range.NumDescriptors = numDescriptors; + range.BaseShaderRegister = baseShaderRegister; + range.RegisterSpace = registerSpace; + range.OffsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND; + return range; +} + } // namespace RHI } // namespace XCEngine