mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-19 01:27:18 -04:00
Make awt_bridge a separate lib
This commit is contained in:
parent
18823441b7
commit
4f23a9e363
@ -312,5 +312,6 @@ public class JREUtils
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
System.loadLibrary("pojavexec");
|
System.loadLibrary("pojavexec");
|
||||||
|
System.loadLibrary("pojavexec_awt");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,13 +14,18 @@ LOCAL_MODULE := pojavexec
|
|||||||
# LOCAL_CFLAGS += -DDEBUG
|
# LOCAL_CFLAGS += -DDEBUG
|
||||||
# -DGLES_TEST
|
# -DGLES_TEST
|
||||||
LOCAL_SRC_FILES := \
|
LOCAL_SRC_FILES := \
|
||||||
awt_bridge.c \
|
|
||||||
egl_bridge.c \
|
egl_bridge.c \
|
||||||
input_bridge_v3.c \
|
input_bridge_v3.c \
|
||||||
jre_launcher.c \
|
jre_launcher.c \
|
||||||
utils.c
|
utils.c
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := pojavexec_awt
|
||||||
|
LOCAL_SRC_FILES := \
|
||||||
|
awt_bridge.c
|
||||||
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
# Helper to get current thread
|
# Helper to get current thread
|
||||||
# include $(CLEAR_VARS)
|
# include $(CLEAR_VARS)
|
||||||
# LOCAL_MODULE := thread64helper
|
# LOCAL_MODULE := thread64helper
|
||||||
|
@ -1,20 +1,43 @@
|
|||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "log.h"
|
static JavaVM* dalvikJavaVMPtr;
|
||||||
#include "utils.h"
|
static JNIEnv* dalvikJNIEnvPtr_ANDROID;
|
||||||
|
static JNIEnv* dalvikJNIEnvPtr_JRE;
|
||||||
|
|
||||||
// jclass class_awt;
|
static JavaVM* runtimeJavaVMPtr;
|
||||||
// jmethodID method_awt;
|
static JNIEnv* runtimeJNIEnvPtr_ANDROID;
|
||||||
|
static JNIEnv* runtimeJNIEnvPtr_JRE;
|
||||||
|
|
||||||
|
jint JNI_OnLoad(JavaVM* vm, void* reserved) {
|
||||||
|
if (dalvikJavaVMPtr == NULL) {
|
||||||
|
//Save dalvik global JavaVM pointer
|
||||||
|
dalvikJavaVMPtr = vm;
|
||||||
|
(*vm)->GetEnv(vm, (void**) &dalvikJNIEnvPtr_ANDROID, JNI_VERSION_1_4);
|
||||||
|
|
||||||
|
isUseStackQueueCall = JNI_FALSE;
|
||||||
|
} else if (dalvikJavaVMPtr != vm) {
|
||||||
|
runtimeJavaVMPtr = vm;
|
||||||
|
(*vm)->GetEnv(vm, (void**) &runtimeJNIEnvPtr_JRE, JNI_VERSION_1_4);
|
||||||
|
}
|
||||||
|
|
||||||
|
isGrabbing = JNI_FALSE;
|
||||||
|
|
||||||
|
return JNI_VERSION_1_4;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: check for memory leaks
|
// TODO: check for memory leaks
|
||||||
// int printed = 0;
|
// int printed = 0;
|
||||||
|
int threadAttached = 0;
|
||||||
JNIEXPORT jintArray JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_renderAWTScreenFrame(JNIEnv* env, jclass clazz /*, jobject canvas, jint width, jint height */) {
|
JNIEXPORT jintArray JNICALL Java_net_kdt_pojavlaunch_utils_JREUtils_renderAWTScreenFrame(JNIEnv* env, jclass clazz /*, jobject canvas, jint width, jint height */) {
|
||||||
if (runtimeJNIEnvPtr_ANDROID == NULL) {
|
if (runtimeJNIEnvPtr_ANDROID == NULL) {
|
||||||
if (runtimeJavaVMPtr == NULL) {
|
if (runtimeJavaVMPtr == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
(*runtimeJavaVMPtr)->AttachCurrentThread(runtimeJavaVMPtr, &runtimeJNIEnvPtr_ANDROID, NULL);
|
if (threadAttached == 0) {
|
||||||
|
(*runtimeJavaVMPtr)->AttachCurrentThread(runtimeJavaVMPtr, &runtimeJNIEnvPtr_ANDROID, NULL);
|
||||||
|
threadAttached = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user