diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2024-07-24 22:57:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-24 22:57:06 +0200 |
commit | ab80e564b218ed5dd80a04162ff92d267e9d7282 (patch) | |
tree | cb3ed42af3394f691982fd703ef609fbe29ef207 /platform/android/java_godot_wrapper.cpp | |
parent | d3427dcd0fba24105ec54d5252b19ae0af9800b8 (diff) | |
parent | 4d0da7401412edaba475de33d42a73ba8ca82cd3 (diff) | |
download | redot-engine-ab80e564b218ed5dd80a04162ff92d267e9d7282.tar.gz |
Merge pull request #94661 from m4gr3d/fix_android_render_thread_cleanup
Fix the cleanup logic for the Android render thread
Diffstat (limited to 'platform/android/java_godot_wrapper.cpp')
-rw-r--r-- | platform/android/java_godot_wrapper.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/platform/android/java_godot_wrapper.cpp b/platform/android/java_godot_wrapper.cpp index 6e7f5ef5a1..70ea4b09c1 100644 --- a/platform/android/java_godot_wrapper.cpp +++ b/platform/android/java_godot_wrapper.cpp @@ -76,6 +76,7 @@ GodotJavaWrapper::GodotJavaWrapper(JNIEnv *p_env, jobject p_activity, jobject p_ _get_input_fallback_mapping = p_env->GetMethodID(godot_class, "getInputFallbackMapping", "()Ljava/lang/String;"); _on_godot_setup_completed = p_env->GetMethodID(godot_class, "onGodotSetupCompleted", "()V"); _on_godot_main_loop_started = p_env->GetMethodID(godot_class, "onGodotMainLoopStarted", "()V"); + _on_godot_terminating = p_env->GetMethodID(godot_class, "onGodotTerminating", "()V"); _create_new_godot_instance = p_env->GetMethodID(godot_class, "createNewGodotInstance", "([Ljava/lang/String;)I"); _get_render_view = p_env->GetMethodID(godot_class, "getRenderView", "()Lorg/godotengine/godot/GodotRenderView;"); _begin_benchmark_measure = p_env->GetMethodID(godot_class, "nativeBeginBenchmarkMeasure", "(Ljava/lang/String;Ljava/lang/String;)V"); @@ -136,6 +137,16 @@ void GodotJavaWrapper::on_godot_main_loop_started(JNIEnv *p_env) { } } +void GodotJavaWrapper::on_godot_terminating(JNIEnv *p_env) { + if (_on_godot_terminating) { + if (p_env == nullptr) { + p_env = get_jni_env(); + } + ERR_FAIL_NULL(p_env); + p_env->CallVoidMethod(godot_instance, _on_godot_terminating); + } +} + void GodotJavaWrapper::restart(JNIEnv *p_env) { if (_restart) { if (p_env == nullptr) { |