X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=android%2Fglue.c;fp=android%2Fglue.c;h=0000000000000000000000000000000000000000;hp=d794c358c476eae04b3b7cef8b59153d4ab7f586;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hpb=88cfe534a698a0562e81345957a50714af1453bc diff --git a/android/glue.c b/android/glue.c deleted file mode 100644 index d794c358..00000000 --- a/android/glue.c +++ /dev/null @@ -1,306 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include "screenhackI.h" -#include "jwzglesI.h" -#include "version.h" - -void drawXscreensaver(); - -int sWindowWidth = 0; -int sWindowHeight = 0; -int initTried = 0; -int renderTried = 0; -int resetTried = 0; -int currentFlip = 0; - -pthread_mutex_t mutg = PTHREAD_MUTEX_INITIALIZER; - -extern struct xscreensaver_function_table *xscreensaver_function_table; - -// if adding a table here, increase the magic number -struct xscreensaver_function_table -*hypertorus_xscreensaver_function_table, - *hilbert_xscreensaver_function_table, - *endgame_xscreensaver_function_table, - *stonerview_xscreensaver_function_table, - *sproingies_xscreensaver_function_table, - *blinkbox_xscreensaver_function_table, - *bouncingcow_xscreensaver_function_table, - *superquadrics_xscreensaver_function_table; - -struct running_hack { - struct xscreensaver_function_table *xsft; - Display *dpy; - Window window; - void *closure; -}; - -const char *progname; -const char *progclass; - -struct running_hack rh[8]; -// ^ magic number of hacks - TODO: remove magic number - - -int chosen; -// 0 superquadrics -// 1 stonerview -// 2 sproingies -// 3 hilbert - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeInit - (JNIEnv * env); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeResize - (JNIEnv * env, jobject thiz, jint w, jint h); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeRender - (JNIEnv * env); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeDone - (JNIEnv * env); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_SproingiesWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_SuperquadricsWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_HilbertWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_StonerviewWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key); -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_BouncingcowWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key); - - - -void doinit() -{ - - if (chosen == 0) { - progname = "superquadrics"; - rh[chosen].xsft = &superquadrics_xscreensaver_function_table; - } else if (chosen == 1) { - progname = "stonerview"; - rh[chosen].xsft = &stonerview_xscreensaver_function_table; - - } else if (chosen == 2) { - progname = "sproingies"; - rh[chosen].xsft = &sproingies_xscreensaver_function_table; - - } else if (chosen == 3) { - progname = "hilbert"; - rh[chosen].xsft = &hilbert_xscreensaver_function_table; - } else if (chosen == 4) { - progname = "bouncingcow"; - rh[chosen].xsft = &bouncingcow_xscreensaver_function_table; - } else { - progname = "sproingies"; - rh[chosen].xsft = &sproingies_xscreensaver_function_table; - } - - rh[chosen].dpy = jwxyz_make_display(0, 0); - rh[chosen].window = XRootWindow(rh[chosen].dpy, 0); -// TODO: Zero looks right, but double-check that is the right number - - progclass = rh[chosen].xsft->progclass; - - if (rh[chosen].xsft->setup_cb) - rh[chosen].xsft->setup_cb(rh[chosen].xsft, - rh[chosen].xsft->setup_arg); - - if (resetTried < 1) { - resetTried++; - jwzgles_reset(); - } - - void *(*init_cb) (Display *, Window, void *) = - (void *(*)(Display *, Window, void *)) rh[chosen].xsft->init_cb; - - rh[chosen].closure = - init_cb(rh[chosen].dpy, rh[chosen].window, - rh[chosen].xsft->setup_arg); - -} - - - -void drawXscreensaver() -{ - pthread_mutex_lock(&mutg); - rh[chosen].xsft->draw_cb(rh[chosen].dpy, rh[chosen].window, - rh[chosen].closure); - pthread_mutex_unlock(&mutg); - -} - - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeInit - (JNIEnv * env) { - - if (initTried < 1) { - initTried++; - } else { - if (!rh[chosen].dpy) { - doinit(); - } else { - rh[chosen].xsft->free_cb(rh[chosen].dpy, rh[chosen].window, - rh[chosen].closure); - jwxyz_free_display(rh[chosen].dpy); - rh[chosen].dpy = NULL; - rh[chosen].window = NULL; - if (!rh[chosen].dpy) { - doinit(); - } - - } - } - -} - - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeResize - (JNIEnv * env, jobject thiz, jint w, jint h) { - - sWindowWidth = w; - sWindowHeight = h; - - if (!rh[chosen].dpy) { - doinit(); - } - - jwxyz_window_resized(rh[chosen].dpy, rh[chosen].window, 0, 0, w, h, 0); - - rh[chosen].xsft->reshape_cb(rh[chosen].dpy, rh[chosen].window, - rh[chosen].closure, w, h); -} - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeRender - (JNIEnv * env) { - if (renderTried < 1) { - renderTried++; - } else { - drawXscreensaver(); - } -} - -// TODO: Check Java side is calling this properly -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_CallNative_nativeDone - (JNIEnv * env) { - - rh[chosen].xsft->free_cb(rh[chosen].dpy, rh[chosen].window, - rh[chosen].closure); - jwxyz_free_display(rh[chosen].dpy); - rh[chosen].dpy = NULL; - rh[chosen].window = NULL; - -} - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_HilbertWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key) { - - - const char *chack = (*env)->GetStringUTFChars(env, hackPref, NULL); - char *hck = (char *) chack; - const char *kchack = (*env)->GetStringUTFChars(env, key, NULL); - char *khck = (char *) kchack; - - if (draw == 2) { - setHilbertSettings(hck, khck); - } - - chosen = 3; -} - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_SuperquadricsWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key) { - - const char *chack = (*env)->GetStringUTFChars(env, hackPref, NULL); - char *hck = (char *) chack; - - const char *kchack = (*env)->GetStringUTFChars(env, key, NULL); - char *khck = (char *) kchack; - - if (draw == 2) { - setSuperquadricsSettings(hck, khck); - } - - chosen = 0; -} - - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_SproingiesWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key) { - - const char *chack = (*env)->GetStringUTFChars(env, hackPref, NULL); - char *hck = (char *) chack; - - const char *kchack = (*env)->GetStringUTFChars(env, key, NULL); - char *khck = (char *) kchack; - - if (draw == 2) { - setSproingiesSettings(hck, khck); - } - - chosen = 2; -} - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_StonerviewWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key) { - - const char *chack = (*env)->GetStringUTFChars(env, hackPref, NULL); - char *hck = (char *) chack; - const char *kchack = (*env)->GetStringUTFChars(env, key, NULL); - char *khck = (char *) kchack; - - if (draw == 2) { - setStonerviewSettings(hck, khck); - } - - chosen = 1; -} - -JNIEXPORT void JNICALL - Java_org_jwz_xscreensaver_gen_BouncingcowWallpaper_allnativeSettings - (JNIEnv * env, jobject thiz, jstring jhack, jstring hackPref, - jint draw, jstring key) { - - const char *chack = (*env)->GetStringUTFChars(env, hackPref, NULL); - char *hck = (char *) chack; - const char *kchack = (*env)->GetStringUTFChars(env, key, NULL); - char *khck = (char *) kchack; - - if (draw == 2) { - setBouncingcowSettings(hck, khck); - } - - chosen = 4; -} -