diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2024-02-06 11:52:32 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2024-02-06 11:52:32 +0000 |
| commit | c7a3dcdc8a26eb5bf98ce2079abd66fd64534459 (patch) | |
| tree | ff5c572f94c3bf3e11e7f9e75e617d4454cc263a /src/ui | |
| parent | 3705b14a4b2ac0d6baa418f08991424cfad89891 (diff) | |
Fixup window handling & rendering
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/ui/include/engine/ui.h | 5 | ||||
| -rw-r--r-- | src/ui/src/positioning.c | 15 | ||||
| -rw-r--r-- | src/ui/src/rendering.c | 22 |
4 files changed, 33 insertions, 13 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index fa91929..0feefa3 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -4,3 +4,7 @@ add_library(daw_ui ) target_include_directories(daw_ui PRIVATE ${DAW_INCLUDE_DIRS}) +target_link_libraries(daw_ui PRIVATE + OpenGL::GL + cglm + ) diff --git a/src/ui/include/engine/ui.h b/src/ui/include/engine/ui.h index eea81af..b860124 100644 --- a/src/ui/include/engine/ui.h +++ b/src/ui/include/engine/ui.h @@ -5,6 +5,8 @@ #include <engine/utils/list.h> #include <engine/utils/vector.h> +#include <engine/rendering/rendering.h> + #define DIRECTION_HORIZONTAL true #define DIRECTION_VERTICAL false @@ -261,4 +263,7 @@ Engine_color ui_get_default_bg(void); /* Returns -1 if not found */ u64 ui_check_click(UITree* root); +void engine_draw_uitree(UITree* t); +void render_uitree(Window w, UITree* t); + #endif diff --git a/src/ui/src/positioning.c b/src/ui/src/positioning.c index 6bb32fb..6c651d4 100644 --- a/src/ui/src/positioning.c +++ b/src/ui/src/positioning.c @@ -4,6 +4,7 @@ #include <engine/engine.h> #include <engine/utils/btree.h> #include <engine/utils.h> +#include <engine/ui.h> static Engine_color DEFAULT_FG = {0xFF, 0xFF, 0xFF, 0xFF}; static Engine_color DEFAULT_BG = {0x00, 0x00, 0x00, 0xFF}; @@ -57,11 +58,11 @@ v2_i32 get_pos(UITree* t); v2_i32 get_size(UITree* t); f32 ui_size_pixel_to_percent_width(i32 pixels) { - return (f32)pixels / (f32)GLOBAL_PLATFORM->window->windowsize.x; + return (f32)pixels / (f32)GLOBAL_PLATFORM->window->windowsize[0]; } f32 ui_size_pixel_to_percent_height(i32 pixels) { - return (f32)pixels / (f32)GLOBAL_PLATFORM->window->windowsize.y; + return (f32)pixels / (f32)GLOBAL_PLATFORM->window->windowsize[1]; } f32 ui_size_pixel_to_percent(i32 pixels) { @@ -69,11 +70,11 @@ f32 ui_size_pixel_to_percent(i32 pixels) { } i32 ui_size_percent_width_to_pixel(f32 percent) { - return (i32)(percent * GLOBAL_PLATFORM->window->windowsize.x); + return (i32)(percent * GLOBAL_PLATFORM->window->windowsize[0]); } i32 ui_size_percent_height_to_pixel(f32 percent) { - return (i32)(percent * GLOBAL_PLATFORM->window->windowsize.y); + return (i32)(percent * GLOBAL_PLATFORM->window->windowsize[1]); } i32 ui_size_percent_to_pixel(f32 percent) { @@ -818,8 +819,12 @@ void ui_resolve_constraints(void) { it = btree_iter_t_new(GLOBAL_UIROOTS); while ((i = btree_iter(GLOBAL_UIROOTS, it)) != NULL) { + v2_i32 sz = (v2_i32){ + .x = GLOBAL_PLATFORM->window->windowsize[0], + .y = GLOBAL_PLATFORM->window->windowsize[1] + }; ui_rearrange((UITree*)*i, (v2_i32){0, 0}, - GLOBAL_PLATFORM->window->windowsize); + sz); } free(it); } diff --git a/src/ui/src/rendering.c b/src/ui/src/rendering.c index 093f373..b95fb8b 100644 --- a/src/ui/src/rendering.c +++ b/src/ui/src/rendering.c @@ -2,16 +2,22 @@ #include <stdio.h> #include <string.h> -#define ENGINE_INTERNALS +#include <cglm/cglm.h> -#include <engine/engine.h> +//#include <engine/engine.h> #include <engine/rendering/rendering.h> -extern Platform* GLOBAL_PLATFORM; +//extern Platform* GLOBAL_PLATFORM; extern const char* uitype_str[]; -void render_uitree(Window* w, UITree* t) { +void render_container(Window w, UITree_container* t); +void render_button(Window w, UITree_button* t); +void render_title(Window w, UITree_title* t); +void render_text(Window w, UITree_text* t); +v2_i32 elem_size(UITree root); + +void render_uitree(Window w, UITree* t) { switch (t->type) { case uitype_container: render_container(w, &t->container); @@ -35,7 +41,7 @@ void render_uitree(Window* w, UITree* t) { } } -void render_container(Window* w, UITree_container* t) { +void render_container(Window w, UITree_container* t) { if (t->children != NULL && t->children_len > 0) { for (usize i = 0; i < t->children_len; i++) { @@ -44,13 +50,13 @@ void render_container(Window* w, UITree_container* t) { } } -void render_button(Window* w, UITree_button* t) { +void render_button(Window w, UITree_button* t) { } -void render_title(Window* w, UITree_title* t) { +void render_title(Window w, UITree_title* t) { } -void render_text(Window* w, UITree_text* t) { +void render_text(Window w, UITree_text* t) { } i64 add_texture(struct Resources* resptr, Texture* t) { |
