summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/CMakeLists.txt4
-rw-r--r--src/ui/include/engine/ui.h5
-rw-r--r--src/ui/src/positioning.c15
-rw-r--r--src/ui/src/rendering.c22
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) {