commit 071239df07ee045485a73c2b6e9c204893c2c2af
parent c1e1eafb7745db8b2958ab205defe606149005ab
Author: hhvn <dev@hhvn.uk>
Date: Mon, 5 Sep 2022 12:25:43 +0100
ui_loop() - common actions performed each frame
Diffstat:
3 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/main.c b/src/main.c
@@ -31,12 +31,7 @@ main(void) {
ClearWindowState(FLAG_WINDOW_HIDDEN);
ui_update_screen();
- while (!WindowShouldClose()) {
- ffree();
-
- if (IsWindowResized())
- ui_update_screen();
-
+ while (ui_loop()) {
if (IsKeyDown(KEY_LEFT_ALT) || IsKeyDown(KEY_RIGHT_ALT)) {
/* AAAAAAAAAAHHHHHHHHHHHH. WHY NOT JUST USE KEY_1, KEY_2..! */
if (IsKeyPressed(KEY_ONE)) view_tabs.sel = 0;
@@ -47,9 +42,6 @@ main(void) {
else if (IsKeyPressed(KEY_SIX)) view_tabs.sel = 5;
}
- view_prev = view_tabs.sel;
-
- ui_clickable_update();
view_handlers[view_tabs.sel](view_prev != view_tabs.sel);
BeginDrawing();
@@ -58,6 +50,8 @@ main(void) {
view_drawers[view_tabs.sel]();
ui_draw_views();
EndDrawing();
+
+ view_prev = view_tabs.sel;
}
data_unload();
diff --git a/src/main.h b/src/main.h
@@ -56,6 +56,7 @@ extern Screen screen;
extern View_sys view_sys;
void ui_init(void);
void ui_update_screen(void);
+int ui_loop(void);
void ui_deinit(void);
void ui_print(int x, int y, Color col, char *format, ...);
void ui_title(char *fmt, ...);
diff --git a/src/ui.c b/src/ui.c
@@ -77,6 +77,18 @@ ui_update_screen(void) {
screen.diag = sqrt(SQUARE(screen.w) + SQUARE(screen.h));
}
+int
+ui_loop(void) {
+ if (WindowShouldClose())
+ return 0;
+
+ ffree();
+ if (IsWindowResized())
+ ui_update_screen();
+ ui_clickable_update();
+ return 1;
+}
+
void
ui_deinit(void) {
CloseWindow();