diff options
| author | Ruslan Mustakov | 2017-08-18 21:17:35 +0700 |
|---|---|---|
| committer | Ruslan Mustakov | 2017-08-30 18:14:19 +0700 |
| commit | 5ccdeccb6ed6b8480a86b0db36f192526cba1274 (patch) | |
| tree | eafb890997ee985210b66272957aa22ad00df125 /platform/android/java_glue.h | |
| parent | 8b9026c05e9982a7bc0c7f52776ad74276b90252 (diff) | |
| download | godot-5ccdeccb6ed6b8480a86b0db36f192526cba1274.tar.gz godot-5ccdeccb6ed6b8480a86b0db36f192526cba1274.tar.zst godot-5ccdeccb6ed6b8480a86b0db36f192526cba1274.zip | |
Make GDNative work on Android
The changes include work done to ensure that GDNative apps and Nim
integration specifically can run on Android. The changes have been
tested on our WIP game, which uses godot-nim and depends on several
third-party .so libs, and Platformer demo to ensure nothing got broken.
- .so libraries are exported to lib/ folder in .apk, instead of assets/,
because that's where Android expects them to be and it resolves the
library name into "lib/<ABI>/<name>", where <ABI> is the ABI matching
the current device. So we establish the convention that Android .so
files in the project must be located in the folder corresponding to
the ABI they were compiled for.
- Godot callbacks (event handlers) are now called from the same thread
from which Main::iteration is called. It is also what Godot now
considers to be the main thread, because Main::setup is also called
from there. This makes threading on Android more consistent with
other platforms, making the code that depends on Thread::get_main_id
more portable (GDNative has such code).
- Sizes of GDNative API types have been fixed to work on 32-bit
platforms.
Diffstat (limited to 'platform/android/java_glue.h')
| -rw-r--r-- | platform/android/java_glue.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/platform/android/java_glue.h b/platform/android/java_glue.h index 64970040f..ec8ae9a0a 100644 --- a/platform/android/java_glue.h +++ b/platform/android/java_glue.h @@ -36,7 +36,8 @@ #include <jni.h> extern "C" { -JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *env, jobject obj, jobject activity, jboolean p_need_reload_hook, jobjectArray p_cmdline, jobject p_asset_manager); +JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *env, jobject obj, jobject activity, jboolean p_need_reload_hook, jobject p_asset_manager, jboolean p_use_apk_expansion); +JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setup(JNIEnv *env, jobject obj, jobjectArray p_cmdline); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_resize(JNIEnv *env, jobject obj, jint width, jint height, jboolean reload); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_newcontext(JNIEnv *env, jobject obj, bool p_32_bits); JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, jobject obj); |
