Commit Graph

32 Commits

Author SHA1 Message Date
8c6516183e test: 添加 D3D12 引擎测试框架
- 修复 engine/CMakeLists.txt 路径问题
- 在 tests/D3D12_engine/test/ 创建测试框架
- 添加基础测试夹具 D3D12TestFixture
- 添加 13 个基础测试用例
- 所有测试通过
2026-03-17 03:29:39 +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
4a0f6d65d1 Remove OpenGLMesh (not needed, D3D12 has no Mesh) 2026-03-16 19:15:18 +08:00
801c563eb5 Add OpenGLMesh class to engine (not yet integrated in main.cpp) 2026-03-16 19:12:27 +08:00
bf98fa0b89 Add OpenGLRenderTargetView and OpenGLDepthStencilView 2026-03-16 19:06:21 +08:00
3cd47ea4c8 Add OpenGLSampler 2026-03-16 18:52:00 +08:00
aee4ae88db Add OpenGLFence 2026-03-16 18:48:12 +08:00
377f43260b Add OpenGLSwapChain 2026-03-16 18:41:05 +08:00
fce3d2421c Add OpenGLCommandList 2026-03-16 18:35:02 +08:00
0be91748c2 Add OpenGLPipelineState and integrate into main.cpp 2026-03-16 18:25:58 +08:00
fee738b0b9 Move OpenGL backend classes from tests/OpenGL to engine/
- Relocated OpenGLDevice, OpenGLShader, OpenGLBuffer, OpenGLVertexArray, OpenGLTexture to engine/
- Updated engine/CMakeLists.txt to include OpenGL backend source files
- Updated tests/OpenGL/CMakeLists.txt to use engine backend
- Added OpenGLTexture class implementation
2026-03-16 17:22:45 +08:00
dfbd218435 Move D3D12 cpp files to src/RHI/D3D12/ subdirectory 2026-03-15 20:50:06 +08:00
3959f74908 Add D3D12QueryHeap and D3D12UnorderedAccessView 2026-03-15 19:30:19 +08:00
42c17ee106 Add D3D12 view wrapper classes: RTV, DSV, SRV, CBV 2026-03-15 19:10:32 +08:00
c3feeda5d4 feat: 实现 D3D12Shader 着色器类
- 添加 D3D12Shader.h/cpp
- 支持从文件编译着色器
- 支持从内存编译着色器
- 测试通过
2026-03-15 18:51:38 +08:00
db8e8633c8 feat: 实现 D3D12Sampler 采样器类
- 添加 D3D12Sampler.h/cpp
- 支持采样器描述符
- 测试通过
2026-03-15 18:48:04 +08:00
017bbf281d feat: 实现 D3D12Texture 和 D3D12Buffer 资源类
- 添加 D3D12Texture.h/cpp - 纹理资源封装
- 添加 D3D12Buffer.h/cpp - 缓冲区资源封装
- 支持 CreateCommittedResource 创建资源
- 测试通过
2026-03-15 18:45:11 +08:00
2a8f50134c feat: 实现 D3D12PipelineState 并替换到 tests/D3D12
- 添加 D3D12PipelineState.h/cpp
- 全局变量 gPipelineState
- 使用 D3D12PipelineState::Initialize 替代原生 CreateGraphicsPipelineState
- 测试通过
2026-03-15 18:41:27 +08:00
2bdd6d3199 feat: 实现 D3D12RootSignature 根签名类
- 添加 D3D12RootSignature.h 头文件
- 实现 ID3D12RootSignature 封装
- 支持序列化根签名描述符
- 测试通过
2026-03-15 18:36:11 +08:00
f187aa3b37 feat: 实现 D3D12SwapChain 交换链类
- 添加 D3D12SwapChain.h 头文件
- 实现 IDXGISwapChain3 封装
- 实现 Initialize、Present、Resize 等方法
- 测试通过
2026-03-15 18:24:02 +08:00
7f064e9e71 feat: 实现 D3D12DescriptorHeap 描述符堆类
- 添加 D3D12DescriptorHeap.h 头文件
- 实现 ID3D12DescriptorHeap 封装
- 支持 RTV、DSV、CBV_SRV_UAV、Sampler 堆类型
- 支持 GPU 可见描述符堆
- 添加 GetCPUDescriptorHandle、GetGPUDescriptorHandle 等方法
- 测试通过
2026-03-15 18:17:59 +08:00
bf37b1c00c feat: 实现 D3D12CommandList 命令列表类
- 添加 D3D12CommandList.h 头文件,包含 Viewport、Rect、ResourceBarrierDesc 结构体
- 实现 ID3D12GraphicsCommandList 封装
- 实现所有渲染命令:TransitionBarrier、UAVBarrier、AliasBarrier
- 实现状态追踪和资源追踪
- 添加到 CMakeLists.txt 构建系统
- 修复 tests/D3D12/run.bat 路径问题
2026-03-15 18:05:06 +08:00
4881aee70a refactor: 将截图功能移到RHI模块的D3D12Screenshot类 2026-03-15 15:39:15 +08:00
17c8ea46c5 feat: 实现D3D12Fence封装
- 添加D3D12Fence类封装ID3D12Fence
- 包含Signal/Wait/GetCompletedValue等同步功能
- 更新测试项目使用新的封装类
2026-03-15 03:23:39 +08:00
8fb11dc650 feat: 实现D3D12CommandQueue和D3D12CommandAllocator
- 添加D3D12CommandQueue类封装ID3D12CommandQueue
- 添加D3D12CommandAllocator类封装ID3D12CommandAllocator
- 在D3D12Enum.h中添加CommandQueueType转换函数
- 在CMake中添加Res文件夹自动拷贝到输出目录
- 更新测试项目使用新的封装类
2026-03-15 03:15:12 +08:00
cba4f9c838 feat: 实现D3D12Device类,整合D3D12Enum.h转换函数
- 简化D3D12Device,仅封装ID3D12Device和IDXGIFactory
- 将D3D12Common.h中的转换函数合并到D3D12Enum.h
- 添加ResourceStates枚举到Enums.h
- 更新测试项目使用新的D3D12Device类
- 更新CMake配置
2026-03-15 03:02:15 +08:00
3e89489078 refactor: 添加RHI Enums.h并在D3D12测试中替换部分D3D12枚举 2026-03-15 02:05:28 +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
83fd517974 feat: 实现日志与调试系统(Debug模块)
- LogLevel: 日志级别枚举 (Verbose, Debug, Info, Warning, Error, Fatal)
- LogCategory: 日志分类 (General, Rendering, Physics, Memory, Threading等)
- ILogSink: 日志输出接口
- ConsoleLogSink: 控制台输出, 支持Windows颜色
- FileLogSink: 文件日志输出
- FileWriter: 文件写入器
- Logger: 日志管理器, 支持多sink, 分类控制
- Profiler: 性能分析器
- 单元测试覆盖
2026-03-13 20:53:57 +08:00
34c75e7129 feat: 实现Containers、Memory、Threading核心模块及单元测试
- Containers: String, Array, HashMap 容器实现及测试
- Memory: Allocator, LinearAllocator, PoolAllocator, ProxyAllocator, MemoryManager 实现及测试
- Threading: Mutex, SpinLock, ReadWriteLock, Thread, Task, TaskSystem 实现及测试
- 修复Windows平台兼容性: _aligned_malloc, std::hash特化
- 修复构建错误和测试用例问题
2026-03-13 20:37:08 +08:00
7c54a62f9e feat: 添加Math库和Google Test测试框架
- 新增Math库: Vector2/3/4, Matrix3/4, Quaternion, Transform, Color等
- 新增测试框架: Google Test (gtest)
- 新增140个单元测试,覆盖Vector, Matrix, Quaternion, Geometry
- VolumeRenderer支持vcpkg的NanoVDB
- 添加TESTING.md测试文档
2026-03-13 18:43:14 +08:00