diff options
| author | Matthias Melcher <github@matthiasm.com> | 2023-02-20 13:40:27 +0100 |
|---|---|---|
| committer | Matthias Melcher <github@matthiasm.com> | 2023-02-20 13:40:27 +0100 |
| commit | 2971625418c528e9310d4004bf01bfed7e901eb1 (patch) | |
| tree | 5710e610f99cc3d97a3206c2375e382601c5b80e | |
| parent | 6f4cf105b13bf138d592327315441c1ae74ca4bb (diff) | |
Add GLUT_ELAPSED_TIME simulation
| -rw-r--r-- | FL/glut.H | 4 | ||||
| -rw-r--r-- | src/glut_compatibility.cxx | 13 |
2 files changed, 14 insertions, 3 deletions
@@ -315,12 +315,12 @@ enum { GLUT_INIT_WINDOW_HEIGHT, GLUT_INIT_DISPLAY_MODE, GLUT_WINDOW_BUFFER_SIZE, - GLUT_VERSION + GLUT_VERSION, //GLUT_WINDOW_NUM_CHILDREN, //GLUT_WINDOW_CURSOR, //GLUT_SCREEN_WIDTH_MM, //GLUT_SCREEN_HEIGHT_MM, -//GLUT_ELAPSED_TIME, + GLUT_ELAPSED_TIME, }; # define GLUT_WINDOW_STENCIL_SIZE GL_STENCIL_BITS 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)+ |
