app_frame, ui layout, draw the list

This commit is contained in:
Krzosa Karol
2025-01-09 10:38:08 +01:00
parent bd5ce59791
commit 74a60e812d
9 changed files with 234 additions and 217 deletions

View File

@@ -9,7 +9,7 @@
#include "render/backup_font.c"
#include "render/font.c"
#include "render/render_opengl.c"
// #include "gfx2d/gfx2d.c"
// #include "gfx2d/gfx2d.c"dv
#include "ui.c"
@@ -32,8 +32,6 @@ gb globals_t *globals;
fn void app_init(void) {
ui_test_iterators();
ma_arena_t *perm = &tcx._perm;
globals = ma_push_type(perm, globals_t);
// globals->gfx = ma_push_type(perm, gfx_t);
@@ -41,65 +39,53 @@ fn void app_init(void) {
ui_init(perm);
}
fn b32 app_update(app_event_list_t events) {
fn b32 app_update(app_frame_t *frame) {
ui_begin_frame();
defer_block(ui_begin_build(), ui_end_build()) {
defer_block(ui_push_expander("app_event_t"), ui_pop_parent()) {
defer_block(ui_push_expander("mouse_wheel_delta: v3f64_t"), ui_pop_parent()) {
ui_label("x: f64 = value");
ui_label("y: f64 = value");
ui_label("z: f64 = value");
}
ui_label("kind: app_event_kind_t = value");
ui_label("ctrl: b8 = value");
ui_label("shift: b8 = value");
defer_block(ui_push_expander("pos: v2f64_t"), ui_pop_parent()) {
defer_block(ui_push_expander("inner_pos: v2f64_t"), ui_pop_parent()) {
defer_block(ui_push_list_container(), ui_pop_parent()) {
if (ui_push_expander("app_event_t")) {
if (ui_push_expander("mouse_wheel_delta: v3f64_t")) {
ui_label("x: f64 = value");
ui_label("y: f64 = value");
ui_label("z: f64 = value");
ui_pop_expander();
}
ui_label("y: f64 = value");
defer_block(ui_push_expander("inner_pos: v2f64_t"), ui_pop_parent()) {
ui_label("x: f64 = value");
ui_label("kind: app_event_kind_t = value");
ui_label("ctrl: b8 = value");
ui_label("shift: b8 = value");
if (ui_push_expander("pos: v2f64_t")) {
if (ui_push_expander("inner_pos: v2f64_t")) {
ui_label("x: f64 = value");
ui_label("y: f64 = value");
ui_pop_expander();
}
ui_label("y: f64 = value");
if (ui_push_expander("inner_pos: v2f64_t")) {
ui_label("x: f64 = value");
ui_label("y: f64 = value");
ui_pop_expander();
}
ui_pop_expander();
}
ui_label("alt: b8 = value");
ui_label("meta: b8 = value");
ui_pop_expander();
}
ui_label("alt: b8 = value");
ui_label("meta: b8 = value");
}
}
for (app_event_t *ev = events.first; ev; ev = ev->next) {
for (app_event_t *ev = frame->first_event; ev; ev = ev->next) {
if (globals->event.kind == app_event_kind_null) {
globals->event = *ev;
}
#if 0
// ui_struct()
type_t *ti = type(app_event_t);
ui_push_list("▼ %S: struct", ti->name);
for (type_member_t *tm = ti->members; tm < ti->members + ti->count; tm += 1) {
if (tm->kind == type_kind_struct) {
ui_list_struct(tm->type, ti_get_member_offset(tm, p)
} else {
ui_list_item("%-20S: %S = %S", tm->name, ti_serial_type(tcx.temp, tm->type), ti_serial_data(p, type));
}
}
ui_pop_list();
#endif
}
{
app_event_t *ev = events.last;
rn_begin();
rn_draw_string(&rn_state.main_font, v2f32(0,0), black_color_global, s8_lit("hello world!"));
rn_end(v2f64_to_v2f32(ev->window_size), white_color_global);
rn_begin();
rn_draw_stringf(&rn_state.main_font, v2f32(0,0), black_color_global, "delta: %f update: %f", frame->delta, frame->update);
}
ui_draw();
rn_end(frame->window_size, white_color_global);
#if 0
// These steps should be totally optional!!
@@ -138,5 +124,5 @@ fn b32 app_update(app_event_list_t events) {
#endif
ui_end_frame();
return false;
return true;
}