X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=android%2FXScreenSaverGLView.c;fp=android%2FXScreenSaverGLView.c;h=6ffecd9a088a1b946e846b6bc126a0160d31b4d2;hp=0000000000000000000000000000000000000000;hb=d5186197bc394e10a4402f7f6d23fbb14103bc50;hpb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e diff --git a/android/XScreenSaverGLView.c b/android/XScreenSaverGLView.c new file mode 100644 index 00000000..6ffecd9a --- /dev/null +++ b/android/XScreenSaverGLView.c @@ -0,0 +1,79 @@ +#include +#include "screenhackI.h" +#include "xlockmoreI.h" + +#if defined(USE_IPHONE) || (HAVE_ANDROID) +# include "jwzgles.h" +#else +# include +#endif + +/* used by the OpenGL screen savers + */ +extern GLXContext *init_GL (ModeInfo *); +extern void glXSwapBuffers (Display *, Window); +extern void glXMakeCurrent (Display *, Window, GLXContext); +extern void clear_gl_error (void); +extern void check_gl_error (const char *type); + +/* Does nothing - prepareContext already did the work. + */ +void +glXMakeCurrent (Display *dpy, Window window, GLXContext context) +{ +} + + +/* clear away any lingering error codes */ +void +clear_gl_error (void) +{ + while (glGetError() != GL_NO_ERROR) + ; +} + + +// needs to be implemented in Android... +/* Copy the back buffer to the front buffer. + */ +void +glXSwapBuffers (Display *dpy, Window window) +{ +} + + +/* Called by OpenGL savers using the XLockmore API. + */ +GLXContext * +init_GL (ModeInfo *mi) +{ + Window win = mi->window; +} + +/* report a GL error. */ +void +check_gl_error (const char *type) +{ + char buf[100]; + GLenum i; + const char *e; + switch ((i = glGetError())) { + case GL_NO_ERROR: return; + case GL_INVALID_ENUM: e = "invalid enum"; break; + case GL_INVALID_VALUE: e = "invalid value"; break; + case GL_INVALID_OPERATION: e = "invalid operation"; break; + case GL_STACK_OVERFLOW: e = "stack overflow"; break; + case GL_STACK_UNDERFLOW: e = "stack underflow"; break; + case GL_OUT_OF_MEMORY: e = "out of memory"; break; +#ifdef GL_TABLE_TOO_LARGE_EXT + case GL_TABLE_TOO_LARGE_EXT: e = "table too large"; break; +#endif +#ifdef GL_TEXTURE_TOO_LARGE_EXT + case GL_TEXTURE_TOO_LARGE_EXT: e = "texture too large"; break; +#endif + default: + e = buf; sprintf (buf, "unknown GL error %d", (int) i); break; + } + __android_log_write(ANDROID_LOG_ERROR, "xscreensaver", e); +} +