diff --git a/tests/RHI/OpenGL/CMakeLists.txt b/tests/RHI/OpenGL/CMakeLists.txt index f9ebc58c..98ad5d3f 100644 --- a/tests/RHI/OpenGL/CMakeLists.txt +++ b/tests/RHI/OpenGL/CMakeLists.txt @@ -31,6 +31,7 @@ set(TEST_SOURCES test_command_list.cpp test_render_target_view.cpp test_depth_stencil_view.cpp + test_swap_chain.cpp ) add_executable(opengl_engine_tests ${TEST_SOURCES}) diff --git a/tests/RHI/OpenGL/test_swap_chain.cpp b/tests/RHI/OpenGL/test_swap_chain.cpp new file mode 100644 index 00000000..1a8d1c0b --- /dev/null +++ b/tests/RHI/OpenGL/test_swap_chain.cpp @@ -0,0 +1,41 @@ +#include "fixtures/OpenGLTestFixture.h" +#include "XCEngine/RHI/OpenGL/OpenGLSwapChain.h" + +using namespace XCEngine::RHI; + +TEST_F(OpenGLTestFixture, SwapChain_Initialize_Window) { + OpenGLSwapChain swapChain; + GLFWwindow* window = GetWindow(); + + bool result = swapChain.Initialize(window, 800, 600); + + ASSERT_TRUE(result); + + swapChain.Shutdown(); +} + +TEST_F(OpenGLTestFixture, SwapChain_Present) { + OpenGLSwapChain swapChain; + GLFWwindow* window = GetWindow(); + swapChain.Initialize(window, 800, 600); + + swapChain.Present(); + + GLenum error = glGetError(); + EXPECT_EQ(error, GL_NO_ERROR); + + swapChain.Shutdown(); +} + +TEST_F(OpenGLTestFixture, SwapChain_Resize_ChangesSize) { + OpenGLSwapChain swapChain; + GLFWwindow* window = GetWindow(); + swapChain.Initialize(window, 800, 600); + + swapChain.Resize(1024, 768); + + EXPECT_EQ(swapChain.GetWidth(), 1024); + EXPECT_EQ(swapChain.GetHeight(), 768); + + swapChain.Shutdown(); +}