From f297962e764a842649582398449eb6d1911f89dc Mon Sep 17 00:00:00 2001 From: Synthasmagoria Date: Thu, 27 Aug 2026 13:20:07 +0200 Subject: [PATCH] Fullscreen support --- program.odin | 19 ++++++++++++++----- signal_handler_other.odin | 4 +--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/program.odin b/program.odin index 31bee1e..db15d98 100644 --- a/program.odin +++ b/program.odin @@ -299,7 +299,7 @@ program_init :: proc(allocator := context.allocator) { cell_size = 32.0, zoom = 1.0, world_position = 0.0, - world_size = {WINDOW_WIDTH, WINDOW_HEIGHT} + world_size = program_screen_size() } program.mouse_draggable_radius = 6.0 @@ -339,6 +339,10 @@ program_set_animation_state :: proc(state: ProgramAnimationState) { } program_update :: proc() { + if rl.IsKeyPressed(.F4) { + rl.ToggleFullscreen() + } + ui_elements, top_bar_container, matrix_container := program_build_workspace_ui(&program.ui_context) ui_overlay_elements: []ui.Element @@ -425,7 +429,9 @@ program_update :: proc() { top_bar_container_br := rect_get_br(rect2(top_bar_container.area)) matrix_container_br := rect_get_br(rect2(matrix_container.area)) - grid_text_clip := rect_from_area(v2{matrix_container_br.x, top_bar_container_br.y}, v2{WINDOW_WIDTH, WINDOW_HEIGHT}) + + program.grid.world_size = program_screen_size() + grid_text_clip := rect_from_area(v2{matrix_container_br.x, top_bar_container_br.y}, program_screen_size()) draw_grid(program.grid, rect_grow(grid_text_clip, -4.0), rect_grow(grid_text_clip, -32.0)) { @@ -525,12 +531,12 @@ program_add_rotation_matrix :: proc(angle: f32) { } program_build_dialog_ui :: proc(ctx: ^ui.Context, dialog_type: ProgramDialogType) -> []ui.Element { - size := v2{WINDOW_WIDTH, WINDOW_HEIGHT} + size := program_screen_size() container_margin := size * 0.33 element_margin: f32 = 4.0 dialog_data := &program.dialog_data - ui.start(ctx, V2_ZERO, {WINDOW_WIDTH, WINDOW_HEIGHT}) + ui.start(ctx, V2_ZERO, program_screen_size()) ui.container_begin(ui.dimensions_auto(), {margin = container_margin, padding = 8.0}) ui.element(.Label, {}, {label = program_dialog_messages[program.dialog_type], color = ui.col(rl.WHITE), margin = element_margin}) switch dialog_type { @@ -557,10 +563,13 @@ program_build_dialog_ui :: proc(ctx: ^ui.Context, dialog_type: ProgramDialogType return ui.end() } +program_screen_size :: proc() -> v2 { + return {f32(rl.GetScreenWidth()), f32(rl.GetScreenHeight())} +} program_build_workspace_ui :: proc(ctx: ^ui.Context) -> (elements: []ui.Element, top_bar_container, matrix_container: ^ui.Element) { - ui.start(ctx, {0, 0}, {WINDOW_WIDTH, WINDOW_HEIGHT}) + ui.start(ctx, {0, 0}, program_screen_size()) top_bar_container_config := ui.ElementConfiguration {margin = 4.0} top_bar_element_margin: f32 = 4.0 top_bar_container = ui.container_begin({ui.Size_Percentage(1.0), ui.Size_Pixels(48.0)}, top_bar_container_config) diff --git a/signal_handler_other.odin b/signal_handler_other.odin index f429685..f7b8afb 100644 --- a/signal_handler_other.odin +++ b/signal_handler_other.odin @@ -2,6 +2,4 @@ package main -_register_illegal_instruction_handler :: proc() { - -} +_register_illegal_instruction_handler :: proc() {}