This commit is contained in:
Krzosa Karol
2025-01-11 08:32:13 +01:00
parent 26d8c176a0
commit e2d87d3631
4 changed files with 21 additions and 15 deletions

View File

@@ -60,9 +60,9 @@ int main(int argc, char **argv) {
} }
if (win32_target) { if (win32_target) {
os_delete_file(s8_lit("win32_app.pdb")); os_delete_file(s8_lit("app_win32.pdb"));
ok = os_systemf( ok = os_systemf(
"cl ../src/wasm_app/main.c -Fe:win32_app.exe -Fd:win32_app.pdb" "cl ../src/wasm_app/main.c -Fe:app_win32.exe -Fd:app_win32.pdb"
" -I ../src" " -I ../src"
" /Zi /FC /nologo /Oi" " /Zi /FC /nologo /Oi"
" /WX /W3 /wd4200 /diagnostics:column" " /WX /W3 /wd4200 /diagnostics:column"

View File

@@ -64,6 +64,8 @@ typedef double f64;
#define zero_struct(x) memory_zero((x), sizeof(*(x))) #define zero_struct(x) memory_zero((x), sizeof(*(x)))
#define defer_if(begin, cond_end) for (b32 PASTE(_i_, __LINE__) = !!begin; PASTE(_i_, __LINE__); PASTE(_i_, __LINE__) = (cond_end, 0))
#define defer_block(begin, end) for (i32 PASTE(_i_, __LINE__) = (begin, 0); !PASTE(_i_, __LINE__); PASTE(_i_, __LINE__) += (end, 1)) #define defer_block(begin, end) for (i32 PASTE(_i_, __LINE__) = (begin, 0); !PASTE(_i_, __LINE__); PASTE(_i_, __LINE__) += (end, 1))
#define STACK(type, size) struct { type data[size]; i32 len; } #define STACK(type, size) struct { type data[size]; i32 len; }
#define STACK_PUSH(stack, ...) (assert((stack).len < lengthof((stack).data)), (stack).data[(stack).len++] = __VA_ARGS__) #define STACK_PUSH(stack, ...) (assert((stack).len < lengthof((stack).data)), (stack).data[(stack).len++] = __VA_ARGS__)

View File

@@ -44,36 +44,30 @@ fn b32 app_update(app_frame_t *frame) {
ui_begin_frame(frame); ui_begin_frame(frame);
defer_block(ui_begin_build(), ui_end_build()) { defer_block(ui_begin_build(), ui_end_build()) {
defer_block(ui_push_list_container(), ui_pop_parent()) { defer_block(ui_push_list_container(), ui_pop_parent()) {
if (ui_push_expander("app_event_t")) { defer_if (ui_push_expander("app_event_t"), ui_pop_expander()) {
if (r2f32_contains(r2f32(0, 0, 200, 200), frame->mouse_pos)) { if (r2f32_contains(r2f32(0, 0, 200, 200), frame->mouse_pos)) {
if (ui_push_expander("mouse_wheel_delta: v3f64_t")) { defer_if (ui_push_expander("mouse_wheel_delta: v3f64_t"), ui_pop_expander()) {
ui_label("x: f64 = value"); ui_label("x: f64 = value");
ui_label("y: f64 = value"); ui_label("y: f64 = value");
ui_label("z: f64 = value"); ui_label("z: f64 = value");
ui_pop_expander();
} }
} }
ui_label("kind: app_event_kind_t = value"); ui_label("kind: app_event_kind_t = value");
ui_label("ctrl: b8 = value"); ui_label("ctrl: b8 = value");
ui_label("shift: b8 = value"); ui_label("shift: b8 = value");
if (ui_push_expander("pos: v2f64_t")) { defer_if (ui_push_expander("pos: v2f64_t"), ui_pop_expander()) {
if (ui_push_expander("inner_pos: v2f64_t")) { defer_if (ui_push_expander("inner_pos: v2f64_t"), ui_pop_expander()) {
ui_label("x_: f64 = value"); ui_label("x_: f64 = value");
ui_label("y_: f64 = value"); ui_label("y_: f64 = value");
ui_pop_expander();
} }
ui_label("y__: f64 = value"); ui_label("y__: f64 = value");
if (ui_push_expander("_inner_pos: v2f64_t")) { defer_if (ui_push_expander("_inner_pos: v2f64_t"), ui_pop_expander()) {
ui_label("x____: f64 = value"); ui_label("x____: f64 = value");
ui_label("y____: f64 = value"); ui_label("y____: f64 = value");
ui_pop_expander();
} }
ui_pop_expander();
} }
ui_label("alt: b8 = value"); ui_label("alt: b8 = value");
ui_label("meta: b8 = value"); ui_label("meta: b8 = value");
ui_pop_expander();
} }
} }
} }

View File

@@ -49,6 +49,18 @@ struct ui_box_t {
r2f32_t rect; r2f32_t rect;
}; };
// @todo:
typedef struct ui_signal ui_signal;
struct ui_signal {
b8 clicked;
b8 double_clicked;
b8 right_clicked;
b8 pressed;
b8 released;
b8 dragging;
b8 hovering;
};
typedef struct ui_t ui_t; typedef struct ui_t ui_t;
struct ui_t { struct ui_t {
ma_arena_t *box_arena; // required to be only used for boxes ma_arena_t *box_arena; // required to be only used for boxes
@@ -303,8 +315,6 @@ void ui_draw(void) {
sb8_printf(sb, "%S\n", it.box->string); sb8_printf(sb, "%S\n", it.box->string);
} }
s8_t iter_string = sb8_serial_end(scratch.arena, sb); s8_t iter_string = sb8_serial_end(scratch.arena, sb);
debugf("%S", recursive_string);
debugf("ITER:\n%S", iter_string);
assert(s8_equal(recursive_string, iter_string)); assert(s8_equal(recursive_string, iter_string));