moved spaceball macros from freeglut_std.h to freeglut_ext.h
[freeglut] / src / android / fg_state_android.c
index f229c95..bd2b034 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * freeglut_state_android.c
+ * fg_state_android.c
  *
  * Android-specific freeglut state query methods.
  *
 #include <stdio.h>
 #include <android/native_window.h>
 #include "fg_internal.h"
+#include "egl/fg_state_egl.h"
 
 int fgPlatformGlutDeviceGet ( GLenum eWhat )
 {
-  fprintf(stderr, "fgPlatformGlutDeviceGet: STUB\n");
-  return -1;
+    switch( eWhat )
+    {
+    case GLUT_HAS_KEYBOARD:
+        /* Android has a keyboard, though it may be virtual. */
+        return 1;
+
+    case GLUT_HAS_MOUSE:
+        /* Android has a touchscreen; until we get proper touchscreen
+           support, consider it as a mouse. */
+        return 1 ;
+
+    case GLUT_NUM_MOUSE_BUTTONS:
+        /* Android has a touchscreen; until we get proper touchscreen
+           support, consider it as a 1-button mouse. */
+        return 1;
+
+    default:
+        fgWarning( "glutDeviceGet(): missing enum handle %d", eWhat );
+        break;
+    }
+
+    /* And now -- the failure. */
+    return -1;
 }
 
 int fgPlatformGlutGet ( GLenum eWhat )
 {
-  fprintf(stderr, "fgPlatformGlutGet: STUB\n");
-
   switch (eWhat) {
+  /* One full-screen window only */
+  case GLUT_WINDOW_X:
+  case GLUT_WINDOW_Y:
+  case GLUT_WINDOW_BORDER_WIDTH:
+  case GLUT_WINDOW_HEADER_HEIGHT:
+      return 0;
+
   case GLUT_WINDOW_WIDTH:
   case GLUT_WINDOW_HEIGHT:
     {
@@ -56,7 +83,12 @@ int fgPlatformGlutGet ( GLenum eWhat )
          return height;
        }
     }
-    
+
+  case GLUT_WINDOW_COLORMAP_SIZE:
+      /* 0 for RGBA/non-indexed mode */
+      /* Under Android and GLES more generally, no indexed-mode */
+      return 0;
+  
   default:
     return fghPlatformGlutGetEGL(eWhat);
   }