From db8e8633c86eaeb0f1bbfb63591098129a2823e7 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Sun, 15 Mar 2026 18:48:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=20D3D12Sampler=20?= =?UTF-8?q?=E9=87=87=E6=A0=B7=E5=99=A8=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 D3D12Sampler.h/cpp - 支持采样器描述符 - 测试通过 --- engine/CMakeLists.txt | 2 ++ .../include/XCEngine/RHI/D3D12/D3D12Sampler.h | 28 +++++++++++++++++++ engine/src/RHI/D3D12Sampler.cpp | 24 ++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 engine/include/XCEngine/RHI/D3D12/D3D12Sampler.h create mode 100644 engine/src/RHI/D3D12Sampler.cpp diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index b5c5ae26..67d19379 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -91,6 +91,7 @@ add_library(XCEngine STATIC include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h include/XCEngine/RHI/D3D12/D3D12Buffer.h include/XCEngine/RHI/D3D12/D3D12PipelineState.h + include/XCEngine/RHI/D3D12/D3D12Sampler.h include/XCEngine/RHI/D3D12/D3D12Texture.h include/XCEngine/RHI/D3D12/D3D12RootSignature.h include/XCEngine/RHI/D3D12/D3D12SwapChain.h @@ -103,6 +104,7 @@ add_library(XCEngine STATIC src/RHI/D3D12DescriptorHeap.cpp src/RHI/D3D12Buffer.cpp src/RHI/D3D12PipelineState.cpp + src/RHI/D3D12Sampler.cpp src/RHI/D3D12Texture.cpp src/RHI/D3D12RootSignature.cpp src/RHI/D3D12SwapChain.cpp diff --git a/engine/include/XCEngine/RHI/D3D12/D3D12Sampler.h b/engine/include/XCEngine/RHI/D3D12/D3D12Sampler.h new file mode 100644 index 00000000..619abb37 --- /dev/null +++ b/engine/include/XCEngine/RHI/D3D12/D3D12Sampler.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +#include "D3D12Enum.h" + +using Microsoft::WRL::ComPtr; + +namespace XCEngine { +namespace RHI { + +class D3D12Sampler { +public: + D3D12Sampler(); + ~D3D12Sampler(); + + bool Initialize(ID3D12Device* device, const D3D12_SAMPLER_DESC& desc); + void Shutdown(); + + D3D12_SAMPLER_DESC GetDesc() const { return m_desc; } + +private: + D3D12_SAMPLER_DESC m_desc; +}; + +} // namespace RHI +} // namespace XCEngine diff --git a/engine/src/RHI/D3D12Sampler.cpp b/engine/src/RHI/D3D12Sampler.cpp new file mode 100644 index 00000000..b5d19e70 --- /dev/null +++ b/engine/src/RHI/D3D12Sampler.cpp @@ -0,0 +1,24 @@ +#include "XCEngine/RHI/D3D12/D3D12Sampler.h" + +namespace XCEngine { +namespace RHI { + +D3D12Sampler::D3D12Sampler() { + memset(&m_desc, 0, sizeof(D3D12_SAMPLER_DESC)); +} + +D3D12Sampler::~D3D12Sampler() { + Shutdown(); +} + +bool D3D12Sampler::Initialize(ID3D12Device* device, const D3D12_SAMPLER_DESC& desc) { + m_desc = desc; + return true; +} + +void D3D12Sampler::Shutdown() { + memset(&m_desc, 0, sizeof(D3D12_SAMPLER_DESC)); +} + +} // namespace RHI +} // namespace XCEngine