Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //this function loads are java helper class, which provides us
- //with needed functionality from the android OS.
- int enterOuterspace()
- {
- // Ready are JNI interface.
- ANativeActivity* activity = __state->activity;
- JavaVM* jvm = __state->activity->vm;
- JNIEnv* env = NULL;
- jvm->GetEnv((void **)&env, JNI_VERSION_1_6);
- jint res = jvm->AttachCurrentThread(&env, NULL);
- if (res == JNI_ERR)
- {
- GP_ERROR("Failed to retrieve JVM environment when entering message pump.");
- return -1;
- }
- GP_ASSERT(env);
- //Lets get an application context object using a special little trick.
- jclass activityClass = env->FindClass("android/app/NativeActivity");
- GP_ASSERT(activityClass);
- jmethodID getClassLoader = env->GetMethodID(activityClass,"getClassLoader",
- "()Ljava/lang/ClassLoader;");
- GP_ASSERT(getClassLoader);
- jobject cls = env->CallObjectMethod(__state->activity->clazz, getClassLoader);
- GP_ASSERT(cls);
- jclass classLoader = env->FindClass("java/lang/ClassLoader");
- GP_ASSERT(classLoader);
- jmethodID findClass = env->GetMethodID(classLoader, "loadClass",
- "(Ljava/lang/String;)Ljava/lang/Class;");
- GP_ASSERT(findClass)
- jmethodID contextMethod = env->GetMethodID(activityClass, "getApplicationContext",
- "()Landroid/content/Context;");
- GP_ASSERT(contextMethod);
- jobject contextObj = env->CallObjectMethod(__state->activity->clazz, contextMethod);
- GP_ASSERT(contextObj);
- //We now call are java helper class methods.
- jclass classHelper = env->FindClass("org/community/combat/engine/Gameplay3DHelper");
- if(classHelper == 0)
- {
- print("Can't' Find Class! : org/community/combat/engine/Gameplay3DHelper");
- GP_ASSERT();
- }
- jmethodID methodHelperConstructor = env->GetMethodID(classHelper, "setupControllerAgent", "(android/content/Context)V");
- if (methodHelperConstructor == NULL)
- {
- print("Can't Find MethodID! : setupControllerAgent");
- GP_ASSERT();
- }
- env->CallVoidMethod(classHelper, methodHelperConstructor,contextObj);
- GP_ASSERT(helperObject);
- jvm->DetachCurrentThread();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement