Added GLUT_ALLOW_NEGATIVE_WINDOW_POSITION so windows can be created with negative...
[freeglut] / src / fg_state.c
index 6a9387d..7f8d3be 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * freeglut_state.c
+ * fg_state.c
  *
  * Freeglut state query methods.
  *
@@ -61,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:
@@ -113,24 +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_MENU_FONT:
-        {
-            void* fontID = (void*)value;
-            SFG_Font* font;
-            font = fghFontByID( fontID );
-            if (!font)
-                fgWarning("glutSetOption(GLUT_MENU_FONT,...): bitmap font 0x%08x not found. Make sure you're not passing a stroke font. Ignoring...\n",fontID);
-            else
-                fgState.MenuFont = fontID;
-        }
+    case GLUT_STROKE_FONT_DRAW_JOIN_DOTS:
+      fgState.StrokeFontDrawJoinDots = !!value;
+      break;
+
+    case GLUT_ALLOW_NEGATIVE_WINDOW_POSITION:
+      fgState.AllowNegativeWindowPosition = !!value;
       break;
 
     default:
@@ -161,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 */
@@ -234,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;
 }
 
 /*
@@ -298,9 +295,6 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat )
     default:
                return fgPlatformGlutDeviceGet ( eWhat );
     }
-
-    /* And now -- the failure. */
-    return -1;
 }
 
 /*