feat: 实现 D3D12Sampler 采样器类

- 添加 D3D12Sampler.h/cpp
- 支持采样器描述符
- 测试通过
This commit is contained in:
2026-03-15 18:48:04 +08:00
parent 017bbf281d
commit db8e8633c8
3 changed files with 54 additions and 0 deletions

View File

@@ -91,6 +91,7 @@ add_library(XCEngine STATIC
include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h
include/XCEngine/RHI/D3D12/D3D12Buffer.h include/XCEngine/RHI/D3D12/D3D12Buffer.h
include/XCEngine/RHI/D3D12/D3D12PipelineState.h include/XCEngine/RHI/D3D12/D3D12PipelineState.h
include/XCEngine/RHI/D3D12/D3D12Sampler.h
include/XCEngine/RHI/D3D12/D3D12Texture.h include/XCEngine/RHI/D3D12/D3D12Texture.h
include/XCEngine/RHI/D3D12/D3D12RootSignature.h include/XCEngine/RHI/D3D12/D3D12RootSignature.h
include/XCEngine/RHI/D3D12/D3D12SwapChain.h include/XCEngine/RHI/D3D12/D3D12SwapChain.h
@@ -103,6 +104,7 @@ add_library(XCEngine STATIC
src/RHI/D3D12DescriptorHeap.cpp src/RHI/D3D12DescriptorHeap.cpp
src/RHI/D3D12Buffer.cpp src/RHI/D3D12Buffer.cpp
src/RHI/D3D12PipelineState.cpp src/RHI/D3D12PipelineState.cpp
src/RHI/D3D12Sampler.cpp
src/RHI/D3D12Texture.cpp src/RHI/D3D12Texture.cpp
src/RHI/D3D12RootSignature.cpp src/RHI/D3D12RootSignature.cpp
src/RHI/D3D12SwapChain.cpp src/RHI/D3D12SwapChain.cpp

View File

@@ -0,0 +1,28 @@
#pragma once
#include <d3d12.h>
#include <wrl/client.h>
#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

View File

@@ -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