71413381af
docs: fix debug module documentation discrepancies
...
- Changed include path in debug.md from Logger.h to Debug.h (umbrella header)
- Added XE_ASSERT example in debug.md usage section
- Added documentation for Profiler private types (ProfileNode, ProfileSample)
- Added documentation for Profiler member variables (m_profileStack, m_samples, m_frameStartTime, m_initialized)
- Verified MarkEvent, SetMarker, ExportChromeTracing are correctly marked as stubs
2026-03-19 01:02:15 +08:00
a669ec819d
Fix RHI documentation discrepancies and add missing doc files
...
Fixed incorrect links in OpenGL documentation:
- Fixed wrong links to threading/task-system docs for Initialize/Shutdown methods
- Fixed wrong links to buffer docs for GetNativeHandle methods
- Fixed wrong links to shader docs for Bind/Unbind methods
- Fixed wrong links to command-list docs for Clear/Reset/Close methods
- Fixed wrong links to buffer/get-size.md for width/height methods
Added missing documentation files:
- OpenGL buffer: bind.md, unbind.md, get-type.md, initialize.md
- OpenGL fence: initialize.md, reset.md
- OpenGL swap-chain: get-size.md, initialize.md
- OpenGL render-target-view: initialize.md, shutdown.md, bind.md, unbind.md, clear.md, get-size.md
- OpenGL depth-stencil-view: initialize.md, shutdown.md, bind.md, unbind.md, get-size.md
- OpenGL command-list: clear.md
All links validated with fix_links.py - no broken references.
2026-03-19 00:54:54 +08:00
086eb877b5
docs: fix resources module documentation discrepancies
...
- Add missing MakeResourceGUID helper function to resourcetypes.md
- Add note about GetResourceType<T>() template specializations
- Merge duplicate '缓存控制' section into '内存管理' in resourcecache.md
- Verify all methods documented match source code implementations
Fixed documentation to match:
- ResourceTypes.h: MakeResourceGUID function now documented
- ResourceCache.h: OnZeroRefCount and Clear methods now properly listed
- AsyncLoader.md: Removed duplicate progress query section
2026-03-19 00:52:46 +08:00
bd530dc8b1
Fix Box documentation to accurately reflect AABB vs OBB behavior
...
- Updated box.md to clarify that Box uses OBB semantics for Contains
but currently uses AABB for Intersects(Box)
- Updated intersects-box.md to document that it uses AABB algorithm
instead of SAT, since the current implementation ignores transform
- Added notes explaining the current limitations of the Box implementation
2026-03-19 00:52:04 +08:00
6a952473ce
docs: fix threading module documentation discrepancies
...
- Fix include paths: use #include "Threading/..." instead of <XCEngine/Threading/...>
- Document protected ITask constructors (ITask(), ITask(TaskPriority))
- Document Callback typedef in TaskGroup
- Clarify Mutex STL-compatible methods are const
- Note GetProgress() implementation limitation (returns 0.0f)
2026-03-19 00:49:08 +08:00
98c764bab9
docs: Fix memory module documentation discrepancies
...
- Add missing PoolAllocator class overview with methods table
- Add missing LinearAllocator class overview with methods table
- Add missing ProxyAllocator class overview with methods table
- Fix PoolAllocator::Allocate example code and comments
- Clarify ProxyAllocator::Free totalFreed calculation behavior
- Fix CreateLinearAllocator complexity from O(size) to O(1)
- Add note about Reallocate thread safety in ProxyAllocator
2026-03-19 00:48:44 +08:00
5fc18eac6f
docs: Fix SmartPtr docs linking to Core Types instead of RHI Types
2026-03-19 00:47:57 +08:00
dae1a63a90
Fix debug module documentation discrepancies
...
- Fix XE_LOG macro parameter order in debug.md (category, level) was reversed
- Add 'Implementation Status' section to profiler.md listing stub methods
(MarkEvent, SetMarker, ExportChromeTracing) that are not yet implemented
2026-03-19 00:47:29 +08:00
82cf147817
docs: 修正 API 文档准确性 (第四轮检查)
...
修复问题:
- containers: HashMap 实现描述修正
- debug: XE_LOG 宏参数顺序修正
- memory: ProxyAllocator 统计示例修正, PoolAllocator allocate size 检查描述
- resources: ResourceManager 缺失 UnloadGroup 方法
- rhi: D3D12 格式枚举名称修正, Texture Format 枚举补全, ResourceStates 补充
- threading: TaskGroup GetProgress/Wait/Cancel 实现限制说明
2026-03-19 00:43:16 +08:00
870cb3116e
docs: 修正 API 文档准确性 (第三轮检查)
...
修复问题:
- containers: HashMap include 路径修复
- core: RefCounted 析构函数访问级别, Event::begin/end 返回值说明
- memory: LinearAllocator::GetMarker 返回偏移量非指针
- resources: LoadAsync 示例使用不存在的模板方法
- rhi: OpenGL 链接错误, ShaderType 枚举缺失8个类型, 链接修复
- threading: SpinLock STL 兼容方法说明, Mutex const 方法说明
2026-03-19 00:35:26 +08:00
a9f882f233
docs: 修正 API 文档准确性 (第二轮检查)
...
修复的问题:
- math: 修复 Quaternion::Normalize 链接错误
- containers: HashMap 迭代器示例使用不存在的 cbegin/cend,删除冗余构造函数声明
- core: RefCounted 析构函数访问级别修正 (protected)
- debug: LogLevelToString 示例返回值大小写修正
- memory: 修正 LinearAllocator::Reallocate 返回 nullptr,ProxyAllocator 统计描述,头文件路径 IAllocator.h -> Allocator.h
- resources: Texture::Create mipLevels 参数描述修正
- rhi: 修复多处链接错误,新增缺失的方法文档
- threading: TaskSystem 配置项未实现状态标注,Wait 方法空实现标注
2026-03-19 00:31:14 +08:00
dc850d7739
docs: 重构 API 文档结构并修正源码准确性
...
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
d0e16962c8
docs: update README and project docs to reflect game engine scope
2026-03-18 17:58:01 +08:00
9bad996ecf
refactor: reorganize docs into plan/ and add skills/
2026-03-18 17:49:22 +08:00
20445999fc
feat(RHI): 实现 RHIPipelineState 抽象基类
2026-03-17 18:09:34 +08:00
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
f046e17ad6
feat(RHI): 实现 RHISampler 抽象基类
...
- 新增 RHISampler 抽象基类
- D3D12Sampler 继承 RHISampler
- OpenGLSampler 继承 RHISampler,使用 OpenGLSamplerDesc
- 文档更新 RHISampler 差异处理策略
2026-03-17 17:31:32 +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
745f3ab225
Add OpenGL test infrastructure - Phase 1: Device, Buffer, Fence tests (17 tests)
...
- Create test directory structure at tests/RHI/OpenGL/
- Implement OpenGLTestFixture with GLFW/GLAD initialization
- Add Device tests: CreateRenderWindow, InitializeWithExistingWindow, GetDeviceInfo, SwapBuffers, PollEvents
- Add Buffer tests: VertexBuffer, IndexBuffer, UniformBuffer, Dynamic, Bind/Unbind, Map/Unmap
- Add Fence tests: Initialize (signaled/unsignaled), Signal, Wait, IsSignaled, GetStatus
- Add CMakeLists.txt with proper GLFW/GLAD/GTest linking
- Create implementation plan document at docs/OpenGL测试实施计划.md
2026-03-17 12:26:21 +08:00
f5031c89d4
Add OpenGL backend test design document
...
- Complete test design for 12 OpenGL components
- Test fixture design with GLFW context management
- GL error checking utilities and macros
- Detailed test case tables for each component
- CMake build configuration
- CI integration (GitHub Actions)
- Test resource file structure
- Cross-platform considerations
- Implementation priorities (5 phases)
2026-03-17 04:15:44 +08:00
dae540e97a
docs: 更新 D3D12 测试设计文档,标记已完成项
2026-03-17 03:30:19 +08:00
05c4dfb5eb
docs: 完善 D3D12 测试设计文档,添加构建计划
2026-03-17 02:49:20 +08:00
5683b10e65
Rename RHI header files for clarity
...
- Rename Enums.h to RHIEnums.h
- Rename Types.h to RHITypes.h
- Update all include references in D3D12 headers and test files
2026-03-17 02:39:22 +08:00
2342e3fbfc
docs: 添加 D3D12 后端测试设计文档
2026-03-17 02:32:52 +08:00
be72e2f4a7
Enhance OpenGL RTV and DSV with comprehensive framebuffer support
...
OpenGLRenderTargetView:
- Add RenderTargetType enum for different texture types
- Add RenderTargetViewDesc struct with mip level, array slice, layer info
- Add Initialize() with desc parameter for 2D/2DArray/3D/Cube
- Add InitializeCubemap() for cubemap faces
- Add Bind(count) overload for multiple framebuffers
- Add Clear() methods for color and depth-stencil
- Add static BindFramebuffer/UnbindFramebuffer methods
OpenGLDepthStencilView:
- Add DepthStencilType enum for different texture types
- Add DepthStencilViewDesc struct with mip level, array slice, layer info
- Add Initialize() with desc parameter for 2D/2DArray/Cube
- Add InitializeCubemap() for cubemap faces
- Add ClearDepth, ClearStencil, ClearDepthStencil methods
- Add static BindFramebuffer/UnbindFramebuffer methods
2026-03-17 02:20:56 +08:00
6126404e3f
Enhance OpenGLFence with proper synchronization
...
- Add FenceStatus enum for status query
- Add m_sync (GLsync) for OpenGL fence synchronization
- Add Signal(value) overload with fence value
- Add Wait(timeoutNs) with timeout support
- Add GetStatus() for async status check
- Add GetCompletedValue() and GetCurrentValue()
- Implement using glSync for proper GPU synchronization
- Replace glFinish blocking with glClientWaitSync
2026-03-17 02:17:41 +08:00
413f4c178f
Enhance OpenGLCommandList with comprehensive rendering API
...
- Add ClearFlags, ClearColor, ClearDepth, ClearStencil, ClearDepthStencil
- Add SetVertexBuffers (multiple buffers)
- Add SetIndexBuffer with offset
- Add BindVertexArray with index buffer
- Add SetViewport with depth range, SetViewports
- Add SetScissor, SetScissorRects, EnableScissorTest
- Add depth test/write/func methods
- Add stencil test methods
- Add blending methods (enable, blend func, equation, color)
- Add culling methods (enable, cull face, front face, polygon mode)
- Add instanced drawing (DrawInstanced, DrawIndexedInstanced)
- Add indirect drawing (DrawIndirect, DrawIndexedIndirect)
- Add MultiDrawArrays, MultiDrawElements
- Add Dispatch and Compute Shader support
- Add MemoryBarrier and TextureBarrier
- Add texture/sampler binding methods
- Add buffer binding (BindBufferBase, BindBufferRange)
- Add Enable/Disable for OpenGL caps
- Add uniform setting methods
- Add query methods
- Add ReadPixels, BlitFramebuffer, CopyImageSubData
- Add framebuffer invalidation
- Add debug group push/pop
2026-03-17 02:13:02 +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
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
11db594967
更新D3D12引擎日志和Unity RHI架构设计文档
2026-03-16 14:44:38 +08:00
2b3ac27243
Add OpenGL backend project and third phase plan
2026-03-16 13:18:53 +08:00
b2c7627a1b
docs: 更新第二阶段计划,反映实际目录结构和已完成任务
2026-03-15 02:27:05 +08:00
f427eb2588
refactor: 删除旧的RHI实现,添加D3D12测试用例和第二阶段计划
2026-03-15 01:58:30 +08:00
d8882ab93f
refactor: 移除HelloEarth示例,统一使用D3D12最小可行系统
2026-03-15 00:43:54 +08:00
6a0dfb150d
docs: 添加第二阶段计划 - RHI抽象层封装
2026-03-13 21:24:02 +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
faf99dfc68
docs: 添加架构设计文档
2026-03-13 01:35:46 +08:00
c992e3da24
添加开题报告和任务书文档
2026-03-12 02:36:17 +08:00
a6b73245e4
添加深入方向规划文档
2026-03-12 02:34:11 +08:00