Fullscreen support
This commit is contained in:
parent
07732bd2ae
commit
f297962e76
2 changed files with 15 additions and 8 deletions
19
program.odin
19
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue