#include "RHITestFixture.h" #include #include #include namespace XCEngine { namespace RHI { INSTANTIATE_TEST_SUITE_P(D3D12, RHITestFixture, ::testing::Values(RHIType::D3D12)); INSTANTIATE_TEST_SUITE_P(OpenGL, RHITestFixture, ::testing::Values(RHIType::OpenGL)); void RHITestFixture::SetUpTestSuite() { } void RHITestFixture::TearDownTestSuite() { } void RHITestFixture::SetUp() { mDevice = RHIFactory::CreateRHIDevice(GetParam()); ASSERT_NE(mDevice, nullptr); WNDCLASSEXW wc = {}; wc.cbSize = sizeof(WNDCLASSEXW); wc.lpfnWndProc = DefWindowProcW; wc.hInstance = GetModuleHandle(nullptr); wc.lpszClassName = L"RHIUnitTestClass"; RegisterClassExW(&wc); HWND hwnd = CreateWindowExW(0, L"RHIUnitTestClass", L"RHIUnitTest", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, nullptr, nullptr, GetModuleHandle(nullptr), nullptr); RHIDeviceDesc desc = {}; desc.enableDebugLayer = true; desc.appName = L"RHIUnitTest"; desc.windowHandle = hwnd; bool initResult = mDevice->Initialize(desc); ASSERT_TRUE(initResult); } void RHITestFixture::TearDown() { if (mDevice != nullptr) { mDevice->Shutdown(); delete mDevice; mDevice = nullptr; } } } // namespace RHI } // namespace XCEngine