#include "fixtures/RHITestFixture.h" #include "XCEngine/RHI/RHISwapChain.h" using namespace XCEngine::RHI; TEST_P(RHITestFixture, SwapChain_Create) { SwapChainDesc desc = {}; desc.windowHandle = GetWindowHandle(); desc.width = 800; desc.height = 600; desc.bufferCount = 2; desc.format = Format::R8G8B8A8_UNorm; RHISwapChain* swapChain = GetDevice()->CreateSwapChain(desc); ASSERT_NE(swapChain, nullptr); swapChain->Shutdown(); delete swapChain; } TEST_P(RHITestFixture, SwapChain_GetCurrentBackBufferIndex) { SwapChainDesc desc = {}; desc.windowHandle = GetWindowHandle(); desc.width = 800; desc.height = 600; desc.bufferCount = 2; desc.format = Format::R8G8B8A8_UNorm; RHISwapChain* swapChain = GetDevice()->CreateSwapChain(desc); ASSERT_NE(swapChain, nullptr); uint32_t index = swapChain->GetCurrentBackBufferIndex(); EXPECT_LT(index, 2u); swapChain->Shutdown(); delete swapChain; } TEST_P(RHITestFixture, SwapChain_GetCurrentBackBuffer) { SwapChainDesc desc = {}; desc.windowHandle = GetWindowHandle(); desc.width = 800; desc.height = 600; desc.bufferCount = 2; desc.format = Format::R8G8B8A8_UNorm; RHISwapChain* swapChain = GetDevice()->CreateSwapChain(desc); ASSERT_NE(swapChain, nullptr); RHITexture* backBuffer = swapChain->GetCurrentBackBuffer(); EXPECT_NE(backBuffer, nullptr); swapChain->Shutdown(); delete swapChain; } TEST_P(RHITestFixture, SwapChain_Resize) { SwapChainDesc desc = {}; desc.windowHandle = GetWindowHandle(); desc.width = 800; desc.height = 600; desc.bufferCount = 2; desc.format = Format::R8G8B8A8_UNorm; RHISwapChain* swapChain = GetDevice()->CreateSwapChain(desc); ASSERT_NE(swapChain, nullptr); swapChain->Resize(1024, 768); swapChain->Shutdown(); delete swapChain; }