fix: refresh d3d12 swapchain backbuffers on resize
This commit is contained in:
@@ -175,6 +175,30 @@ TEST_F(SwapChainTestFixture, SwapChain_Present_DoesNotCrash) {
|
||||
ASSERT_NO_FATAL_FAILURE(mSwapChain.Present(0, 0));
|
||||
}
|
||||
|
||||
TEST_F(SwapChainTestFixture, SwapChain_Resize_RecreatesBackBuffers) {
|
||||
ASSERT_TRUE(mSwapChain.Initialize(
|
||||
mFactory.Get(),
|
||||
mCommandQueue.Get(),
|
||||
mHWND,
|
||||
800,
|
||||
600,
|
||||
2
|
||||
));
|
||||
|
||||
ID3D12Resource* beforeResize = mSwapChain.GetBackBuffer(0).GetResource();
|
||||
ASSERT_NE(beforeResize, nullptr);
|
||||
EXPECT_EQ(mSwapChain.GetBackBuffer(0).GetWidth(), 800u);
|
||||
EXPECT_EQ(mSwapChain.GetBackBuffer(0).GetHeight(), 600u);
|
||||
|
||||
ASSERT_NO_FATAL_FAILURE(mSwapChain.Resize(1024, 768));
|
||||
|
||||
ID3D12Resource* afterResize = mSwapChain.GetBackBuffer(0).GetResource();
|
||||
ASSERT_NE(afterResize, nullptr);
|
||||
EXPECT_EQ(mSwapChain.GetBackBuffer(0).GetWidth(), 1024u);
|
||||
EXPECT_EQ(mSwapChain.GetBackBuffer(0).GetHeight(), 768u);
|
||||
EXPECT_NE(beforeResize, afterResize);
|
||||
}
|
||||
|
||||
TEST_F(SwapChainTestFixture, SwapChain_Shutdown_Cleanup) {
|
||||
ASSERT_TRUE(mSwapChain.Initialize(
|
||||
mFactory.Get(),
|
||||
|
||||
Reference in New Issue
Block a user