X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_state.c;h=580ff10f377fd4e5f4b876293c2e4f7b92fad58b;hb=a00c7ee3552b527ac6b375d6a6ca42f90770ddc3;hp=4f369d4e2738f25e62e6b67ede7979393ef8b31d;hpb=ea5dc8a10beb55cd972c34d6b531158101b6773f;p=freeglut diff --git a/src/fg_state.c b/src/fg_state.c index 4f369d4..580ff10 100644 --- a/src/fg_state.c +++ b/src/fg_state.c @@ -44,6 +44,7 @@ extern int fgPlatformGlutGet ( GLenum eWhat ); extern int fgPlatformGlutDeviceGet ( GLenum eWhat ); extern int *fgPlatformGlutGetModeValues(GLenum eWhat, int *size); +extern SFG_Font* fghFontByID( void* font ); /* -- LOCAL DEFINITIONS ---------------------------------------------------- */ @@ -60,9 +61,6 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value ) { FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetOption" ); - /* - * XXX In chronological code add order. (WHY in that order?) - */ switch( eWhat ) { case GLUT_INIT_WINDOW_X: @@ -115,7 +113,7 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value ) fgState.SkipStaleMotion = value; break; - case GLUT_OBJECTS_VISUALIZE_NORMALS: + case GLUT_GEOMETRY_VISUALIZE_NORMALS: if( fgStructure.CurrentWindow != NULL ) fgStructure.CurrentWindow->State.VisualizeNormals = value; break; @@ -136,13 +134,18 @@ 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(); } FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGet" ); - /* XXX In chronological code add order. (WHY in that order?) */ switch( eWhat ) { /* Following values are stored in fgState and fgDisplay global structures */ @@ -210,7 +213,7 @@ int FGAPIENTRY glutGet( GLenum eWhat ) case GLUT_SKIP_STALE_MOTION_EVENTS: return fgState.SkipStaleMotion; - case GLUT_OBJECTS_VISUALIZE_NORMALS: + case GLUT_GEOMETRY_VISUALIZE_NORMALS: if( fgStructure.CurrentWindow == NULL ) return GL_FALSE; return fgStructure.CurrentWindow->State.VisualizeNormals;