diff --git a/.gitignore b/.gitignore index 2300a2df..cc8fd5d1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +.vs/* build/* CMakeLists.txt.user diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f932211..acd3c1f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,12 +89,12 @@ set_target_properties(${PROJECT_NAME} PROPERTIES # 3rd party # -if(APPLE) +if(WIN32 OR APPLE) set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) add_subdirectory(modules/glfw) -endif(APPLE) +endif(WIN32 OR APPLE) # # subdirectories diff --git a/headers/enduro2d/core/window.hpp b/headers/enduro2d/core/window.hpp index 76f86b6e..32d77fab 100644 --- a/headers/enduro2d/core/window.hpp +++ b/headers/enduro2d/core/window.hpp @@ -26,6 +26,7 @@ namespace e2d v2u virtual_size() const noexcept; bool should_close() const noexcept; + void swap_buffers() noexcept; static bool poll_events() noexcept; private: class state; diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 0a834011..c68bacd2 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -40,9 +40,13 @@ function(add_e2d_sample NAME) ${OPENGL_gl_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) + if(WIN32 OR APPLE) + target_link_libraries(${SAMPLE_NAME} + glfw) + endif(WIN32 OR APPLE) + if(APPLE) target_link_libraries(${SAMPLE_NAME} - glfw ${Cocoa} ${IOKit} ${CoreVideo} diff --git a/samples/sources/sample_00/sample_00.cpp b/samples/sources/sample_00/sample_00.cpp index 9e7638cb..37cec703 100644 --- a/samples/sources/sample_00/sample_00.cpp +++ b/samples/sources/sample_00/sample_00.cpp @@ -10,6 +10,7 @@ using namespace e2d; int main() { window w{{640, 480}, "Enduro2D", false}; while ( !w.should_close() ) { + w.swap_buffers(); window::poll_events(); } } diff --git a/sources/enduro2d/core/window_impl/window.hpp b/sources/enduro2d/core/window_impl/window.hpp index e5d4e33c..fb3abb34 100644 --- a/sources/enduro2d/core/window_impl/window.hpp +++ b/sources/enduro2d/core/window_impl/window.hpp @@ -19,6 +19,6 @@ # elif defined(E2D_PLATFORM) && E2D_PLATFORM == E2D_PLATFORM_MACOSX # define E2D_WINDOW_MODE E2D_WINDOW_MODE_GLFW # elif defined(E2D_PLATFORM) && E2D_PLATFORM == E2D_PLATFORM_WINDOWS -# define E2D_WINDOW_MODE E2D_WINDOW_MODE_NONE +# define E2D_WINDOW_MODE E2D_WINDOW_MODE_GLFW # endif #endif diff --git a/sources/enduro2d/core/window_impl/window_glfw.cpp b/sources/enduro2d/core/window_impl/window_glfw.cpp index 28f0d341..4e03e3f6 100644 --- a/sources/enduro2d/core/window_impl/window_glfw.cpp +++ b/sources/enduro2d/core/window_impl/window_glfw.cpp @@ -130,6 +130,11 @@ namespace e2d return glfwWindowShouldClose(state_->window.get()); } + void window::swap_buffers() noexcept { + E2D_ASSERT(state_->window); + glfwSwapBuffers(state_->window.get()); + } + bool window::poll_events() noexcept { return glfw_state::poll_events(); } diff --git a/sources/enduro2d/core/window_impl/window_none.cpp b/sources/enduro2d/core/window_impl/window_none.cpp index 08f8d97b..2e408f2e 100644 --- a/sources/enduro2d/core/window_impl/window_none.cpp +++ b/sources/enduro2d/core/window_impl/window_none.cpp @@ -39,6 +39,9 @@ namespace e2d return false; } + void window::swap_buffers() noexcept { + } + bool window::poll_events() noexcept { return false; } diff --git a/untests/sources/untests_utils/strfmts.cpp b/untests/sources/untests_utils/strfmts.cpp index fe43adea..640e8ac1 100644 --- a/untests/sources/untests_utils/strfmts.cpp +++ b/untests/sources/untests_utils/strfmts.cpp @@ -68,59 +68,59 @@ TEST_CASE("strfmts") { v2u(1,2)) == "(1,2)"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(v3u(1,2,3), 3)) == "( 1, 2, 3)"); + strings::make_format_arg(v3u(1,2,3), u8(3))) == "( 1, 2, 3)"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(v4i(1,2,3,4), 2)) == "( 1, 2, 3, 4)"); + strings::make_format_arg(v4i(1,2,3,4), u8(2))) == "( 1, 2, 3, 4)"); REQUIRE(strings::rformat( "%0", v2f(1.f,2.f)) == "(1.000000,2.000000)"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(v3d(1,2,3), 5, 2)) == "( 1.00, 2.00, 3.00)"); + strings::make_format_arg(v3d(1,2,3), u8(5), u8(2))) == "( 1.00, 2.00, 3.00)"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(v4f(1,2,3,4),0,1)) == "(1.0,2.0,3.0,4.0)"); + strings::make_format_arg(v4f(1,2,3,4), u8(0), u8(1))) == "(1.0,2.0,3.0,4.0)"); } { REQUIRE(strings::rformat( "%0", - strings::make_format_arg(m2i(1,2,3,4), 3)) == + strings::make_format_arg(m2i(1,2,3,4), u8(3))) == "(( 1, 2),( 3, 4))"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(m3i(1,2,3,4,5,6,7,8,9), 1)) == + strings::make_format_arg(m3i(1,2,3,4,5,6,7,8,9), u8(1))) == "((1,2,3),(4,5,6),(7,8,9))"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(m4i(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), 2)) == + strings::make_format_arg(m4i(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), u8(2))) == "(( 1, 2, 3, 4),( 5, 6, 7, 8),( 9,10,11,12),(13,14,15,16))"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(m2f(1,2,3,4), 5, 2)) == + strings::make_format_arg(m2f(1,2,3,4), u8(5), u8(2))) == "(( 1.00, 2.00),( 3.00, 4.00))"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(m3f(1,2,3,4,5,6,7,8,9), 4, 1)) == + strings::make_format_arg(m3f(1,2,3,4,5,6,7,8,9), u8(4), u8(1))) == "(( 1.0, 2.0, 3.0),( 4.0, 5.0, 6.0),( 7.0, 8.0, 9.0))"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(m4f(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), 2,0)) == + strings::make_format_arg(m4f(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), u8(2), u8(0))) == "(( 1, 2, 3, 4),( 5, 6, 7, 8),( 9,10,11,12),(13,14,15,16))"); } { REQUIRE(strings::rformat("%0", make_rad(2)) == "2rad"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(make_rad(2.f), 5, 2)) == + strings::make_format_arg(make_rad(2.f), u8(5), u8(2))) == " 2.00rad"); REQUIRE(strings::rformat("%0", make_deg(3)) == "3deg"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(make_deg(2.0), 5, 2)) == + strings::make_format_arg(make_deg(2.0), u8(5), u8(2))) == " 2.00deg"); } { @@ -137,11 +137,11 @@ TEST_CASE("strfmts") { { REQUIRE(strings::rformat( "%0", - strings::make_format_arg(color(1.f,2.f,3.f,4.f), 0, 2)) == + strings::make_format_arg(color(1.f,2.f,3.f,4.f), u8(0), u8(2))) == "(1.00,2.00,3.00,4.00)"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(color32(1,2,3,4), 2)) == "( 1, 2, 3, 4)"); + strings::make_format_arg(color32(1,2,3,4), u8(2))) == "( 1, 2, 3, 4)"); } { REQUIRE(strings::rformat("%0", make_seconds(2)) == "2s"); @@ -152,7 +152,7 @@ TEST_CASE("strfmts") { REQUIRE(strings::rformat("%0", make_milliseconds(3.0)) == "3.000000ms"); REQUIRE(strings::rformat( "%0", - strings::make_format_arg(make_microseconds(4.f), 5, 2)) == + strings::make_format_arg(make_microseconds(4.f), u8(5), u8(2))) == " 4.00us"); } }