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,
|
cell_size = 32.0,
|
||||||
zoom = 1.0,
|
zoom = 1.0,
|
||||||
world_position = 0.0,
|
world_position = 0.0,
|
||||||
world_size = {WINDOW_WIDTH, WINDOW_HEIGHT}
|
world_size = program_screen_size()
|
||||||
}
|
}
|
||||||
program.mouse_draggable_radius = 6.0
|
program.mouse_draggable_radius = 6.0
|
||||||
|
|
||||||
|
|
@ -339,6 +339,10 @@ program_set_animation_state :: proc(state: ProgramAnimationState) {
|
||||||
}
|
}
|
||||||
|
|
||||||
program_update :: proc() {
|
program_update :: proc() {
|
||||||
|
if rl.IsKeyPressed(.F4) {
|
||||||
|
rl.ToggleFullscreen()
|
||||||
|
}
|
||||||
|
|
||||||
ui_elements, top_bar_container, matrix_container := program_build_workspace_ui(&program.ui_context)
|
ui_elements, top_bar_container, matrix_container := program_build_workspace_ui(&program.ui_context)
|
||||||
ui_overlay_elements: []ui.Element
|
ui_overlay_elements: []ui.Element
|
||||||
|
|
||||||
|
|
@ -425,7 +429,9 @@ program_update :: proc() {
|
||||||
|
|
||||||
top_bar_container_br := rect_get_br(rect2(top_bar_container.area))
|
top_bar_container_br := rect_get_br(rect2(top_bar_container.area))
|
||||||
matrix_container_br := rect_get_br(rect2(matrix_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))
|
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 {
|
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
|
container_margin := size * 0.33
|
||||||
element_margin: f32 = 4.0
|
element_margin: f32 = 4.0
|
||||||
dialog_data := &program.dialog_data
|
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.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})
|
ui.element(.Label, {}, {label = program_dialog_messages[program.dialog_type], color = ui.col(rl.WHITE), margin = element_margin})
|
||||||
switch dialog_type {
|
switch dialog_type {
|
||||||
|
|
@ -557,10 +563,13 @@ program_build_dialog_ui :: proc(ctx: ^ui.Context, dialog_type: ProgramDialogType
|
||||||
return ui.end()
|
return ui.end()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
program_screen_size :: proc() -> v2 {
|
||||||
|
return {f32(rl.GetScreenWidth()), f32(rl.GetScreenHeight())}
|
||||||
|
}
|
||||||
|
|
||||||
program_build_workspace_ui :: proc(ctx: ^ui.Context) ->
|
program_build_workspace_ui :: proc(ctx: ^ui.Context) ->
|
||||||
(elements: []ui.Element, top_bar_container, matrix_container: ^ui.Element) {
|
(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_container_config := ui.ElementConfiguration {margin = 4.0}
|
||||||
top_bar_element_margin: f32 = 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)
|
top_bar_container = ui.container_begin({ui.Size_Percentage(1.0), ui.Size_Pixels(48.0)}, top_bar_container_config)
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,4 @@
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
_register_illegal_instruction_handler :: proc() {
|
_register_illegal_instruction_handler :: proc() {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue