summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLizzy Fleckenstein <lizzy@vlhl.dev>2026-04-12 21:23:36 +0200
committerLizzy Fleckenstein <lizzy@vlhl.dev>2026-04-12 21:23:36 +0200
commit171ee405f9e4a390fb760b72daa9ff8015c89e2a (patch)
treea40f1ab50304338e06d8c982bdc47b55b8c33d09
parente5af28536bfb0f4c9131df56d2009ba5196f5e3a (diff)
downloadanimtool-171ee405f9e4a390fb760b72daa9ff8015c89e2a.tar.xz
fix standard compliance issues
-rw-r--r--meson.build2
-rw-r--r--src/fmt/nut.c1
-rw-r--r--src/render.c9
3 files changed, 10 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index db0abc7..277e822 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,7 @@
project('animtool', 'c', default_options: ['warning_level=2', 'c_std=c23'])
+add_project_arguments(['-D_XOPEN_SOURCE=800', '-D_POSIX_C_SOURCE=202405L'], language: 'c')
+
cc = meson.get_compiler('c')
opengl = dependency('opengl')
diff --git a/src/fmt/nut.c b/src/fmt/nut.c
index 99f9a69..f9ca9fd 100644
--- a/src/fmt/nut.c
+++ b/src/fmt/nut.c
@@ -1,3 +1,4 @@
+#define _DEFAULT_SOURCE // can be removed once glibc knows about <endian.h> in POSIX 2024
#include <stdio.h>
#include <stdlib.h>
#include <stdbit.h>
diff --git a/src/render.c b/src/render.c
index 9c7d796..fd88278 100644
--- a/src/render.c
+++ b/src/render.c
@@ -146,8 +146,13 @@ static void render_seq(size_t n_inst, struct seq_inst inst[n_inst], struct scene
(ts_now.tv_nsec - state->start_ts.tv_nsec) / 1000000000.0 +
(ts_now.tv_sec - state->start_ts.tv_sec);
double ahead = time - e_time - scene->live.data;
- if (ahead > 0.0)
- usleep(ahead * 1000000.0);
+ if (ahead > 0.0) {
+ uint64_t nanos = ahead * 1000000000.0;
+ struct timespec ts_sleep;
+ ts_sleep.tv_nsec = nanos % 1000000000;
+ ts_sleep.tv_sec = nanos / 1000000000;
+ nanosleep(&ts_sleep, nullptr);
+ }
}
struct draw_frame frame;