mirror of https://github.com/encounter/SDL.git
Fixed bug 3128 - Removing all the static variables from android SDLActivity and accompanying JNI calls.
owen I removed all the static variables from SDLActivity.java Updated all the SDL_android.c jni calls as well I added a new function to SDL_android.c/ h void Android_JNI_SeparateEventsHint(const char* c); This is called by SDL_androidtouch.c so that this TU doesn't need to call any JNI functions.
This commit is contained in:
parent
0a52db54bd
commit
c086251266
|
@ -181,6 +181,9 @@ static jmethodID midPollInputDevices;
|
||||||
static jmethodID midPollHapticDevices;
|
static jmethodID midPollHapticDevices;
|
||||||
static jmethodID midHapticRun;
|
static jmethodID midHapticRun;
|
||||||
|
|
||||||
|
/* static fields */
|
||||||
|
static jfieldID fidSeparateMouseAndTouch;
|
||||||
|
|
||||||
/* Accelerometer data storage */
|
/* Accelerometer data storage */
|
||||||
static float fLastAccelerometer[3];
|
static float fLastAccelerometer[3];
|
||||||
static SDL_bool bHasNewData;
|
static SDL_bool bHasNewData;
|
||||||
|
@ -253,6 +256,13 @@ JNIEXPORT void JNICALL SDL_Android_Init(JNIEnv* mEnv, jclass cls)
|
||||||
!midPollInputDevices || !midPollHapticDevices || !midHapticRun) {
|
!midPollInputDevices || !midPollHapticDevices || !midHapticRun) {
|
||||||
__android_log_print(ANDROID_LOG_WARN, "SDL", "SDL: Couldn't locate Java callbacks, check that they're named and typed correctly");
|
__android_log_print(ANDROID_LOG_WARN, "SDL", "SDL: Couldn't locate Java callbacks, check that they're named and typed correctly");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fidSeparateMouseAndTouch = (*mEnv)->GetStaticFieldID(mEnv, mActivityClass, "mSeparateMouseAndTouch", "Z");
|
||||||
|
|
||||||
|
if (!fidSeparateMouseAndTouch) {
|
||||||
|
__android_log_print(ANDROID_LOG_WARN, "SDL", "SDL: Couldn't locate Java static fields, check that they're named and typed correctly");
|
||||||
|
}
|
||||||
|
|
||||||
__android_log_print(ANDROID_LOG_INFO, "SDL", "SDL_Android_Init() finished!");
|
__android_log_print(ANDROID_LOG_INFO, "SDL", "SDL_Android_Init() finished!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -693,11 +703,6 @@ int Android_JNI_SetupThread(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
jclass Android_JNI_GetActivityClass(void)
|
|
||||||
{
|
|
||||||
return mActivityClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Audio support
|
* Audio support
|
||||||
*/
|
*/
|
||||||
|
@ -1590,6 +1595,13 @@ int Android_JNI_GetTouchDeviceIds(int **ids) {
|
||||||
return number;
|
return number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* sets the mSeparateMouseAndTouch field */
|
||||||
|
void Android_JNI_SetSeparateMouseAndTouch(SDL_bool new_value)
|
||||||
|
{
|
||||||
|
JNIEnv *env = Android_JNI_GetEnv();
|
||||||
|
(*env)->SetStaticBooleanField(env, mActivityClass, fidSeparateMouseAndTouch, new_value ? JNI_TRUE : JNI_FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
void Android_JNI_PollInputDevices(void)
|
void Android_JNI_PollInputDevices(void)
|
||||||
{
|
{
|
||||||
JNIEnv *env = Android_JNI_GetEnv();
|
JNIEnv *env = Android_JNI_GetEnv();
|
||||||
|
|
|
@ -76,12 +76,12 @@ void Android_JNI_SuspendScreenSaver(SDL_bool suspend);
|
||||||
|
|
||||||
/* Touch support */
|
/* Touch support */
|
||||||
int Android_JNI_GetTouchDeviceIds(int **ids);
|
int Android_JNI_GetTouchDeviceIds(int **ids);
|
||||||
|
void Android_JNI_SetSeparateMouseAndTouch(SDL_bool new_value);
|
||||||
|
|
||||||
/* Threads */
|
/* Threads */
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
JNIEnv *Android_JNI_GetEnv(void);
|
JNIEnv *Android_JNI_GetEnv(void);
|
||||||
int Android_JNI_SetupThread(void);
|
int Android_JNI_SetupThread(void);
|
||||||
jclass Android_JNI_GetActivityClass(void);
|
|
||||||
|
|
||||||
/* Generic messages */
|
/* Generic messages */
|
||||||
int Android_JNI_SendMessage(int command, int param);
|
int Android_JNI_SendMessage(int command, int param);
|
||||||
|
|
|
@ -56,12 +56,9 @@ static void
|
||||||
SeparateEventsHintWatcher(void *userdata, const char *name,
|
SeparateEventsHintWatcher(void *userdata, const char *name,
|
||||||
const char *oldValue, const char *newValue)
|
const char *oldValue, const char *newValue)
|
||||||
{
|
{
|
||||||
jclass mActivityClass = Android_JNI_GetActivityClass();
|
|
||||||
JNIEnv *env = Android_JNI_GetEnv();
|
|
||||||
jfieldID fid = (*env)->GetStaticFieldID(env, mActivityClass, "mSeparateMouseAndTouch", "Z");
|
|
||||||
|
|
||||||
separate_mouse_and_touch = (newValue && (SDL_strcmp(newValue, "1") == 0));
|
separate_mouse_and_touch = (newValue && (SDL_strcmp(newValue, "1") == 0));
|
||||||
(*env)->SetStaticBooleanField(env, mActivityClass, fid, separate_mouse_and_touch ? JNI_TRUE : JNI_FALSE);
|
|
||||||
|
Android_JNI_SetSeparateMouseAndTouch(separate_mouse_and_touch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Android_InitTouch(void)
|
void Android_InitTouch(void)
|
||||||
|
|
Loading…
Reference in New Issue