diff options
author | Omniscient <omniscient.oce@gmail.com> | 2024-04-03 21:37:35 +1100 |
---|---|---|
committer | Omniscient <omniscient.oce@gmail.com> | 2024-04-03 21:37:35 +1100 |
commit | de14e6eef443c9935fda5fccc798e379e710bf31 (patch) | |
tree | 5d9b96d00e0a1e40a8c3bbe4c0bbe2226e34d852 /scratchpad.md | |
parent | 48888ed47f347ac189a53fba6b8d1d8abb245800 (diff) |
some code from last repo
Diffstat (limited to 'scratchpad.md')
-rw-r--r-- | scratchpad.md | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/scratchpad.md b/scratchpad.md new file mode 100644 index 0000000..19ad8b4 --- /dev/null +++ b/scratchpad.md @@ -0,0 +1,71 @@ + +```c +// engine.h +#pragma once + +#include <celstd.h> +#include <renderer.h> +#include <renderer_types.h> +#include <maths_types.h> +#include "threadpool.h" + +typedef struct frame_stats {} frame_stats; + +typedef struct engine_stats { + frame_stats frame; +} engine_stats; + +typedef struct engine { + // timing + float startTime; + float deltaTime; // time between current frame and last frame + float lastFrame; + // stats + engine_stats stats; +} engine; + +static bool engine_init(engine *engine) { + engine->startTime = glfwGetTime(); + engine->deltaTime = 0.0f; + engine->lastFrame = 0.0f; + + return true; +} + +static inline void engine_tick_start(engine *engine) { + float currentFrame = glfwGetTime(); + engine->deltaTime = currentFrame - engine->lastFrame; + engine->lastFrame = currentFrame; +} + +static inline void engine_tick_end(engine *engine) { + // TODO: clear frame stats +} + +void celeritas_print_type_sizes(); +``` + +```c +// engine.c +#include "engine.h" + +#include <stdio.h> + +#include "animation.h" +#include "application.h" + +void celeritas_print_type_sizes() { + printf("\e[1mType sizes: \e[m \n"); + printf("transform: %ld bytes\n", sizeof(transform)); + printf("mesh: %ld bytes\n", sizeof(mesh)); + printf("bh_material: %ld bytes\n", sizeof(bh_material)); + printf("animation: %ld bytes\n", sizeof(animation_clip)); + printf("model: %ld bytes\n", sizeof(model)); + printf("rend_buffer: %ld bytes\n", sizeof(rend_buffer)); + + printf("application: %ld bytes\n", sizeof(cel_application)); + printf("renderer: %ld bytes\n", sizeof(renderer)); + printf("threadpool: %ld bytes\n", sizeof(threadpool)); + printf("engine: %ld bytes\n", sizeof(engine)); +} +```
\ No newline at end of file |