354b6a5cfc
feat(RHI): 实现 RHISwapChain 抽象基类
2026-03-17 18:05:40 +08:00
55865a0252
feat(RHI): 实现 RHICommandList 抽象基类
2026-03-17 18:01:55 +08:00
4638539f17
feat(RHI): 实现 RHICommandQueue 抽象基类
2026-03-17 17:54:44 +08:00
14fb51e61e
feat(RHI): 实现 RHIDevice 抽象基类
2026-03-17 17:45:01 +08:00
af718279ff
feat(RHI): 实现 RHIFence 抽象基类
...
- 新增 RHIFence 抽象基类
- D3D12Fence 继承 RHIFence
- OpenGLFence 继承 RHIFence
- 文档更新 RHIFence 差异处理策略
2026-03-17 17:36:17 +08:00
e38d5ccede
feat(RHI): 实现 RHIBuffer, RHITexture, RHIShader 抽象基类
...
- 新增 RHIBuffer, RHITexture, RHIShader 抽象基类
- D3D12Buffer/Texture/Shader 继承抽象基类
- OpenGLBuffer/Texture/Shader 继承抽象基类
- 添加 RHICapabilities, RHIDevice 头文件
- RHIEnums 添加 Fragment/TessControl/TessEvaluation
- 文档更新差异处理策略
2026-03-17 17:26:41 +08:00
8c6516183e
test: 添加 D3D12 引擎测试框架
...
- 修复 engine/CMakeLists.txt 路径问题
- 在 tests/D3D12_engine/test/ 创建测试框架
- 添加基础测试夹具 D3D12TestFixture
- 添加 13 个基础测试用例
- 所有测试通过
2026-03-17 03:29:39 +08:00
d1c7c23527
test: 添加 D3D12 测试框架基础设施
...
- 创建 engine/src/RHI/D3D12/test/ 目录
- 添加 CMakeLists.txt 构建配置
- 添加基础测试夹具 D3D12TestFixture.h
- 添加各组件测试文件框架
- 更新 tests/CMakeLists.txt 集成新测试
2026-03-17 02:51:34 +08:00
312699e262
Add CreateDescriptorRange helper
2026-03-17 01:33:17 +08:00
271c05d8c7
Add CreateDesc for D3D12RenderTargetView
2026-03-17 01:32:22 +08:00
f615a86aab
Add CreateDesc for D3D12ShaderResourceView
2026-03-17 01:26:40 +08:00
83e91b16c7
Add CreateDesc for D3D12DepthStencilView
2026-03-17 01:23:23 +08:00
9fda349fa1
Add CreateDesc helper for DescriptorHeap
2026-03-17 01:21:17 +08:00
3d6787b6a4
Add CreateSamplerDesc helper method
2026-03-17 01:19:21 +08:00
64bd8c5074
Refactor: use engine helpers for RootSignature and PSO creation
2026-03-17 01:16:39 +08:00
73627f62f4
Fix CreateDescriptorTable: pass descriptor ranges array instead of using static
2026-03-17 01:03:13 +08:00
988f94eb29
Add static helper methods to D3D12RootSignature and D3D12PipelineState
2026-03-17 00:57:35 +08:00
7874033379
Add RootSignatureBuilder and PipelineStateBuilder for cleaner RHI API
2026-03-17 00:52:24 +08:00
472f106a12
Refactor D3D12: remove ICommandQueue, IFence dependencies
2026-03-16 21:50:54 +08:00
0ce312e648
Remove RHI interface inheritance from all D3D12 backend classes
...
- D3D12Device, D3D12CommandQueue, D3D12CommandAllocator, D3D12Fence
- D3D12DescriptorHeap, D3D12QueryHeap, D3D12RootSignature
- D3D12PipelineState, D3D12Sampler, D3D12Shader
- D3D12Buffer, D3D12Texture, D3D12SwapChain
All D3D12 backend classes now directly use D3D12 APIs without
going through RHI interface abstraction. This decouples the
D3D12 backend from the RHI abstraction layer.
Test: D3D12 rendering test passed (screenshot comparison 100% match)
2026-03-16 15:48:14 +08:00
0014c32fa5
Remove IRHIDevice inheritance from D3D12Device
...
- D3D12Device no longer inherits from IRHIDevice interface
- Removed interface factory methods (CreateCommandQueue, CreateCommandList, etc.)
- Keep concrete D3D12-specific methods (Initialize, Shutdown, GetDevice, etc.)
- This is the first step to decouple RHI abstraction from D3D12 backend
2026-03-16 15:41:30 +08:00
554c48448b
Implement IShader and ISwapChain interfaces for D3D12 backend
...
- D3D12Shader now implements IShader interface with GetBytecode, GetBytecodeSize, GetType, GetInputLayout
- D3D12SwapChain now implements ISwapChain interface with GetBackBuffer returning IResource*
- Added D3D12Texture back buffer storage to SwapChain
- Fixed ISwapChain const correctness (GetCurrentBackBufferIndex, GetBackBuffer)
- main.cpp: use GetD3D12Bytecode() instead of GetBytecode() for PSO creation
2026-03-16 12:38:17 +08:00
8c1d68da57
Make D3D12RootSignature implement IRootSignature interface
2026-03-16 00:09:42 +08:00
37750fda7d
Make D3D12DescriptorHeap implement IDescriptorHeap interface
2026-03-16 00:00:46 +08:00
fb2b794156
Add IRHIDevice interface implementation to D3D12Device
...
- D3D12Device now inherits from IRHIDevice
- Implement factory methods: CreateCommandQueue, CreateCommandList, CreateFence, etc.
- Make D3D12CommandQueue implement ICommandQueue
- Add backward-compatible overloads for existing main.cpp code
- Remove duplicate Viewport/Rect definitions from D3D12CommandList.h
- Update main.cpp to use IRHIDevice* pointer
2026-03-15 23:03:06 +08:00
dfbd218435
Move D3D12 cpp files to src/RHI/D3D12/ subdirectory
2026-03-15 20:50:06 +08:00
f427eb2588
refactor: 删除旧的RHI实现,添加D3D12测试用例和第二阶段计划
2026-03-15 01:58:30 +08:00
15f42a1af5
feat: 添加CommandList常量和DSV支持,完善RenderContext
2026-03-15 00:08:03 +08:00
ab29013c01
fix: 修复VertexBuffer/IndexBuffer SizeInBytes错误及Fence Signal类型问题
2026-03-14 14:20:57 +08:00
3ad317afb2
feat: 修复RHI渲染循环问题
...
- 修复RootSignature参数数量与HelloEarth一致
- 修复StaticMeshComponent中device为nullptr的问题
- 修复CommandList::Reset类型转换问题
- 修复RTV创建使用nullptr而不是rtvDesc
- 添加SwapChain的GetCurrentRenderTarget方法
- 修复DepthStencil创建问题(暂时跳过)
- 渲染循环基本可运行
2026-03-14 03:13:10 +08:00
5f12393424
feat: 实现D3D12 RHI抽象层,修复PSO创建问题
...
- 添加RHI接口定义(IRHIDevice, ICommandList, IResource等)
- 实现D3D12Device, D3D12CommandList, D3D12PipelineState等
- 修复RootSignature参数数量(3->4)与HelloEarth一致
- 修复DSV格式设置(Unknown->D24_UNorm_S8_UInt)
- 添加Geometry Shader编译
- 创建XCEngineDemo项目验证RHI功能
2026-03-14 02:42:59 +08:00