first glfw window for windows

This commit is contained in:
2018-09-19 17:29:39 +03:00
parent d9b57d9679
commit 90eb92d1b9
9 changed files with 34 additions and 19 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
.vs/*
build/* build/*
CMakeLists.txt.user CMakeLists.txt.user

View File

@@ -89,12 +89,12 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
# 3rd party # 3rd party
# #
if(APPLE) if(WIN32 OR APPLE)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory(modules/glfw) add_subdirectory(modules/glfw)
endif(APPLE) endif(WIN32 OR APPLE)
# #
# subdirectories # subdirectories

View File

@@ -26,6 +26,7 @@ namespace e2d
v2u virtual_size() const noexcept; v2u virtual_size() const noexcept;
bool should_close() const noexcept; bool should_close() const noexcept;
void swap_buffers() noexcept;
static bool poll_events() noexcept; static bool poll_events() noexcept;
private: private:
class state; class state;

View File

@@ -40,9 +40,13 @@ function(add_e2d_sample NAME)
${OPENGL_gl_LIBRARY} ${OPENGL_gl_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}) ${CMAKE_THREAD_LIBS_INIT})
if(WIN32 OR APPLE)
target_link_libraries(${SAMPLE_NAME}
glfw)
endif(WIN32 OR APPLE)
if(APPLE) if(APPLE)
target_link_libraries(${SAMPLE_NAME} target_link_libraries(${SAMPLE_NAME}
glfw
${Cocoa} ${Cocoa}
${IOKit} ${IOKit}
${CoreVideo} ${CoreVideo}

View File

@@ -10,6 +10,7 @@ using namespace e2d;
int main() { int main() {
window w{{640, 480}, "Enduro2D", false}; window w{{640, 480}, "Enduro2D", false};
while ( !w.should_close() ) { while ( !w.should_close() ) {
w.swap_buffers();
window::poll_events(); window::poll_events();
} }
} }

View File

@@ -19,6 +19,6 @@
# elif defined(E2D_PLATFORM) && E2D_PLATFORM == E2D_PLATFORM_MACOSX # elif defined(E2D_PLATFORM) && E2D_PLATFORM == E2D_PLATFORM_MACOSX
# define E2D_WINDOW_MODE E2D_WINDOW_MODE_GLFW # define E2D_WINDOW_MODE E2D_WINDOW_MODE_GLFW
# elif defined(E2D_PLATFORM) && E2D_PLATFORM == E2D_PLATFORM_WINDOWS # 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
#endif #endif

View File

@@ -130,6 +130,11 @@ namespace e2d
return glfwWindowShouldClose(state_->window.get()); return glfwWindowShouldClose(state_->window.get());
} }
void window::swap_buffers() noexcept {
E2D_ASSERT(state_->window);
glfwSwapBuffers(state_->window.get());
}
bool window::poll_events() noexcept { bool window::poll_events() noexcept {
return glfw_state::poll_events(); return glfw_state::poll_events();
} }

View File

@@ -39,6 +39,9 @@ namespace e2d
return false; return false;
} }
void window::swap_buffers() noexcept {
}
bool window::poll_events() noexcept { bool window::poll_events() noexcept {
return false; return false;
} }

View File

@@ -68,59 +68,59 @@ TEST_CASE("strfmts") {
v2u(1,2)) == "(1,2)"); v2u(1,2)) == "(1,2)");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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( REQUIRE(strings::rformat(
"%0", "%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( REQUIRE(strings::rformat(
"%0", "%0",
v2f(1.f,2.f)) == "(1.000000,2.000000)"); v2f(1.f,2.f)) == "(1.000000,2.000000)");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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( REQUIRE(strings::rformat(
"%0", "%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( REQUIRE(strings::rformat(
"%0", "%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))"); "(( 1, 2),( 3, 4))");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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))"); "((1,2,3),(4,5,6),(7,8,9))");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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))"); "(( 1, 2, 3, 4),( 5, 6, 7, 8),( 9,10,11,12),(13,14,15,16))");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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))"); "(( 1.00, 2.00),( 3.00, 4.00))");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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))"); "(( 1.0, 2.0, 3.0),( 4.0, 5.0, 6.0),( 7.0, 8.0, 9.0))");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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))"); "(( 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", make_rad(2)) == "2rad");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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"); " 2.00rad");
REQUIRE(strings::rformat("%0", make_deg(3)) == "3deg"); REQUIRE(strings::rformat("%0", make_deg(3)) == "3deg");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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"); " 2.00deg");
} }
{ {
@@ -137,11 +137,11 @@ TEST_CASE("strfmts") {
{ {
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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)"); "(1.00,2.00,3.00,4.00)");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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"); 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", make_milliseconds(3.0)) == "3.000000ms");
REQUIRE(strings::rformat( REQUIRE(strings::rformat(
"%0", "%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"); " 4.00us");
} }
} }