From c0074cbf1299c03b94d59bda60a1672a758fc63a Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Thu, 5 Nov 2020 15:21:25 +0700 Subject: [PATCH] [AWT] try find reason not rendered --- .../main/java/net/kdt/pojavlaunch/AWTCanvasView.java | 11 ++++++++--- app/src/main/java/net/kdt/pojavlaunch/JREUtils.java | 2 +- app/src/main/jni/awt_bridge.c | 6 ++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java b/app/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java index 99483a280..4014780d8 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java +++ b/app/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java @@ -12,7 +12,7 @@ import org.lwjgl.glfw.*; public class AWTCanvasView extends View { private int mWidth, mHeight; - private TextPaint fpsPaint = new TextPaint(Color.WHITE); + private TextPaint fpsPaint; private boolean attached = false; // Temporary count fps https://stackoverflow.com/a/13729241 @@ -39,6 +39,10 @@ public class AWTCanvasView extends View { public AWTCanvasView(Context ctx, AttributeSet attrs) { super(ctx, attrs); setWillNotDraw(false); + + fpsPaint = new TextPaint(); + fpsPaint.setColor(Color.WHITE); + fpsPaint.setTextSize(20); } @Override @@ -48,6 +52,7 @@ public class AWTCanvasView extends View { // mRadius = (float) (Math.min(mWidth, mHeight) / 2 * 0.8); } + private boolean drawing = false; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); @@ -56,8 +61,8 @@ public class AWTCanvasView extends View { attached = CallbackBridge.nativeAttachThreadToOther(true, MainActivity.isInputStackCall); } if (attached) { - JREUtils.renderAWTScreenFrame(canvas, mWidth, mHeight); + drawing = JREUtils.renderAWTScreenFrame(canvas, mWidth, mHeight); } - canvas.drawText("FPS: " + fps(), 100, 100, fpsPaint); + canvas.drawText("FPS: " + fps() + ", drawing=" + drawing, 100, 100, fpsPaint); } } diff --git a/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java b/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java index caa9d7787..9faa819a7 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java +++ b/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java @@ -208,7 +208,7 @@ public class JREUtils public static native void setupBridgeWindow(Object surface); // TODO AWT Android port - public static native void renderAWTScreenFrame(Object canvas, int width, int height); + public static native boolean renderAWTScreenFrame(Object canvas, int width, int height); // BEFORE Load and execute PIE binary using dlopen and dlsym("main") // AFTER: [Deprecated] diff --git a/app/src/main/jni/awt_bridge.c b/app/src/main/jni/awt_bridge.c index 54c91e451..689ea0e28 100644 --- a/app/src/main/jni/awt_bridge.c +++ b/app/src/main/jni/awt_bridge.c @@ -5,8 +5,8 @@ // jmethodID method_awt; // TODO: check for memory leaks -JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_JREUtils_renderAWTScreenFrame(JNIEnv* env, jclass clazz, jobject canvas, jint width, jint height) { - if (runtimeJNIEnvPtr_ANDROID == NULL) return; +JNIEXPORT jboolean JNICALL Java_net_kdt_pojavlaunch_JREUtils_renderAWTScreenFrame(JNIEnv* env, jclass clazz, jobject canvas, jint width, jint height) { + if (runtimeJNIEnvPtr_ANDROID == NULL) return JNI_FALSE; int *rgbArray; jintArray jreRgbArray, androidRgbArray; @@ -40,5 +40,7 @@ JNIEXPORT void JNICALL Java_net_kdt_pojavlaunch_JREUtils_renderAWTScreenFrame(JN (*runtimeJNIEnvPtr_ANDROID)->ReleaseIntArrayElements(runtimeJNIEnvPtr_ANDROID, jreRgbArray, rgbArray, NULL); (*dalvikJNIEnvPtr_ANDROID)->DeleteLocalRef(dalvikJNIEnvPtr_ANDROID, androidRgbArray); // free(rgbArray); + + return JNI_TRUE; }