123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "thread_jandroid.h"
- #include "core/os/thread.h"
- #include <android/log.h>
- static JavaVM *java_vm = nullptr;
- static thread_local JNIEnv *env = nullptr;
- static void init_thread() {
- if (env) {
-
- return;
- }
- java_vm->AttachCurrentThread(&env, nullptr);
- }
- static void term_thread() {
- java_vm->DetachCurrentThread();
-
- env = nullptr;
- }
- void init_thread_jandroid(JavaVM *p_jvm, JNIEnv *p_env) {
- java_vm = p_jvm;
- env = p_env;
- Thread::_set_platform_functions({ .init = init_thread, .term = &term_thread });
- }
- void setup_android_thread() {
- if (!env) {
-
- init_thread();
- }
- }
- JNIEnv *get_jni_env() {
- if (!env) {
-
- init_thread();
- }
- return env;
- }
|