test: 添加 D3D12 引擎测试框架

- 修复 engine/CMakeLists.txt 路径问题
- 在 tests/D3D12_engine/test/ 创建测试框架
- 添加基础测试夹具 D3D12TestFixture
- 添加 13 个基础测试用例
- 所有测试通过
This commit is contained in:
2026-03-17 03:29:39 +08:00
parent d1c7c23527
commit 8c6516183e
23 changed files with 288 additions and 327 deletions

View File

@@ -6,150 +6,150 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_library(XCEngine STATIC
# Math
include/XCEngine/Math/Math.h
include/XCEngine/Math/Vector2.h
include/XCEngine/Math/Vector3.h
include/XCEngine/Math/Vector4.h
include/XCEngine/Math/Matrix3.h
include/XCEngine/Math/Matrix4.h
include/XCEngine/Math/Quaternion.h
include/XCEngine/Math/Transform.h
include/XCEngine/Math/Color.h
include/XCEngine/Math/Ray.h
include/XCEngine/Math/Plane.h
include/XCEngine/Math/Sphere.h
include/XCEngine/Math/Box.h
include/XCEngine/Math/Bounds.h
include/XCEngine/Math/Frustum.h
include/XCEngine/Math/Rect.h
include/XCEngine/Math/AABB.h
src/Math/Matrix.cpp
src/Math/Quaternion.cpp
src/Math/Transform.cpp
src/Math/Color.cpp
src/Math/Geometry.cpp
src/Math/FrustumBounds.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Math.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector2.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Matrix3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Matrix4.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Quaternion.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Transform.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Color.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Ray.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Plane.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Sphere.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Box.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Bounds.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Frustum.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Rect.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/AABB.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Matrix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Quaternion.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Transform.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Color.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Geometry.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/FrustumBounds.cpp
# Containers
include/XCEngine/Containers/Containers.h
include/XCEngine/Containers/Array.h
include/XCEngine/Containers/String.h
include/XCEngine/Containers/HashMap.h
src/Containers/String.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/Containers.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/Array.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/String.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/HashMap.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Containers/String.cpp
# Memory
include/XCEngine/Memory/Allocator.h
include/XCEngine/Memory/LinearAllocator.h
include/XCEngine/Memory/PoolAllocator.h
include/XCEngine/Memory/ProxyAllocator.h
include/XCEngine/Memory/MemoryManager.h
src/Memory/Memory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/Allocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/LinearAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/PoolAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/ProxyAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/MemoryManager.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Memory/Memory.cpp
# Threading
include/XCEngine/Threading/Threading.h
include/XCEngine/Threading/Mutex.h
include/XCEngine/Threading/SpinLock.h
include/XCEngine/Threading/ReadWriteLock.h
include/XCEngine/Threading/Thread.h
include/XCEngine/Threading/Task.h
include/XCEngine/Threading/LambdaTask.h
include/XCEngine/Threading/TaskGroup.h
include/XCEngine/Threading/TaskSystemConfig.h
include/XCEngine/Threading/TaskSystem.h
src/Threading/Thread.cpp
src/Threading/TaskGroup.cpp
src/Threading/TaskSystem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Threading.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Mutex.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/SpinLock.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/ReadWriteLock.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Thread.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Task.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/LambdaTask.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskGroup.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskSystemConfig.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskSystem.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/Thread.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskGroup.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskSystem.cpp
# Core
include/XCEngine/Core/FileWriter.h
src/Core/FileWriter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/FileWriter.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/FileWriter.cpp
# Debug
include/XCEngine/Debug/Debug.h
include/XCEngine/Debug/LogLevel.h
include/XCEngine/Debug/LogCategory.h
include/XCEngine/Debug/LogEntry.h
include/XCEngine/Debug/ILogSink.h
include/XCEngine/Debug/ConsoleLogSink.h
include/XCEngine/Debug/FileLogSink.h
include/XCEngine/Debug/Logger.h
include/XCEngine/Debug/Profiler.h
src/Debug/LogLevel.cpp
src/Debug/LogCategory.cpp
src/Debug/ConsoleLogSink.cpp
src/Debug/FileLogSink.cpp
src/Debug/Logger.cpp
src/Debug/Profiler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Debug.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogLevel.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogCategory.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogEntry.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/ILogSink.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/ConsoleLogSink.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/FileLogSink.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Logger.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Profiler.h
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/LogLevel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/LogCategory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/ConsoleLogSink.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/FileLogSink.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/Logger.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/Profiler.cpp
# RHI
include/XCEngine/RHI/Enums.h
include/XCEngine/RHI/D3D12/D3D12Enum.h
include/XCEngine/RHI/D3D12/D3D12Device.h
include/XCEngine/RHI/D3D12/D3D12CommandQueue.h
include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h
include/XCEngine/RHI/D3D12/D3D12CommandList.h
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/D3D12Shader.h
include/XCEngine/RHI/D3D12/D3D12Texture.h
include/XCEngine/RHI/D3D12/D3D12RootSignature.h
include/XCEngine/RHI/D3D12/D3D12SwapChain.h
include/XCEngine/RHI/D3D12/D3D12Fence.h
include/XCEngine/RHI/D3D12/D3D12Screenshot.h
include/XCEngine/RHI/D3D12/D3D12RenderTargetView.h
include/XCEngine/RHI/D3D12/D3D12DepthStencilView.h
include/XCEngine/RHI/D3D12/D3D12ShaderResourceView.h
include/XCEngine/RHI/D3D12/D3D12ConstantBufferView.h
include/XCEngine/RHI/D3D12/D3D12QueryHeap.h
include/XCEngine/RHI/D3D12/D3D12UnorderedAccessView.h
src/RHI/D3D12/D3D12Device.cpp
src/RHI/D3D12/D3D12CommandQueue.cpp
src/RHI/D3D12/D3D12CommandAllocator.cpp
src/RHI/D3D12/D3D12CommandList.cpp
src/RHI/D3D12/D3D12DescriptorHeap.cpp
src/RHI/D3D12/D3D12Buffer.cpp
src/RHI/D3D12/D3D12PipelineState.cpp
src/RHI/D3D12/D3D12Sampler.cpp
src/RHI/D3D12/D3D12Shader.cpp
src/RHI/D3D12/D3D12Texture.cpp
src/RHI/D3D12/D3D12RootSignature.cpp
src/RHI/D3D12/D3D12SwapChain.cpp
src/RHI/D3D12/D3D12Fence.cpp
src/RHI/D3D12/D3D12Screenshot.cpp
src/RHI/D3D12/D3D12RenderTargetView.cpp
src/RHI/D3D12/D3D12DepthStencilView.cpp
src/RHI/D3D12/D3D12ShaderResourceView.cpp
src/RHI/D3D12/D3D12ConstantBufferView.cpp
src/RHI/D3D12/D3D12QueryHeap.cpp
src/RHI/D3D12/D3D12UnorderedAccessView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIEnums.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Enum.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Device.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandQueue.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandList.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Buffer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12PipelineState.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Sampler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Shader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Texture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12RootSignature.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12SwapChain.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Fence.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Screenshot.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12RenderTargetView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12DepthStencilView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12ShaderResourceView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12ConstantBufferView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12QueryHeap.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12UnorderedAccessView.h
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Device.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandQueue.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandAllocator.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandList.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12DescriptorHeap.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Buffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12PipelineState.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Sampler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Shader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Texture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12RootSignature.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12SwapChain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Fence.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Screenshot.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12RenderTargetView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12DepthStencilView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12ShaderResourceView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12ConstantBufferView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12QueryHeap.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12UnorderedAccessView.cpp
# OpenGL RHI
include/XCEngine/RHI/OpenGL/OpenGLDevice.h
include/XCEngine/RHI/OpenGL/OpenGLShader.h
include/XCEngine/RHI/OpenGL/OpenGLBuffer.h
include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h
include/XCEngine/RHI/OpenGL/OpenGLTexture.h
include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h
include/XCEngine/RHI/OpenGL/OpenGLCommandList.h
include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h
include/XCEngine/RHI/OpenGL/OpenGLFence.h
include/XCEngine/RHI/OpenGL/OpenGLSampler.h
include/XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h
include/XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h
src/RHI/OpenGL/OpenGLDevice.cpp
src/RHI/OpenGL/OpenGLShader.cpp
src/RHI/OpenGL/OpenGLBuffer.cpp
src/RHI/OpenGL/OpenGLVertexArray.cpp
src/RHI/OpenGL/OpenGLTexture.cpp
src/RHI/OpenGL/OpenGLPipelineState.cpp
src/RHI/OpenGL/OpenGLCommandList.cpp
src/RHI/OpenGL/OpenGLSwapChain.cpp
src/RHI/OpenGL/OpenGLFence.cpp
src/RHI/OpenGL/OpenGLSampler.cpp
src/RHI/OpenGL/OpenGLRenderTargetView.cpp
src/RHI/OpenGL/OpenGLDepthStencilView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDevice.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLShader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLBuffer.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLTexture.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLCommandList.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLFence.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLSampler.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDevice.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLShader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLBuffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLVertexArray.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLTexture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLPipelineState.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLCommandList.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLSwapChain.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLFence.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLSampler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLRenderTargetView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDepthStencilView.cpp
)
target_include_directories(XCEngine PUBLIC