From 2971625418c528e9310d4004bf01bfed7e901eb1 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Mon, 20 Feb 2023 13:40:27 +0100 Subject: Add GLUT_ELAPSED_TIME simulation --- src/glut_compatibility.cxx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/glut_compatibility.cxx b/src/glut_compatibility.cxx index c7484ad5f..adcac1b7a 100644 --- a/src/glut_compatibility.cxx +++ b/src/glut_compatibility.cxx @@ -190,8 +190,14 @@ Fl_Glut_Window::Fl_Glut_Window(int X,int Y,int W,int H, const char *t) : static int initargc; static char **initargv; +static char glut_starttime_set = 0; +static Fl_Timestamp glut_starttime; void glutInit(int *argc, char **argv) { + if (!glut_starttime_set) { + glut_starttime = Fl::now(); + glut_starttime_set = 1; + } initargc = *argc; initargv = new char*[*argc+1]; int i,j; @@ -405,7 +411,12 @@ int glutGet(GLenum type) { case GLUT_INIT_WINDOW_WIDTH: return initw; case GLUT_INIT_WINDOW_HEIGHT: return inith; case GLUT_INIT_DISPLAY_MODE: return glut_mode; -//case GLUT_ELAPSED_TIME: + case GLUT_ELAPSED_TIME: + if (!glut_starttime_set) { + glut_starttime = Fl::now(); + glut_starttime_set = 1; + } + return (int)(Fl::seconds_since(glut_starttime)*1000.0); // milliseconds case GLUT_WINDOW_BUFFER_SIZE: if (glutGet(GLUT_WINDOW_RGBA)) return glutGet(GLUT_WINDOW_RED_SIZE)+ -- cgit v1.2.3