Adding the "smooth_opengl3" demo
[freeglut] / src / freeglut_state.c
index cca7b92..0ab3efa 100644 (file)
@@ -64,6 +64,30 @@ static int fghGetConfig( int attribute )
 }
 #endif
 
+/* Check if the window is in full screen state. */
+static int fghCheckFullScreen(void)
+{
+#if TARGET_HOST_POSIX_X11
+
+  int result;
+
+  result = 0;
+  if (fgDisplay.StateFullScreen != None)
+    {
+      result = fgHintPresent(fgStructure.CurrentWindow->Window.Handle,
+                            fgDisplay.State,
+                            fgDisplay.StateFullScreen);
+    }
+
+  return result;
+
+#else
+
+  return 0;
+
+#endif
+}
+
 /* -- INTERFACE FUNCTIONS -------------------------------------------------- */
 
 /*
@@ -179,6 +203,9 @@ int FGAPIENTRY glutGet( GLenum eWhat )
     case GLUT_INIT_WINDOW_HEIGHT:   return fgState.Size.Use ?
                                            fgState.Size.Y : -1     ;
     case GLUT_INIT_DISPLAY_MODE:    return fgState.DisplayMode     ;
+    case GLUT_INIT_MAJOR_VERSION:   return fgState.MajorVersion    ;
+    case GLUT_INIT_MINOR_VERSION:   return fgState.MinorVersion    ;
+    case GLUT_INIT_FLAGS:           return fgState.ContextFlags    ;
 
 #if TARGET_HOST_POSIX_X11
     /*
@@ -512,6 +539,10 @@ int FGAPIENTRY glutGet( GLenum eWhat )
         return fgState.DirectContext;
         break;
 
+    case GLUT_FULL_SCREEN:
+        return fghCheckFullScreen();
+        break;
+
     default:
         fgWarning( "glutGet(): missing enum handle %d", eWhat );
         break;