X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_state.c;h=4165daa98c09ca6f814c3e1c6935ff008bde0ead;hb=207c3128bf025b5e025bace5c0425d380dd72aa9;hp=9ddfdd9186de9116f38fc4d963dfe079050f9081;hpb=75ee380e8ec27aad5c793bb8d966efd927d82cba;p=freeglut diff --git a/src/fg_state.c b/src/fg_state.c index 9ddfdd9..4165daa 100644 --- a/src/fg_state.c +++ b/src/fg_state.c @@ -1,5 +1,5 @@ /* - * freeglut_state.c + * fg_state.c * * Freeglut state query methods. * @@ -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: @@ -112,12 +110,20 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value ) break; case GLUT_SKIP_STALE_MOTION_EVENTS: - fgState.SkipStaleMotion = value; + fgState.SkipStaleMotion = !!value; break; case GLUT_GEOMETRY_VISUALIZE_NORMALS: if( fgStructure.CurrentWindow != NULL ) - fgStructure.CurrentWindow->State.VisualizeNormals = value; + fgStructure.CurrentWindow->State.VisualizeNormals = !!value; + break; + + case GLUT_STROKE_FONT_DRAW_JOIN_DOTS: + fgState.StrokeFontDrawJoinDots = !!value; + break; + + case GLUT_ALLOW_NEGATIVE_WINDOW_POSITION: + fgState.AllowNegativeWindowPosition = !!value; break; default: @@ -148,7 +154,6 @@ int FGAPIENTRY glutGet( GLenum eWhat ) 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 */ @@ -221,11 +226,16 @@ int FGAPIENTRY glutGet( GLenum eWhat ) return GL_FALSE; return fgStructure.CurrentWindow->State.VisualizeNormals; + case GLUT_STROKE_FONT_DRAW_JOIN_DOTS: + return fgState.StrokeFontDrawJoinDots; + + case GLUT_ALLOW_NEGATIVE_WINDOW_POSITION: + return fgState.AllowNegativeWindowPosition; + default: return fgPlatformGlutGet ( eWhat ); break; } - return -1; } /* @@ -260,7 +270,7 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) case GLUT_NUM_DIALS: if ( fgState.InputDevsInitialised ) return 8; return 0; - + case GLUT_NUM_BUTTON_BOX_BUTTONS: return 0; @@ -283,11 +293,8 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) return fgState.KeyRepeat; default: - return fgPlatformGlutDeviceGet ( eWhat ); + return fgPlatformGlutDeviceGet ( eWhat ); } - - /* And now -- the failure. */ - return -1; } /*