summaryrefslogtreecommitdiff
path: root/scratchpad.md
diff options
context:
space:
mode:
authorOmniscient <omniscient.oce@gmail.com>2024-04-03 21:37:35 +1100
committerOmniscient <omniscient.oce@gmail.com>2024-04-03 21:37:35 +1100
commitde14e6eef443c9935fda5fccc798e379e710bf31 (patch)
tree5d9b96d00e0a1e40a8c3bbe4c0bbe2226e34d852 /scratchpad.md
parent48888ed47f347ac189a53fba6b8d1d8abb245800 (diff)
some code from last repo
Diffstat (limited to 'scratchpad.md')
-rw-r--r--scratchpad.md71
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