X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fandroid%2Ffg_state_android.c;h=bd2b034fe5dd3860cda56e6008cd3fa0d48bd77a;hb=207c3128bf025b5e025bace5c0425d380dd72aa9;hp=aea9b2521da2c1e3e0bd5997c937910672f64c9e;hpb=b27ccc213edf4168d445037cf3dceb82772f1b2b;p=freeglut diff --git a/src/android/fg_state_android.c b/src/android/fg_state_android.c index aea9b25..bd2b034 100644 --- a/src/android/fg_state_android.c +++ b/src/android/fg_state_android.c @@ -1,5 +1,5 @@ /* - * freeglut_state_android.c + * fg_state_android.c * * Android-specific freeglut state query methods. * @@ -29,18 +29,45 @@ #include #include #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,54 +83,14 @@ 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); } return -1; } - -int fgPlatformGlutLayerGet( GLenum eWhat ) -{ - fprintf(stderr, "fgPlatformGlutLayerGet: STUB\n"); - - /* - * This is easy as layers are not implemented ;-) - * - * XXX Can we merge the UNIX/X11 and WIN32 sections? Or - * XXX is overlay support planned? - */ - switch( eWhat ) - { - case GLUT_OVERLAY_POSSIBLE: - return 0; - - case GLUT_LAYER_IN_USE: - return GLUT_NORMAL; - - case GLUT_HAS_OVERLAY: - return 0; - - case GLUT_TRANSPARENT_INDEX: - /* - * Return just anything, which is always defined as zero - * - * XXX HUH? - */ - return 0; - - case GLUT_NORMAL_DAMAGED: - /* XXX Actually I do not know. Maybe. */ - return 0; - - case GLUT_OVERLAY_DAMAGED: - return -1; - - default: - fgWarning( "glutLayerGet(): missing enum handle %d", eWhat ); - break; - } - - /* And fail. That's good. Programs do love failing. */ - return -1; -}