diff options
| author | Lizzy Fleckenstein <lizzy@vlhl.dev> | 2026-03-31 02:05:15 +0200 |
|---|---|---|
| committer | Lizzy Fleckenstein <lizzy@vlhl.dev> | 2026-03-31 02:05:15 +0200 |
| commit | 4fa1f9c549dfbc168352c554bf3a4bb06ab4eb18 (patch) | |
| tree | 4cee34717dca83f1c32315cf72b40a0c950c8892 | |
| parent | 1cd52970d52abbb71a60ba63931729f823d41501 (diff) | |
| download | usermoji-4fa1f9c549dfbc168352c554bf3a4bb06ab4eb18.tar.xz | |
vkcube: delta-time sensitivity
| -rw-r--r-- | tools/Vulkan-Tools/cube/cube.c | 17 |
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); |
