#pragma once #include #include #include #include "XCEngine/RHI/RHIFactory.h" #include "XCEngine/RHI/RHIDevice.h" #include "XCEngine/RHI/RHICommandQueue.h" #include "XCEngine/RHI/RHICommandList.h" #include "XCEngine/RHI/RHIBuffer.h" #include "XCEngine/RHI/RHITexture.h" #include "XCEngine/RHI/RHISwapChain.h" #include "XCEngine/RHI/RHIShader.h" #include "XCEngine/RHI/RHIFence.h" #include "XCEngine/RHI/RHISampler.h" #include "XCEngine/RHI/RHIDescriptorPool.h" #include "XCEngine/RHI/RHIPipelineLayout.h" #include "XCEngine/RHI/RHIEnums.h" namespace XCEngine { namespace RHI { class RHITestFixture : public ::testing::TestWithParam { protected: void SetUp() override; void TearDown() override; static void SetUpTestSuite(); static void TearDownTestSuite(); void WaitForGPU(); RHIDevice* GetDevice() { return mDevice; } RHICommandQueue* GetCommandQueue() { return mCommandQueue; } RHIType GetBackendType() const { return GetParam(); } HWND GetWindowHandle() const { return mWindow; } private: RHIDevice* mDevice = nullptr; HWND mWindow = nullptr; RHICommandQueue* mCommandQueue = nullptr; RHIFence* mFence = nullptr; uint64_t mFenceValue = 0; }; } // namespace RHI } // namespace XCEngine