From 7352085dca54837fb60dbba4328ee0bc069bca16 Mon Sep 17 00:00:00 2001 From: onelin Date: Tue, 1 Apr 2025 11:45:43 +0200 Subject: Fetch GLFW3 if not installed locally --- src/rendering/CMakeLists.txt | 7 +++++-- src/rendering/include/engine/rendering/rendering.h | 3 --- src/rendering/include/engine/rendering/window.h | 4 +++- src/rendering/src/window.c | 12 +++++++++++- 4 files changed, 19 insertions(+), 7 deletions(-) (limited to 'src/rendering') diff --git a/src/rendering/CMakeLists.txt b/src/rendering/CMakeLists.txt index 237f147..a00f3b1 100644 --- a/src/rendering/CMakeLists.txt +++ b/src/rendering/CMakeLists.txt @@ -22,9 +22,12 @@ set_property(SOURCE src/window.c APPEND PROPERTY OBJECT_DEPENDS ${GLAD_HEADER}) set_property(SOURCE src/rendering.c APPEND PROPERTY OBJECT_DEPENDS ${GLAD_HEADER}) target_compile_options(daw_rendering PUBLIC ${BUILD_OPTS}) -target_include_directories(daw_rendering PRIVATE ${DAW_INCLUDE_DIRS}) +target_include_directories(daw_rendering PRIVATE + ${DAW_INCLUDE_DIRS} + ${GLFW_INCLUDE_DIR} +) target_link_libraries(daw_rendering PRIVATE OpenGL::GL cglm glfw - ) +) diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h index 7120182..d338778 100644 --- a/src/rendering/include/engine/rendering/rendering.h +++ b/src/rendering/include/engine/rendering/rendering.h @@ -9,9 +9,6 @@ extern "C" { #include #include -#define GLFW_INCLUDE_NONE -#include - #include /* Definitions */ diff --git a/src/rendering/include/engine/rendering/window.h b/src/rendering/include/engine/rendering/window.h index e5d3528..c902cad 100644 --- a/src/rendering/include/engine/rendering/window.h +++ b/src/rendering/include/engine/rendering/window.h @@ -9,7 +9,7 @@ extern "C" { #include #ifndef ENGINE_RENDERING_WINDOW_H_EXCLUDE_EXTERNS -extern void* window_poll_events; +extern void (*window_poll_events)(void); extern u64 (*get_time)(void); #endif @@ -41,6 +41,8 @@ Window* init_window_glfw(const char* windowtitle, ivec2 windowsize, const u32 fl void destroy_window(Window* w); void window_resize(Window* window, int width, int height); +bool window_should_close(Window* w); + // Renderer intializer(s) void init_render_opengl(Window* w, const u32 flags); diff --git a/src/rendering/src/window.c b/src/rendering/src/window.c index a5e7db6..9f5e861 100644 --- a/src/rendering/src/window.c +++ b/src/rendering/src/window.c @@ -21,7 +21,7 @@ extern Platform* GLOBAL_PLATFORM; -void *window_poll_events = NULL; +void (*window_poll_events)(void) = NULL; /* wrapper to get time in ms */ u64 (*get_time)(void) = NULL; @@ -279,3 +279,13 @@ void get_mousepos(double *x, double *y) { } } + +bool window_should_close(Window* w) { + switch(w->framework) { + case WINDOW_FRAMEWORK_GLFW: + return glfwWindowShouldClose(w->window); + break; + default: + return false; + } +} -- cgit v1.3