diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-20 21:08:19 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-20 21:08:19 -0400 |
| commit | 40d69e7e40a18865a31af2f55efcde369d36dbbb (patch) | |
| tree | 95a2cbbe40192183d13f846f3444b32d7e12b0e8 /src/static-ui.hpp | |
| parent | ead9e484db969a880470d625b1884aced296e722 (diff) | |
pke: serialization overhaul + embedded assets
Diffstat (limited to 'src/static-ui.hpp')
| -rw-r--r-- | src/static-ui.hpp | 19 |
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); |
