summaryrefslogtreecommitdiff
path: root/src/static-ui.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-20 21:08:19 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-20 21:08:19 -0400
commit40d69e7e40a18865a31af2f55efcde369d36dbbb (patch)
tree95a2cbbe40192183d13f846f3444b32d7e12b0e8 /src/static-ui.hpp
parentead9e484db969a880470d625b1884aced296e722 (diff)
pke: serialization overhaul + embedded assets
Diffstat (limited to 'src/static-ui.hpp')
-rw-r--r--src/static-ui.hpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/static-ui.hpp b/src/static-ui.hpp
index 149d588..1b53935 100644
--- a/src/static-ui.hpp
+++ b/src/static-ui.hpp
@@ -67,14 +67,14 @@ struct pke_ui_box;
struct pke_ui_box : public Entity_Base {
PKE_UI_BOX_FLAG flags;
- float pos_top_left_x, pos_top_left_y;
- float min_width, min_height;
- float max_width, max_height;
+ glm::vec2 pos_top_left;
+ glm::vec2 min_size;
+ glm::vec2 max_size;
float flex_weight;
PKE_UI_BOX_TYPE type;
uint8_t flex_direction;
uint8_t layer;
- void *type_data;
+ union pke_ui_box_type_data *type_data;
struct pke_ui_box_internals {
// the exact px to translate (shader)
glm::vec2 px_corner;
@@ -90,10 +90,11 @@ struct pke_ui_box : public Entity_Base {
} internal;
};
-struct pke_ui_box_type_data_text {
- pk_uuid font_render_uuid = pk_uuid_zed;
- FontRenderHandle font_render_handle;
- FontRenderSettings font_render_settings;
+// separate these if they become silly
+union pke_ui_box_type_data {
+ struct pke_ui_box_type_data_text {
+ FontRenderHandle font_render_handle;
+ } text;
};
struct pke_ui_graphics_bindings {
@@ -113,6 +114,8 @@ void pke_ui_init_bindings();
void pke_ui_tick(double delta);
void pke_ui_teardown();
+pke_ui_box **pke_ui_get_root_boxes(pke_ui_box_count_T *count);
+
pke_ui_box *pke_ui_box_new_root(const PKE_UI_BOX_TYPE type = PKE_UI_BOX_TYPE_STANDARD, pk_uuid uuid = pk_uuid_zed);
pke_ui_box *pke_ui_box_new_child(pke_ui_box *parent, const PKE_UI_BOX_TYPE type = PKE_UI_BOX_TYPE_STANDARD, pk_uuid uuid = pk_uuid_zed);