aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLizzy Fleckenstein <lizzy@vlhl.dev>2026-03-31 02:05:15 +0200
committerLizzy Fleckenstein <lizzy@vlhl.dev>2026-03-31 02:05:15 +0200
commit4fa1f9c549dfbc168352c554bf3a4bb06ab4eb18 (patch)
tree4cee34717dca83f1c32315cf72b40a0c950c8892
parent1cd52970d52abbb71a60ba63931729f823d41501 (diff)
downloadusermoji-4fa1f9c549dfbc168352c554bf3a4bb06ab4eb18.tar.xz
vkcube: delta-time sensitivity
-rw-r--r--tools/Vulkan-Tools/cube/cube.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/tools/Vulkan-Tools/cube/cube.c b/tools/Vulkan-Tools/cube/cube.c
index b67e31c2..a5854c5f 100644
--- a/tools/Vulkan-Tools/cube/cube.c
+++ b/tools/Vulkan-Tools/cube/cube.c
@@ -1025,9 +1025,20 @@ void demo_update_data_buffer(struct demo *demo, void *uniform_memory_ptr) {
mat4x4_mul(VP, demo->projection_matrix, demo->view_matrix);
+ static struct timespec ts_old;
+ static bool ts_first = true;
+
+ struct timespec ts;
+ clock_gettime(CLOCK_REALTIME, &ts);
+
+ double dtime = ts_first ? false :
+ (double)(ts.tv_sec - ts_old.tv_sec) + (double) (ts.tv_nsec - ts_old.tv_nsec) / 1.0e9;
+ ts_old = ts;
+ ts_first = false;
+
// Rotate around the Y axis
mat4x4_dup(Model, demo->model_matrix);
- mat4x4_rotate_Y(demo->model_matrix, Model, (float)degreesToRadians(demo->spin_angle));
+ mat4x4_rotate_Y(demo->model_matrix, Model, (float)degreesToRadians(dtime * demo->spin_angle));
mat4x4_orthonormalize(demo->model_matrix, demo->model_matrix);
mat4x4_mul(MVP, VP, demo->model_matrix);
@@ -4918,8 +4929,8 @@ static void demo_init(struct demo *demo, int argc, char **argv) {
demo_init_vk(demo);
- demo->spin_angle = 4.0f;
- demo->spin_increment = 0.2f;
+ demo->spin_angle = 270.0f;
+ demo->spin_increment = 60.0f;
demo->pause = false;
mat4x4_perspective(demo->projection_matrix, (float)degreesToRadians(37.0f), 1.0f, 0.1f, 100.0f);