X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_state.c;h=9ddfdd9186de9116f38fc4d963dfe079050f9081;hb=56cc35535901ef071bf8acab59ba176355ee3e0e;hp=734a57ce4216f70fe8961a187fdaceafe2b69e28;hpb=6de0216ace8e54ec823458b2cd0df3b6438a0e1f;p=freeglut diff --git a/src/fg_state.c b/src/fg_state.c index 734a57c..9ddfdd9 100644 --- a/src/fg_state.c +++ b/src/fg_state.c @@ -115,6 +115,11 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value ) fgState.SkipStaleMotion = value; break; + case GLUT_GEOMETRY_VISUALIZE_NORMALS: + if( fgStructure.CurrentWindow != NULL ) + fgStructure.CurrentWindow->State.VisualizeNormals = value; + break; + default: fgWarning( "glutSetOption(): missing enum handle %d", eWhat ); break; @@ -131,6 +136,12 @@ int FGAPIENTRY glutGet( GLenum eWhat ) case GLUT_INIT_STATE: return fgState.Initialised; + /* Although internally the time store is 64bits wide, the return value + * here still wraps every 49.7 days. Integer overflows cancel however + * when subtracting an initial start time, unless the total time exceeds + * 32-bit, so you can still work with this. + * XXX: a glutGet64 to return the time might be an idea... + */ case GLUT_ELAPSED_TIME: return (int) fgElapsedTime(); } @@ -205,6 +216,11 @@ int FGAPIENTRY glutGet( GLenum eWhat ) case GLUT_SKIP_STALE_MOTION_EVENTS: return fgState.SkipStaleMotion; + case GLUT_GEOMETRY_VISUALIZE_NORMALS: + if( fgStructure.CurrentWindow == NULL ) + return GL_FALSE; + return fgStructure.CurrentWindow->State.VisualizeNormals; + default: return fgPlatformGlutGet ( eWhat ); break;