#include "config.h" #include "memory.h" #include "plat.h" #include "render.h" #include int entrypoint(int argc, const char** argv, Arena* a) { App* app; Renderer r; Heap h; FPS f; char buf[32]; Colour blue = make_aliceblue(); (void)argc; (void)argv; init_heap( &h, arena_alloc(a, app_memory_size), app_memory_size ); app = new_app(&h, 640, 480, "3D Engine"); if (!app) return app->err; init_fps(&f, 20); while (app->o) { fps_begin(&f); while (f.now >= f.next) { app_begin(app); ren_begin(&r, app->fb, app->w, app->h); ren_clear(&r); sprintf(buf, "FPS: %d", app->fps); ren_text(&r, blue, 3, 3, buf); sprintf(buf, "CAP: %d", f.fps); ren_text(&r, blue, 3, 13, buf); sprintf(buf, "MOUSE: %d, %d", app->mx, app->my); ren_text(&r, blue, 3, 23, buf); ren_end(&r); app_end(app); fps_update(&f); } fps_end(&f); } deinit_app(app); return 0; }