diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/daw.c | 31 | ||||
| -rw-r--r-- | src/include/daw/daw.h | 2 |
2 files changed, 20 insertions, 13 deletions
@@ -112,7 +112,6 @@ Instance* engine_init(const char* windowtitle, i32 windowWidth, i32 windowHeight /* initialize resources */ Resources* resources = calloc(1, sizeof(Resources)); - // TODO: Initialize them :) w = Window_new(&Platform_GLFW, windowtitle, WINDOW_FRAMEWORK_GLFW, WINDOW_RENDERER_OPENGL, @@ -132,12 +131,6 @@ Instance* engine_init(const char* windowtitle, i32 windowWidth, i32 windowHeight p->mem = memory_new(initial_memory); - p->cam = &default_camera; - - glm_ortho_default(45.f, p->cam->per); - - // TODO: Add global bindings - INFO("Available cores: %d", nproc()); GLOBAL_PLATFORM = p; @@ -214,6 +207,17 @@ static const char* default_quad_shader_fragment_src = "}"; +void framebuffer_size_callback_default(ivec3* dst,ivec2 src) { + glm_ivec2_copy(src, *dst); +} + +void camera_reset_callback_default(Camera* dst, ivec2 src) { + *dst = (Camera)DEFAULT_CAMERA; + glm_ortho_default(45.f, dst->per); +} + + + i32 engine_run(Instance* p, StateType initial_state, void* state_arg) { // TODO: MOVE TO INIT @@ -236,7 +240,6 @@ i32 engine_run(Instance* p, StateType initial_state, void* state_arg) { StateType state = initial_state; Window* w = p->window; - Camera default_renderbuffer_camera = default_camera; { u64 state_init_time = get_time(); @@ -261,7 +264,11 @@ i32 engine_run(Instance* p, StateType initial_state, void* state_arg) { {.num_textures = 1, .num_renderbuffers = 1, .dimensions = {wsz[0], wsz[1], 0}}, }; window_init_renderstack(w, 1, sizeof(t) / sizeof(t[0]), p, t); - //w->render_targets->cam[0] = &default_renderbuffer_camera; + + w->render_targets->framebuffer_size_callback[0] = &framebuffer_size_callback_default; + w->render_targets->camera_reset_callback[0] = &camera_reset_callback_default; + camera_reset_callback_default(&default_camera, wsz); + w->render_targets->cam[0] = &default_camera; } u32 first_texture = 0; @@ -330,7 +337,6 @@ i32 engine_run(Instance* p, StateType initial_state, void* state_arg) { i_ctx_reset(); // Reset camera to default camera - p->cam = &default_camera; free(w->render_targets); state = next_state; @@ -359,7 +365,10 @@ i32 engine_run(Instance* p, StateType initial_state, void* state_arg) { }; window_init_renderstack(w, 1, sizeof(t) / sizeof(t[0]), p, t); - //w->render_targets->cam[0] = &default_camera; + w->render_targets->framebuffer_size_callback[0] = &framebuffer_size_callback_default; + w->render_targets->camera_reset_callback[0] = &camera_reset_callback_default; + camera_reset_callback_default(&default_camera, wsz); + w->render_targets->cam[0] = &default_camera; } u32 first_texture = 0; diff --git a/src/include/daw/daw.h b/src/include/daw/daw.h index ca611b3..13f095d 100644 --- a/src/include/daw/daw.h +++ b/src/include/daw/daw.h @@ -34,8 +34,6 @@ typedef struct Instance { u16 fps_target; /* TODO: Move input ctx/bindings to window */ - /* TODO: Move cam to window->renderer */ - Camera *cam; /* Global resources that live from engine_init to engine_free */ /* TODO: Add state-specific resources */ |
