test: 添加 D3D12 引擎测试框架
- 修复 engine/CMakeLists.txt 路径问题 - 在 tests/D3D12_engine/test/ 创建测试框架 - 添加基础测试夹具 D3D12TestFixture - 添加 13 个基础测试用例 - 所有测试通过
This commit is contained in:
@@ -6,150 +6,150 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||||||
|
|
||||||
add_library(XCEngine STATIC
|
add_library(XCEngine STATIC
|
||||||
# Math
|
# Math
|
||||||
include/XCEngine/Math/Math.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Math.h
|
||||||
include/XCEngine/Math/Vector2.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector2.h
|
||||||
include/XCEngine/Math/Vector3.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector3.h
|
||||||
include/XCEngine/Math/Vector4.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Vector4.h
|
||||||
include/XCEngine/Math/Matrix3.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Matrix3.h
|
||||||
include/XCEngine/Math/Matrix4.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Matrix4.h
|
||||||
include/XCEngine/Math/Quaternion.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Quaternion.h
|
||||||
include/XCEngine/Math/Transform.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Transform.h
|
||||||
include/XCEngine/Math/Color.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Color.h
|
||||||
include/XCEngine/Math/Ray.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Ray.h
|
||||||
include/XCEngine/Math/Plane.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Plane.h
|
||||||
include/XCEngine/Math/Sphere.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Sphere.h
|
||||||
include/XCEngine/Math/Box.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Box.h
|
||||||
include/XCEngine/Math/Bounds.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Bounds.h
|
||||||
include/XCEngine/Math/Frustum.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Frustum.h
|
||||||
include/XCEngine/Math/Rect.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/Rect.h
|
||||||
include/XCEngine/Math/AABB.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Math/AABB.h
|
||||||
src/Math/Matrix.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Matrix.cpp
|
||||||
src/Math/Quaternion.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Quaternion.cpp
|
||||||
src/Math/Transform.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Transform.cpp
|
||||||
src/Math/Color.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Color.cpp
|
||||||
src/Math/Geometry.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/Geometry.cpp
|
||||||
src/Math/FrustumBounds.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Math/FrustumBounds.cpp
|
||||||
|
|
||||||
# Containers
|
# Containers
|
||||||
include/XCEngine/Containers/Containers.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/Containers.h
|
||||||
include/XCEngine/Containers/Array.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/Array.h
|
||||||
include/XCEngine/Containers/String.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/String.h
|
||||||
include/XCEngine/Containers/HashMap.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Containers/HashMap.h
|
||||||
src/Containers/String.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Containers/String.cpp
|
||||||
|
|
||||||
# Memory
|
# Memory
|
||||||
include/XCEngine/Memory/Allocator.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/Allocator.h
|
||||||
include/XCEngine/Memory/LinearAllocator.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/LinearAllocator.h
|
||||||
include/XCEngine/Memory/PoolAllocator.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/PoolAllocator.h
|
||||||
include/XCEngine/Memory/ProxyAllocator.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/ProxyAllocator.h
|
||||||
include/XCEngine/Memory/MemoryManager.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Memory/MemoryManager.h
|
||||||
src/Memory/Memory.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Memory/Memory.cpp
|
||||||
|
|
||||||
# Threading
|
# Threading
|
||||||
include/XCEngine/Threading/Threading.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Threading.h
|
||||||
include/XCEngine/Threading/Mutex.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Mutex.h
|
||||||
include/XCEngine/Threading/SpinLock.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/SpinLock.h
|
||||||
include/XCEngine/Threading/ReadWriteLock.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/ReadWriteLock.h
|
||||||
include/XCEngine/Threading/Thread.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Thread.h
|
||||||
include/XCEngine/Threading/Task.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/Task.h
|
||||||
include/XCEngine/Threading/LambdaTask.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/LambdaTask.h
|
||||||
include/XCEngine/Threading/TaskGroup.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskGroup.h
|
||||||
include/XCEngine/Threading/TaskSystemConfig.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskSystemConfig.h
|
||||||
include/XCEngine/Threading/TaskSystem.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Threading/TaskSystem.h
|
||||||
src/Threading/Thread.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/Thread.cpp
|
||||||
src/Threading/TaskGroup.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskGroup.cpp
|
||||||
src/Threading/TaskSystem.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Threading/TaskSystem.cpp
|
||||||
|
|
||||||
# Core
|
# Core
|
||||||
include/XCEngine/Core/FileWriter.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Core/FileWriter.h
|
||||||
src/Core/FileWriter.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Core/FileWriter.cpp
|
||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
include/XCEngine/Debug/Debug.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Debug.h
|
||||||
include/XCEngine/Debug/LogLevel.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogLevel.h
|
||||||
include/XCEngine/Debug/LogCategory.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogCategory.h
|
||||||
include/XCEngine/Debug/LogEntry.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/LogEntry.h
|
||||||
include/XCEngine/Debug/ILogSink.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/ILogSink.h
|
||||||
include/XCEngine/Debug/ConsoleLogSink.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/ConsoleLogSink.h
|
||||||
include/XCEngine/Debug/FileLogSink.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/FileLogSink.h
|
||||||
include/XCEngine/Debug/Logger.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Logger.h
|
||||||
include/XCEngine/Debug/Profiler.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/Debug/Profiler.h
|
||||||
src/Debug/LogLevel.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/LogLevel.cpp
|
||||||
src/Debug/LogCategory.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/LogCategory.cpp
|
||||||
src/Debug/ConsoleLogSink.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/ConsoleLogSink.cpp
|
||||||
src/Debug/FileLogSink.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/FileLogSink.cpp
|
||||||
src/Debug/Logger.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/Logger.cpp
|
||||||
src/Debug/Profiler.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/Debug/Profiler.cpp
|
||||||
|
|
||||||
# RHI
|
# RHI
|
||||||
include/XCEngine/RHI/Enums.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIEnums.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Enum.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Enum.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Device.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Device.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12CommandQueue.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandQueue.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12CommandList.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandList.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Buffer.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Buffer.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12PipelineState.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12PipelineState.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Sampler.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Sampler.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Shader.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Shader.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Texture.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Texture.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12RootSignature.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12RootSignature.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12SwapChain.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12SwapChain.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Fence.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Fence.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12Screenshot.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Screenshot.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12RenderTargetView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12RenderTargetView.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12DepthStencilView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12DepthStencilView.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12ShaderResourceView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12ShaderResourceView.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12ConstantBufferView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12ConstantBufferView.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12QueryHeap.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12QueryHeap.h
|
||||||
include/XCEngine/RHI/D3D12/D3D12UnorderedAccessView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12UnorderedAccessView.h
|
||||||
src/RHI/D3D12/D3D12Device.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Device.cpp
|
||||||
src/RHI/D3D12/D3D12CommandQueue.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandQueue.cpp
|
||||||
src/RHI/D3D12/D3D12CommandAllocator.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandAllocator.cpp
|
||||||
src/RHI/D3D12/D3D12CommandList.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12CommandList.cpp
|
||||||
src/RHI/D3D12/D3D12DescriptorHeap.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12DescriptorHeap.cpp
|
||||||
src/RHI/D3D12/D3D12Buffer.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Buffer.cpp
|
||||||
src/RHI/D3D12/D3D12PipelineState.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12PipelineState.cpp
|
||||||
src/RHI/D3D12/D3D12Sampler.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Sampler.cpp
|
||||||
src/RHI/D3D12/D3D12Shader.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Shader.cpp
|
||||||
src/RHI/D3D12/D3D12Texture.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Texture.cpp
|
||||||
src/RHI/D3D12/D3D12RootSignature.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12RootSignature.cpp
|
||||||
src/RHI/D3D12/D3D12SwapChain.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12SwapChain.cpp
|
||||||
src/RHI/D3D12/D3D12Fence.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Fence.cpp
|
||||||
src/RHI/D3D12/D3D12Screenshot.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12Screenshot.cpp
|
||||||
src/RHI/D3D12/D3D12RenderTargetView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12RenderTargetView.cpp
|
||||||
src/RHI/D3D12/D3D12DepthStencilView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12DepthStencilView.cpp
|
||||||
src/RHI/D3D12/D3D12ShaderResourceView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12ShaderResourceView.cpp
|
||||||
src/RHI/D3D12/D3D12ConstantBufferView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12ConstantBufferView.cpp
|
||||||
src/RHI/D3D12/D3D12QueryHeap.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12QueryHeap.cpp
|
||||||
src/RHI/D3D12/D3D12UnorderedAccessView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/D3D12/D3D12UnorderedAccessView.cpp
|
||||||
|
|
||||||
# OpenGL RHI
|
# OpenGL RHI
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLDevice.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDevice.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLShader.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLShader.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLBuffer.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLBuffer.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLTexture.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLTexture.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLCommandList.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLCommandList.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLFence.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLFence.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLSampler.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLSampler.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h
|
||||||
include/XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h
|
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h
|
||||||
src/RHI/OpenGL/OpenGLDevice.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDevice.cpp
|
||||||
src/RHI/OpenGL/OpenGLShader.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLShader.cpp
|
||||||
src/RHI/OpenGL/OpenGLBuffer.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLBuffer.cpp
|
||||||
src/RHI/OpenGL/OpenGLVertexArray.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLVertexArray.cpp
|
||||||
src/RHI/OpenGL/OpenGLTexture.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLTexture.cpp
|
||||||
src/RHI/OpenGL/OpenGLPipelineState.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLPipelineState.cpp
|
||||||
src/RHI/OpenGL/OpenGLCommandList.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLCommandList.cpp
|
||||||
src/RHI/OpenGL/OpenGLSwapChain.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLSwapChain.cpp
|
||||||
src/RHI/OpenGL/OpenGLFence.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLFence.cpp
|
||||||
src/RHI/OpenGL/OpenGLSampler.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLSampler.cpp
|
||||||
src/RHI/OpenGL/OpenGLRenderTargetView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLRenderTargetView.cpp
|
||||||
src/RHI/OpenGL/OpenGLDepthStencilView.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDepthStencilView.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(XCEngine PUBLIC
|
target_include_directories(XCEngine PUBLIC
|
||||||
|
|||||||
@@ -1,144 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
|
||||||
#include <d3d12.h>
|
|
||||||
#include <dxgi1_4.h>
|
|
||||||
#include <wrl/client.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/D3D12Fence.h"
|
|
||||||
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
|
|
||||||
class D3D12TestFixture : public ::testing::Test {
|
|
||||||
protected:
|
|
||||||
static void SetUpTestSuite() {
|
|
||||||
HRESULT hr = D3D12CreateDevice(
|
|
||||||
nullptr,
|
|
||||||
D3D_FEATURE_LEVEL_12_0,
|
|
||||||
IID_PPV_ARGS(&mDevice)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
|
||||||
GTEST_SKIP() << "Failed to create D3D12 device - hardware may not support D3D12";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr = mDevice->QueryInterface(IID_PPV_ARGS(&mDebugDevice));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TearDownTestSuite() {
|
|
||||||
mDebugDevice.Reset();
|
|
||||||
mDevice.Reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetUp() override {
|
|
||||||
if (!mDevice) {
|
|
||||||
GTEST_SKIP() << "D3D12 device not available";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
D3D12_COMMAND_QUEUE_DESC queueDesc = {};
|
|
||||||
queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;
|
|
||||||
queueDesc.Priority = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL;
|
|
||||||
queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE;
|
|
||||||
queueDesc.NodeMask = 0;
|
|
||||||
|
|
||||||
HRESULT hr = mDevice->CreateCommandQueue(
|
|
||||||
&queueDesc,
|
|
||||||
IID_PPV_ARGS(&mCommandQueue)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
|
||||||
GTEST_SKIP() << "Failed to create command queue";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr = mDevice->CreateCommandAllocator(
|
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT,
|
|
||||||
IID_PPV_ARGS(&mCommandAllocator)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
|
||||||
GTEST_SKIP() << "Failed to create command allocator";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr = mDevice->CreateCommandList(
|
|
||||||
0,
|
|
||||||
D3D12_COMMAND_LIST_TYPE_DIRECT,
|
|
||||||
mCommandAllocator.Get(),
|
|
||||||
nullptr,
|
|
||||||
IID_PPV_ARGS(&mCommandList)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
|
||||||
GTEST_SKIP() << "Failed to create command list";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TearDown() override {
|
|
||||||
if (mCommandQueue) {
|
|
||||||
WaitForGPU();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mCommandList) {
|
|
||||||
mCommandList.Reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mCommandAllocator) {
|
|
||||||
mCommandAllocator.Reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mCommandQueue) {
|
|
||||||
mCommandQueue.Reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ID3D12Device* GetDevice() { return mDevice.Get(); }
|
|
||||||
ID3D12CommandQueue* GetCommandQueue() { return mCommandQueue.Get(); }
|
|
||||||
ID3D12CommandList* GetCommandList() { return mCommandList.Get(); }
|
|
||||||
ID3D12CommandAllocator* GetCommandAllocator() { return mCommandAllocator.Get(); }
|
|
||||||
|
|
||||||
void WaitForGPU() {
|
|
||||||
if (!mCommandQueue || !mDevice) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ComPtr<ID3D12Fence> fence;
|
|
||||||
UINT64 fenceValue = 1;
|
|
||||||
|
|
||||||
HRESULT hr = mDevice->CreateFence(
|
|
||||||
0,
|
|
||||||
D3D12_FENCE_FLAG_NONE,
|
|
||||||
IID_PPV_ARGS(&fence)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
mCommandQueue->Signal(fence.Get(), fenceValue);
|
|
||||||
|
|
||||||
if (fence->GetCompletedValue() < fenceValue) {
|
|
||||||
HANDLE eventHandle = CreateEvent(nullptr, FALSE, FALSE, nullptr);
|
|
||||||
if (eventHandle) {
|
|
||||||
fence->SetEventOnCompletion(fenceValue, eventHandle);
|
|
||||||
WaitForSingleObject(eventHandle, INFINITE);
|
|
||||||
CloseHandle(eventHandle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
static ComPtr<ID3D12Device> mDevice;
|
|
||||||
static ComPtr<ID3D12DebugDevice> mDebugDevice;
|
|
||||||
ComPtr<ID3D12CommandQueue> mCommandQueue;
|
|
||||||
ComPtr<ID3D12CommandAllocator> mCommandAllocator;
|
|
||||||
ComPtr<ID3D12CommandList> mCommandList;
|
|
||||||
};
|
|
||||||
|
|
||||||
ComPtr<ID3D12Device> D3D12TestFixture::mDevice;
|
|
||||||
ComPtr<ID3D12DebugDevice> D3D12TestFixture::mDebugDevice;
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
|
||||||
|
|
||||||
TEST(D3D12CommandAllocator, CreateAllocator_Success) {
|
|
||||||
auto* allocator = GetCommandAllocator();
|
|
||||||
ASSERT_NE(allocator, nullptr);
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
|
||||||
|
|
||||||
TEST(D3D12CommandList, CreateCommandList_Success) {
|
|
||||||
auto* cmdList = GetCommandList();
|
|
||||||
ASSERT_NE(cmdList, nullptr);
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
|
||||||
|
|
||||||
TEST(D3D12CommandQueue, CreateQueue_Success) {
|
|
||||||
auto* queue = GetCommandQueue();
|
|
||||||
ASSERT_NE(queue, nullptr);
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
|
||||||
|
|
||||||
TEST(D3D12Device, CreateDevice_Success) {
|
|
||||||
auto* device = GetDevice();
|
|
||||||
ASSERT_NE(device, nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(D3D12Device, GetAdapterInfo_NotEmpty) {
|
|
||||||
ASSERT_NE(GetDevice(), nullptr);
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
|
||||||
|
|
||||||
TEST(D3D12Fence, CreateFence_Success) {
|
|
||||||
auto* device = GetDevice();
|
|
||||||
ASSERT_NE(device, nullptr);
|
|
||||||
}
|
|
||||||
@@ -38,9 +38,7 @@ add_subdirectory(memory)
|
|||||||
add_subdirectory(threading)
|
add_subdirectory(threading)
|
||||||
add_subdirectory(debug)
|
add_subdirectory(debug)
|
||||||
add_subdirectory(D3D12)
|
add_subdirectory(D3D12)
|
||||||
|
add_subdirectory(D3D12_engine/test)
|
||||||
# D3D12 Engine Tests (in engine source tree)
|
|
||||||
add_subdirectory(${CMAKE_SOURCE_DIR}/engine/src/RHI/D3D12/test ${CMAKE_BINARY_DIR}/D3D12_engine_tests)
|
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# Test Summary
|
# Test Summary
|
||||||
|
|||||||
@@ -5,12 +5,13 @@ project(D3D12EngineTests)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
# Google Test 已在父级 tests/CMakeLists.txt 中 FetchContent
|
# 项目根目录 = tests/D3D12_engine/test/../../.. = XCEngine/
|
||||||
# 找到已安装的 GTest
|
get_filename_component(PROJECT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../.. ABSOLUTE)
|
||||||
|
|
||||||
find_package(GTest REQUIRED)
|
find_package(GTest REQUIRED)
|
||||||
|
|
||||||
# 测试源文件
|
|
||||||
set(TEST_SOURCES
|
set(TEST_SOURCES
|
||||||
|
fixtures/D3D12TestFixture.cpp
|
||||||
test_device.cpp
|
test_device.cpp
|
||||||
test_fence.cpp
|
test_fence.cpp
|
||||||
test_command_queue.cpp
|
test_command_queue.cpp
|
||||||
@@ -38,19 +39,17 @@ target_link_libraries(d3d12_engine_tests PRIVATE
|
|||||||
|
|
||||||
target_include_directories(d3d12_engine_tests PRIVATE
|
target_include_directories(d3d12_engine_tests PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/fixtures
|
${CMAKE_CURRENT_SOURCE_DIR}/fixtures
|
||||||
${CMAKE_SOURCE_DIR}/engine/include
|
${PROJECT_ROOT_DIR}/engine/include
|
||||||
${CMAKE_SOURCE_DIR}/tests/D3D12
|
${PROJECT_ROOT_DIR}/engine/src
|
||||||
)
|
)
|
||||||
|
|
||||||
# 设置资源目录路径
|
|
||||||
target_compile_definitions(d3d12_engine_tests PRIVATE
|
target_compile_definitions(d3d12_engine_tests PRIVATE
|
||||||
TEST_RESOURCES_DIR="${CMAKE_SOURCE_DIR}/tests/D3D12/Res"
|
TEST_RESOURCES_DIR="${PROJECT_ROOT_DIR}/tests/D3D12/Res"
|
||||||
)
|
)
|
||||||
|
|
||||||
# 复制资源文件到输出目录
|
|
||||||
add_custom_command(TARGET d3d12_engine_tests POST_BUILD
|
add_custom_command(TARGET d3d12_engine_tests POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||||
${CMAKE_SOURCE_DIR}/tests/D3D12/Res
|
${PROJECT_ROOT_DIR}/tests/D3D12/Res
|
||||||
$<TARGET_FILE_DIR:d3d12_engine_tests>/Res
|
$<TARGET_FILE_DIR:d3d12_engine_tests>/Res
|
||||||
)
|
)
|
||||||
|
|
||||||
77
tests/D3D12_engine/test/fixtures/D3D12TestFixture.cpp
vendored
Normal file
77
tests/D3D12_engine/test/fixtures/D3D12TestFixture.cpp
vendored
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
#include "D3D12TestFixture.h"
|
||||||
|
|
||||||
|
ComPtr<ID3D12Device> D3D12TestFixture::mDevice;
|
||||||
|
|
||||||
|
void D3D12TestFixture::SetUpTestSuite() {
|
||||||
|
HRESULT hr = D3D12CreateDevice(
|
||||||
|
nullptr,
|
||||||
|
D3D_FEATURE_LEVEL_12_0,
|
||||||
|
IID_PPV_ARGS(&mDevice)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
GTEST_SKIP() << "Failed to create D3D12 device";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void D3D12TestFixture::TearDownTestSuite() {
|
||||||
|
mDevice.Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void D3D12TestFixture::SetUp() {
|
||||||
|
if (!mDevice) {
|
||||||
|
GTEST_SKIP() << "D3D12 device not available";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
D3D12_COMMAND_QUEUE_DESC queueDesc = {};
|
||||||
|
queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;
|
||||||
|
|
||||||
|
HRESULT hr = mDevice->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&mCommandQueue));
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
GTEST_SKIP() << "Failed to create command queue";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = mDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&mCommandAllocator));
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
GTEST_SKIP() << "Failed to create command allocator";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = mDevice->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, mCommandAllocator.Get(), nullptr, IID_PPV_ARGS(&mCommandList));
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
GTEST_SKIP() << "Failed to create command list";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void D3D12TestFixture::TearDown() {
|
||||||
|
if (mCommandQueue) {
|
||||||
|
WaitForGPU();
|
||||||
|
}
|
||||||
|
mCommandList.Reset();
|
||||||
|
mCommandAllocator.Reset();
|
||||||
|
mCommandQueue.Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void D3D12TestFixture::WaitForGPU() {
|
||||||
|
if (!mCommandQueue || !mDevice) return;
|
||||||
|
|
||||||
|
ComPtr<ID3D12Fence> fence;
|
||||||
|
UINT64 fenceValue = 1;
|
||||||
|
|
||||||
|
HRESULT hr = mDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&fence));
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
mCommandQueue->Signal(fence.Get(), fenceValue);
|
||||||
|
if (fence->GetCompletedValue() < fenceValue) {
|
||||||
|
HANDLE eventHandle = CreateEvent(nullptr, FALSE, FALSE, nullptr);
|
||||||
|
if (eventHandle) {
|
||||||
|
fence->SetEventOnCompletion(fenceValue, eventHandle);
|
||||||
|
WaitForSingleObject(eventHandle, INFINITE);
|
||||||
|
CloseHandle(eventHandle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
36
tests/D3D12_engine/test/fixtures/D3D12TestFixture.h
vendored
Normal file
36
tests/D3D12_engine/test/fixtures/D3D12TestFixture.h
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include <d3d12.h>
|
||||||
|
#include <dxgi1_4.h>
|
||||||
|
#include <wrl/client.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/D3D12Fence.h"
|
||||||
|
|
||||||
|
using namespace Microsoft::WRL;
|
||||||
|
|
||||||
|
class D3D12TestFixture : public ::testing::Test {
|
||||||
|
protected:
|
||||||
|
static void SetUpTestSuite();
|
||||||
|
static void TearDownTestSuite();
|
||||||
|
|
||||||
|
void SetUp() override;
|
||||||
|
void TearDown() override;
|
||||||
|
|
||||||
|
ID3D12Device* GetDevice() { return mDevice.Get(); }
|
||||||
|
ID3D12CommandQueue* GetCommandQueue() { return mCommandQueue.Get(); }
|
||||||
|
ID3D12CommandList* GetCommandList() { return mCommandList.Get(); }
|
||||||
|
ID3D12CommandAllocator* GetCommandAllocator() { return mCommandAllocator.Get(); }
|
||||||
|
|
||||||
|
void WaitForGPU();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static ComPtr<ID3D12Device> mDevice;
|
||||||
|
ComPtr<ID3D12CommandQueue> mCommandQueue;
|
||||||
|
ComPtr<ID3D12CommandAllocator> mCommandAllocator;
|
||||||
|
ComPtr<ID3D12CommandList> mCommandList;
|
||||||
|
};
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12Buffer, Placeholder) {
|
TEST_F(D3D12TestFixture, Buffer_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
5
tests/D3D12_engine/test/test_command_allocator.cpp
Normal file
5
tests/D3D12_engine/test/test_command_allocator.cpp
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
|
TEST_F(D3D12TestFixture, CommandAllocator_Placeholder) {
|
||||||
|
ASSERT_TRUE(true);
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12RootSignature, Placeholder) {
|
TEST_F(D3D12TestFixture, CommandList_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12PipelineState, Placeholder) {
|
TEST_F(D3D12TestFixture, CommandQueue_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
5
tests/D3D12_engine/test/test_descriptor_heap.cpp
Normal file
5
tests/D3D12_engine/test/test_descriptor_heap.cpp
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
|
TEST_F(D3D12TestFixture, DescriptorHeap_Placeholder) {
|
||||||
|
ASSERT_TRUE(true);
|
||||||
|
}
|
||||||
9
tests/D3D12_engine/test/test_device.cpp
Normal file
9
tests/D3D12_engine/test/test_device.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
|
TEST_F(D3D12TestFixture, Device_CreateDevice_Success) {
|
||||||
|
ASSERT_NE(GetDevice(), nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(D3D12TestFixture, Device_GetCommandQueue_Success) {
|
||||||
|
ASSERT_NE(GetCommandQueue(), nullptr);
|
||||||
|
}
|
||||||
5
tests/D3D12_engine/test/test_fence.cpp
Normal file
5
tests/D3D12_engine/test/test_fence.cpp
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
|
TEST_F(D3D12TestFixture, Fence_CreateFence_Success) {
|
||||||
|
ASSERT_NE(GetDevice(), nullptr);
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12DescriptorHeap, Placeholder) {
|
TEST_F(D3D12TestFixture, PipelineState_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
5
tests/D3D12_engine/test/test_root_signature.cpp
Normal file
5
tests/D3D12_engine/test/test_root_signature.cpp
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
|
TEST_F(D3D12TestFixture, RootSignature_Placeholder) {
|
||||||
|
ASSERT_TRUE(true);
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12Shader, Placeholder) {
|
TEST_F(D3D12TestFixture, Shader_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12Texture, Placeholder) {
|
TEST_F(D3D12TestFixture, Texture_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "fixtures/D3D12TestFixture.h"
|
#include "fixtures/D3D12TestFixture.h"
|
||||||
|
|
||||||
TEST(D3D12Views, Placeholder) {
|
TEST_F(D3D12TestFixture, Views_Placeholder) {
|
||||||
ASSERT_TRUE(true);
|
ASSERT_TRUE(true);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user