+\r
+\r
+int fgPlatformGlutDeviceGet ( GLenum eWhat )\r
+{\r
+ switch( eWhat )\r
+ {\r
+ case GLUT_HAS_KEYBOARD:\r
+ /*\r
+ * Win32 is assumed a keyboard, and this cannot be queried,\r
+ * except for WindowsCE.\r
+ *\r
+ * X11 has a core keyboard by definition, although it can\r
+ * be present as a virtual/dummy keyboard. For now, there\r
+ * is no reliable way to tell if a real keyboard is present.\r
+ */\r
+#if defined(_WIN32_CE)\r
+ return ( GetKeyboardStatus() & KBDI_KEYBOARD_PRESENT ) ? 1 : 0;\r
+# if FREEGLUT_LIB_PRAGMAS\r
+# pragma comment (lib,"Kbdui.lib")\r
+# endif\r
+\r
+#else\r
+ return 1;\r
+#endif\r
+\r
+ case GLUT_HAS_MOUSE:\r
+ /*\r
+ * MS Windows can be booted without a mouse.\r
+ */\r
+ return GetSystemMetrics( SM_MOUSEPRESENT );\r
+\r
+ case GLUT_NUM_MOUSE_BUTTONS:\r
+# if defined(_WIN32_WCE)\r
+ return 1;\r
+# else\r
+ return GetSystemMetrics( SM_CMOUSEBUTTONS );\r
+# endif\r
+\r
+ default:\r
+ fgWarning( "glutDeviceGet(): missing enum handle %d", eWhat );\r
+ break;\r
+ }\r
+\r
+ /* And now -- the failure. */\r
+ return -1;\r
+}\r
+\r
+\r
+int fgPlatformGlutLayerGet( GLenum eWhat )\r
+{\r
+ /*\r
+ * This is easy as layers are not implemented ;-)\r
+ *\r
+ * XXX Can we merge the UNIX/X11 and WIN32 sections? Or\r
+ * XXX is overlay support planned?\r
+ */\r
+ switch( eWhat )\r
+ {\r
+\r
+ case GLUT_OVERLAY_POSSIBLE:\r
+/* return fgSetupPixelFormat( fgStructure.CurrentWindow, GL_TRUE,\r
+ PFD_OVERLAY_PLANE ); */\r
+ return 0 ;\r
+\r
+ case GLUT_LAYER_IN_USE:\r
+ return GLUT_NORMAL;\r
+\r
+ case GLUT_HAS_OVERLAY:\r
+ return 0;\r
+\r
+ case GLUT_TRANSPARENT_INDEX:\r
+ /*\r
+ * Return just anything, which is always defined as zero\r
+ *\r
+ * XXX HUH?\r
+ */\r
+ return 0;\r
+\r
+ case GLUT_NORMAL_DAMAGED:\r
+ /* XXX Actually I do not know. Maybe. */\r
+ return 0;\r
+\r
+ case GLUT_OVERLAY_DAMAGED:\r
+ return -1;\r
+\r
+ default:\r
+ fgWarning( "glutLayerGet(): missing enum handle %d", eWhat );\r
+ break;\r
+ }\r
+\r
+ /* And fail. That's good. Programs do love failing. */\r
+ return -1;\r
+}\r
+\r
+\r
+\r