Fix a game mode crashing bug, conditional compilation for Windows, and comment out...
[freeglut] / src / freeglut_state.c
index f210612..3b6c718 100644 (file)
@@ -72,51 +72,55 @@ static int fghGetConfig( int attribute )
  */
 void FGAPIENTRY glutSetOption( GLenum eWhat, int value )
 {
-  freeglut_assert_ready;
-
-  /*
-   * XXX In chronological code add order.  (WHY in that order?)
-   */
-  switch( eWhat )
-  {
-  case GLUT_INIT_WINDOW_X:
-      fgState.Position.X = (GLint)value;
-      break;
-
-  case GLUT_INIT_WINDOW_Y:
-      fgState.Position.Y = (GLint)value;
-      break;
-
-  case GLUT_INIT_WINDOW_WIDTH:
-      fgState.Size.X = (GLint)value;
-      break;
-
-  case GLUT_INIT_WINDOW_HEIGHT:
-      fgState.Size.Y = (GLint)value;
-      break;
-
-  case GLUT_INIT_DISPLAY_MODE:
-      fgState.DisplayMode = (unsigned int)value;
-      break;
-
-  case GLUT_ACTION_ON_WINDOW_CLOSE:
-      fgState.ActionOnWindowClose = value;
-      break;
-
-  case GLUT_RENDERING_CONTEXT:
-      fgState.UseCurrentContext =
-          ( value == GLUT_USE_CURRENT_CONTEXT ) ? GL_TRUE : GL_FALSE;
-      break;
-
-  case GLUT_WINDOW_CURSOR:
-      if( fgStructure.Window != NULL )
-          fgStructure.Window->State.Cursor = value;
-      break;
-
-  default:
-      fgWarning( "glutSetOption(): missing enum handle %i\n", eWhat );
-      break;
-  }
+    freeglut_assert_ready;
+
+    /*
+     * XXX In chronological code add order.  (WHY in that order?)
+     */
+    switch( eWhat )
+    {
+    case GLUT_INIT_WINDOW_X:
+        fgState.Position.X = (GLint)value;
+        break;
+
+    case GLUT_INIT_WINDOW_Y:
+        fgState.Position.Y = (GLint)value;
+        break;
+
+    case GLUT_INIT_WINDOW_WIDTH:
+        fgState.Size.X = (GLint)value;
+        break;
+
+    case GLUT_INIT_WINDOW_HEIGHT:
+        fgState.Size.Y = (GLint)value;
+        break;
+
+    case GLUT_INIT_DISPLAY_MODE:
+        fgState.DisplayMode = (unsigned int)value;
+        break;
+
+    case GLUT_ACTION_ON_WINDOW_CLOSE:
+        fgState.ActionOnWindowClose = value;
+        break;
+
+    case GLUT_RENDERING_CONTEXT:
+        fgState.UseCurrentContext =
+            ( value == GLUT_USE_CURRENT_CONTEXT ) ? GL_TRUE : GL_FALSE;
+        break;
+
+    case GLUT_DIRECT_RENDERING:
+        fgState.DirectContext = value;
+        break;
+
+    case GLUT_WINDOW_CURSOR:
+        if( fgStructure.Window != NULL )
+            fgStructure.Window->State.Cursor = value;
+        break;
+
+    default:
+        fgWarning( "glutSetOption(): missing enum handle %i\n", eWhat );
+        break;
+    }
 }
 
 /*
@@ -386,7 +390,7 @@ int FGAPIENTRY glutGet( GLenum eWhat )
           winRect.top    += GetSystemMetrics( SM_CYSIZEFRAME ) + GetSystemMetrics( SM_CYCAPTION );
           winRect.bottom -= GetSystemMetrics( SM_CYSIZEFRAME );
         }
-#endif //TARGET_HOST_WINCE
+#endif /* !TARGET_HOST_WINCE */
 
         switch( eWhat )
         {
@@ -403,14 +407,14 @@ int FGAPIENTRY glutGet( GLenum eWhat )
         return 0;
 #else
         return GetSystemMetrics( SM_CXSIZEFRAME );
-#endif //TARGET_HOST_WINCE
+#endif /* !TARGET_HOST_WINCE */
 
     case GLUT_WINDOW_HEADER_HEIGHT :
 #if TARGET_HOST_WINCE
         return 0;
 #else
         return GetSystemMetrics( SM_CYCAPTION );
-#endif //TARGET_HOST_WINCE
+#endif /* TARGET_HOST_WINCE */
 
     case GLUT_DISPLAY_MODE_POSSIBLE:
 #if TARGET_HOST_WINCE
@@ -418,14 +422,14 @@ int FGAPIENTRY glutGet( GLenum eWhat )
 #else
         return fgSetupPixelFormat( fgStructure.Window, GL_TRUE,
                                     PFD_MAIN_PLANE );
-#endif //TARGET_HOST_WINCE
+#endif /* TARGET_HOST_WINCE */
 
 
     case GLUT_WINDOW_FORMAT_ID:
 #if !TARGET_HOST_WINCE
         if( fgStructure.Window != NULL )
             return GetPixelFormat( fgStructure.Window->Window.Device );
-#endif //TARGET_HOST_WINCE
+#endif /* TARGET_HOST_WINCE */
         return 0;
 
 #endif
@@ -463,6 +467,10 @@ int FGAPIENTRY glutGet( GLenum eWhat )
         return fgState.UseCurrentContext ? GLUT_USE_CURRENT_CONTEXT
                                          : GLUT_CREATE_NEW_CONTEXT;
 
+    case GLUT_DIRECT_RENDERING:
+        return fgState.DirectContext;
+        break;
+
     default:
         fgWarning( "glutGet(): missing enum handle %i\n", eWhat );
         break;
@@ -538,7 +546,7 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat )
         return 1;
 #else
         return GetSystemMetrics( SM_CMOUSEBUTTONS );
-#endif //TARGET_HOST_WINCE
+#endif /* TARGET_HOST_WINCE */
 
 #endif