+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */\r
+\r
+/*\r
+ * General settings assignment method\r
+ */\r
+void FGAPIENTRY glutSetOption( GLenum eWhat, int value )\r
+{\r
+ FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetOption" );\r
+\r
+ /*\r
+ * XXX In chronological code add order. (WHY in that order?)\r
+ */\r
+ switch( eWhat )\r
+ {\r
+ case GLUT_INIT_WINDOW_X:\r
+ fgState.Position.X = (GLint)value;\r
+ break;\r
+\r
+ case GLUT_INIT_WINDOW_Y:\r
+ fgState.Position.Y = (GLint)value;\r
+ break;\r
+\r
+ case GLUT_INIT_WINDOW_WIDTH:\r
+ fgState.Size.X = (GLint)value;\r
+ break;\r
+\r
+ case GLUT_INIT_WINDOW_HEIGHT:\r
+ fgState.Size.Y = (GLint)value;\r
+ break;\r
+\r
+ case GLUT_INIT_DISPLAY_MODE:\r
+ fgState.DisplayMode = (unsigned int)value;\r
+ break;\r
+\r
+ case GLUT_ACTION_ON_WINDOW_CLOSE:\r
+ fgState.ActionOnWindowClose = value;\r
+ break;\r
+\r
+ case GLUT_RENDERING_CONTEXT:\r
+ fgState.UseCurrentContext =\r
+ ( value == GLUT_USE_CURRENT_CONTEXT ) ? GL_TRUE : GL_FALSE;\r
+ break;\r
+\r
+ case GLUT_DIRECT_RENDERING:\r
+ fgState.DirectContext = value;\r
+ break;\r
+\r
+ case GLUT_WINDOW_CURSOR:\r
+ if( fgStructure.CurrentWindow != NULL )\r
+ fgStructure.CurrentWindow->State.Cursor = value;\r
+ break;\r
+\r
+ case GLUT_AUX:\r
+ fgState.AuxiliaryBufferNumber = value;\r
+ break;\r
+\r
+ case GLUT_MULTISAMPLE:\r
+ fgState.SampleNumber = value;\r
+ break;\r
+\r
+ default:\r
+ fgWarning( "glutSetOption(): missing enum handle %d", eWhat );\r
+ break;\r
+ }\r
+}\r
+\r
+/*\r
+ * General settings query method\r
+ */\r
+int FGAPIENTRY glutGet( GLenum eWhat )\r
+{\r
+ switch (eWhat)\r
+ {\r
+ case GLUT_INIT_STATE:\r
+ return fgState.Initialised;\r
+\r
+ case GLUT_ELAPSED_TIME:\r
+ return fgElapsedTime();\r
+ }\r
+\r
+ FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGet" );\r
+\r
+ /* XXX In chronological code add order. (WHY in that order?) */\r
+ switch( eWhat )\r
+ {\r
+ /* Following values are stored in fgState and fgDisplay global structures */\r
+ case GLUT_SCREEN_WIDTH: return fgDisplay.ScreenWidth ;\r
+ case GLUT_SCREEN_HEIGHT: return fgDisplay.ScreenHeight ;\r
+ case GLUT_SCREEN_WIDTH_MM: return fgDisplay.ScreenWidthMM ;\r
+ case GLUT_SCREEN_HEIGHT_MM: return fgDisplay.ScreenHeightMM;\r
+ case GLUT_INIT_WINDOW_X: return fgState.Position.Use ?\r
+ fgState.Position.X : -1 ;\r
+ case GLUT_INIT_WINDOW_Y: return fgState.Position.Use ?\r
+ fgState.Position.Y : -1 ;\r
+ case GLUT_INIT_WINDOW_WIDTH: return fgState.Size.Use ?\r
+ fgState.Size.X : -1 ;\r
+ case GLUT_INIT_WINDOW_HEIGHT: return fgState.Size.Use ?\r
+ fgState.Size.Y : -1 ;\r
+ case GLUT_INIT_DISPLAY_MODE: return fgState.DisplayMode ;\r
+ case GLUT_INIT_MAJOR_VERSION: return fgState.MajorVersion ;\r
+ case GLUT_INIT_MINOR_VERSION: return fgState.MinorVersion ;\r
+ case GLUT_INIT_FLAGS: return fgState.ContextFlags ;\r
+ case GLUT_INIT_PROFILE: return fgState.ContextProfile ;\r
+\r