From b3c5440736d1d02a22cfd03c7d0c35d6229c3a88 Mon Sep 17 00:00:00 2001 From: ktyl Date: Sat, 25 Jun 2022 22:09:19 +0100 Subject: [PATCH] track real and scaled time --- src/clock.c | 11 ++++++++--- src/clock.h | 8 +++++--- src/main.c | 8 ++++---- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/clock.c b/src/clock.c index 3307417..e7cb74d 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,6 +1,11 @@ #include "clock.h" -float now(struct Epoch t) -{ - return t.speed * (float)SDL_GetTicks() / 1000.0; +float now() +{ + return (float)SDL_GetTicks() / 1000.0; +} + +float nowScaled(struct Epoch t) +{ + return t.scale * now(); } diff --git a/src/clock.h b/src/clock.h index 1b6f85e..81c11c3 100644 --- a/src/clock.h +++ b/src/clock.h @@ -4,8 +4,10 @@ struct Epoch { - float speed; + float scale; }; -// seconds since program start -float now(struct Epoch e); +// real seconds since program start +float now(); +// simulation seconds since program start +float nowScaled(struct Epoch e); diff --git a/src/main.c b/src/main.c index ffcef95..5b1237b 100644 --- a/src/main.c +++ b/src/main.c @@ -41,7 +41,7 @@ void parseArgs(int argc, char* argv[], struct Epoch* e) fprintf(stderr, "usage: oglc TIMESPEED\n"); } - sscanf(argv[1], "%f", &(e->speed)); + sscanf(argv[1], "%f", &(e->scale)); } int main(int argc, char* argv[]) @@ -50,12 +50,12 @@ int main(int argc, char* argv[]) initialise(); - float start = now(epoch); + float start = now(); int frames; for (frames = 0; !checkQuit(); frames++) { GLuint shader; - float t = now(epoch); + float t = nowScaled(epoch); // prepass // TODO: write output to different texture than main output @@ -104,7 +104,7 @@ int main(int argc, char* argv[]) SDL_GL_SwapWindow(window); } - float elapsed = now(epoch)-start; + float elapsed = now()-start; printf("%d frames in %fs [%f fps]\n", frames, elapsed,