wasm app
This commit is contained in:
@@ -3,51 +3,34 @@
|
||||
#include "app/app.h"
|
||||
#include "app/app.c"
|
||||
#include "gfx2d/gfx2d.c"
|
||||
#include "ui.c"
|
||||
// #include "ui.c"
|
||||
|
||||
gfx2d_t *gfx2d = NULL;
|
||||
|
||||
void app_init(void) {
|
||||
tcx.temp = ma_push_arena(&tcx.perm, mib(1));
|
||||
gfx2d = ma_push_type(&tcx.perm, gfx2d_t);
|
||||
gfx2d->ma = ma_push_arena(&tcx.perm, mib(2));
|
||||
}
|
||||
|
||||
void app_update(app_event_t *events, i32 event_count) {
|
||||
|
||||
// @todo: record render commands and replay
|
||||
// @todo: ignore render commands
|
||||
for (i32 i = 0; i < event_count - 1; i += 1) {
|
||||
ui_demo(gfx2d, events + i);
|
||||
gfx2d->cmds_len = 0;
|
||||
ma_set0(gfx2d->ma);
|
||||
}
|
||||
|
||||
{
|
||||
app_event_t *ev = &events[event_count - 1];
|
||||
|
||||
gfx2d_begin(gfx2d, ev);
|
||||
gfx2d_clear(gfx2d, white_color_global);
|
||||
ui_demo(gfx2d, ev);
|
||||
// gfx2d_textf(gfx2d, v2f64(0,0), black_color_global, "delta time: %f", ev->delta_time);
|
||||
gfx2d_end(gfx2d);
|
||||
}
|
||||
void app_update(app_event_t *events, i32 events_len) {
|
||||
ma_set0(tcx.temp);
|
||||
|
||||
|
||||
#if 0
|
||||
ma_scratch_scope(temp) {
|
||||
f64 offset = get_font_height() + 8;
|
||||
f64 pos = offset;
|
||||
for (i32 i = 0; i < event_count; i += 1) {
|
||||
s8_t string = ti_serial_data(temp.arena, events + i, app_event_t);
|
||||
sb8_t split = s8_split(temp.arena, string, s8_lit("\n"), s8_split_none);
|
||||
|
||||
for (sb8_node_t *it = split.first; it; it = it->next) {
|
||||
draw_text((v2f64_t){0, pos}, black_color_global, it->string);
|
||||
|
||||
pos += offset;
|
||||
}
|
||||
}
|
||||
for (app_event_t *ev = events; ev < (events + events_len); ev += 1) {
|
||||
// update(ev)
|
||||
}
|
||||
#endif
|
||||
|
||||
// These steps should be totally optional!!
|
||||
{
|
||||
app_event_t *ev = events + events_len - 1;
|
||||
f64 delta = app_get_anim_delta_time();
|
||||
f64 time = app_get_anim_time();
|
||||
|
||||
// animate
|
||||
// render
|
||||
gfx2d_begin(gfx2d, ev);
|
||||
gfx2d_clear(gfx2d, white_color_global);
|
||||
gfx2d_textf(gfx2d, (v2f64_t){0,0}, black_color_global, "delta: %f, time: %f", delta, time);
|
||||
gfx2d_end(gfx2d);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user