diff options
| author | onelin <oscar@nelin.dk> | 2025-03-12 10:59:54 +0000 |
|---|---|---|
| committer | onelin <oscar@nelin.dk> | 2025-03-12 10:59:54 +0000 |
| commit | 3762bbc400a9d71a243def989912278c203bc76d (patch) | |
| tree | 56b7a3fe3b755f0a1b678a08e6c45aa7ea047d8c /src | |
| parent | 26a1ab291a6fe16db7d1b35d2f93b62a96d71c85 (diff) | |
Implement setting fps cap
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/include/engine/core/platform.h | 2 | ||||
| -rw-r--r-- | src/core/include/engine/engine.h | 2 | ||||
| -rw-r--r-- | src/core/src/loop.c | 4 | ||||
| -rw-r--r-- | src/rendering/include/engine/rendering/rendering.h | 2 | ||||
| -rw-r--r-- | src/rendering/src/rendering.c | 2 | ||||
| -rw-r--r-- | src/rendering/src/window.c | 4 |
6 files changed, 7 insertions, 9 deletions
diff --git a/src/core/include/engine/core/platform.h b/src/core/include/engine/core/platform.h index 862cf97..675766b 100644 --- a/src/core/include/engine/core/platform.h +++ b/src/core/include/engine/core/platform.h @@ -25,7 +25,7 @@ typedef struct Platform { bool quit; u64 frame; - i32 fps_target; + u16 fps_target; /* TODO: Move mouse data to input ctx */ v2_i32 mouse_pos; diff --git a/src/core/include/engine/engine.h b/src/core/include/engine/engine.h index 0d5d2bc..51228fb 100644 --- a/src/core/include/engine/engine.h +++ b/src/core/include/engine/engine.h @@ -39,7 +39,7 @@ i32 engine_run(Platform* p, StateType initial_state, void* state_arg); void engine_stop(Platform* p); /* Utility functions */ -void engine_fps_max(u64 cap); +void engine_fps_max(Platform* p, u16 cap); void render_set_zoom(f32 new_zoom); void render_adjust_zoom(f32 diff); diff --git a/src/core/src/loop.c b/src/core/src/loop.c index 95a405e..4f3d6d9 100644 --- a/src/core/src/loop.c +++ b/src/core/src/loop.c @@ -237,7 +237,7 @@ Platform* engine_init(const char* windowtitle, i32 windowWidth, i32 windowHeight p->resources = resources; p->frame = 0; - p->fps_target = 60; + engine_fps_max(p, 0); p->mem = memory_new(initial_memory); @@ -421,7 +421,7 @@ void engine_stop(Platform* p) { } /* Set the maximum framerate */ -void engine_fps_max(u64 cap) { /* does nothing */ } +void engine_fps_max(Platform* p, u16 cap) { LOG("Setting max fps to %llu", cap); p->fps_target = cap; } isize f_get_sz(FILE* f) { if (f == NULL) { diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h index 25e3e8a..b3e266a 100644 --- a/src/rendering/include/engine/rendering/rendering.h +++ b/src/rendering/include/engine/rendering/rendering.h @@ -171,7 +171,7 @@ typedef struct { } Camera; -const usize ShaderBufferDataType_size(u16 flags); +usize ShaderBufferDataType_size(u16 flags); ShaderBufferFlag ShaderBuffer_get_access_frequency(u64 flags); ShaderBufferFlag ShaderBuffer_get_access_type(u64 flags); diff --git a/src/rendering/src/rendering.c b/src/rendering/src/rendering.c index d6d440f..8a49e92 100644 --- a/src/rendering/src/rendering.c +++ b/src/rendering/src/rendering.c @@ -18,7 +18,7 @@ extern Platform* GLOBAL_PLATFORM; RenderDrawCall drawcalls[drawcall_limit]; i32 drawcall_len = 0; -const usize +usize ShaderBufferDataType_size(u16 flags) { const ShaderBufferFlag t = ShaderBuffer_get_data_type(flags); switch (t) { diff --git a/src/rendering/src/window.c b/src/rendering/src/window.c index 455b913..abcaf1e 100644 --- a/src/rendering/src/window.c +++ b/src/rendering/src/window.c @@ -21,6 +21,7 @@ extern Platform* GLOBAL_PLATFORM; void *window_poll_events = NULL; +/* wrapper to get time in ms */ f64 (*get_time)(void) = NULL; /* GLFW And vulkan spaghetti boiler */ @@ -114,11 +115,8 @@ Window* init_window_glfw( printf("ok\n"); // Setup callbacks - // TODO: input handler callback glfwSetFramebufferSizeCallback(window, window_size_callback); glfwSetKeyCallback(window, (GLFWkeyfun)key_callback); - //glfwMakeContextCurrent(window); - //glfwSwapInterval(0); // Create the window datastructure ret = (Window*)calloc(1, sizeof(Window)); |
