From e9da61411a6f1c993d528b659ebb3e5147aa44cc Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Wed, 2 Jul 2014 00:09:36 -0300 Subject: Fixed Bugs & Joypad in Android ================================ -resolved many graphical glitches with multiple lights in GLES2 render -fixes and WIP apk expansion -joystick support for Android by Ariel --- platform/android/java_glue.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'platform/android/java_glue.cpp') diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp index b9e13892d..5c39cdbac 100644 --- a/platform/android/java_glue.cpp +++ b/platform/android/java_glue.cpp @@ -581,6 +581,8 @@ static Vector3 accelerometer; static HashMap jni_singletons; static jobject godot_io; +static Vector joy_device_ids; + typedef void (*GFXInitFunc)(void *ud,bool gl2); static jmethodID _on_video_init=0; @@ -1279,6 +1281,49 @@ static unsigned int android_get_keysym(unsigned int p_code) { return KEY_UNKNOWN; } +static int find_device(int p_device) { + + for (int i=0; ilock(); + key_events.push_back(ievent); + input_mutex->unlock(); +}; + +JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_joyaxis(JNIEnv * env, jobject obj, jint p_device, jint p_axis, jfloat p_value) { + + InputEvent ievent; + ievent.type = InputEvent::JOYSTICK_MOTION; + ievent.device = find_device(p_device); + ievent.joy_motion.axis = p_axis; + ievent.joy_motion.axis_value = p_value; + + input_mutex->lock(); + key_events.push_back(ievent); + input_mutex->unlock(); +}; + + JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_key(JNIEnv * env, jobject obj, jint p_scancode, jint p_unicode_char, jboolean p_pressed) { InputEvent ievent; -- cgit v1.2.3-70-g09d2