Attempt: invoke UIApplicationMain from java

This commit is contained in:
Duy Tran Khanh committed 2021-01-01 11:26:35 +07:00
1 parent d2ec05c549
commit df74ea2ce7
10 files changed
+16 -22

No files matched your search

+1 -1
View File
@@ -52,7 +52,7 @@ jobs:
- name: Sign and Package IPA
run: |
mkdir -p packages/pojavlauncher_iphoneos-arm/{DEBIAN,Applications,var/lib/pojavlauncher}
mkdir -p packages/pojavlauncher_iphoneos-arm/{DEBIAN,Applications,var/mobile/Documents/minecraft}
cp -R Natives/build/Release-iphoneos/PojavLauncher.app packages/pojavlauncher_iphoneos-arm/Applications
cp control packages/pojavlauncher_iphoneos-arm/DEBIAN
ldid -Sentitlements.xml packages/pojavlauncher_iphoneos-arm/Applications/PojavLauncher.app
@@ -1,8 +1,7 @@
package net.kdt.pojavlaunch;
import java.io.*;
import javafx.application.Application;
import java.util.Arrays;
import org.lwjgl.glfw.CallbackBridge;
/*
@@ -77,8 +76,9 @@ public class PLaunchApp /* extends UIApplicationDelegateAdapter */ {
}
*/
System.out.println("Input args: " + Arrays.toString(args));
System.out.println("We are on java now! Starting UI...");
launchUI();
org.lwjgl.glfw.CallbackBridge.nativeLaunchUI(args);
LauncherPreferences.loadPreferences();
@@ -122,6 +122,4 @@ public class PLaunchApp /* extends UIApplicationDelegateAdapter */ {
Tools.showError(th);
}
}
public static native void launchUI();
}
@@ -161,6 +161,7 @@ public class CallbackBridge {
private static native void nativeSendScreenSize(int width, int height);
public static native boolean nativeIsGrabbing();
public static native void nativeLaunchUI(String[] uiArgs);
static {
System.loadLibrary("pojavexec");
+1
View File
@@ -14,6 +14,7 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"Hello from app launch!");
// TODO callback
return YES;
+2 -2
View File
@@ -4,7 +4,7 @@ project(PojavLauncher)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_C_FLAGS "-x objective-c")
add_executable(PojavLauncher main.c AppDelegate.m UILauncher.m JavaLauncher.c)
add_executable(PojavLauncher main.c JavaLauncher.c)
target_link_libraries(PojavLauncher
"-framework UIKit"
)
@@ -14,7 +14,7 @@ set_target_properties(PojavLauncher PROPERTIES
MACOSX_FRAMEWORK_IDENTIFIER org.cmake.ExecutableTarget
MACOSX_BUNDLE_INFO_PLIST "../Info.plist")
add_library(pojavexec SHARED egl_bridge_ios.m egl_bridge.c input_bridge_v3.c utils.c)
add_library(pojavexec SHARED AppDelegate.m UILauncher.m egl_bridge_ios.m egl_bridge.c input_bridge_v3.c utils.c)
target_link_libraries(pojavexec
"-framework OpenGLES"
)
-5
View File
@@ -49,7 +49,6 @@ void append(char* s, char* c) {
int launchJVM(int argc, char *argv[]) {
printf("Beginning JVM launch\n");
mkdir("/var/mobile/Documents/minecraft", 0700);
char *args_path = "/var/mobile/Documents/minecraft/overrideargs.txt";
char *log_path = "/var/mobile/Documents/minecraft/latestlog.txt";
char *main_jar = "/Applications/PojavLauncher.app/launcher.jar";
@@ -125,7 +124,3 @@ int launchJVM(int argc, char *argv[]) {
(const_jargs != NULL) ? JNI_TRUE : JNI_FALSE,
const_cpwildcard, const_javaw, const_ergo_class);
}
JNIEXPORT jint JNICALL Java_net_kdt_pojavlaunch_PLaunchApp_launchUI(JNIEnv* env, jclass clazz) {
return launchUI();
}
-3
View File
@@ -2,8 +2,5 @@
static bool started = false;
static int first_argc;
static char *first_argv[];
int launchJVM(int argc, char *argv[]);
int launchUI();
+2 -2
View File
@@ -7,8 +7,8 @@
#include "JavaLauncher.h"
int launchUI() {
int launchUI(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(first_argc, first_argv, nil, NSStringFromClass([AppDelegate class]));
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
+6
View File
@@ -170,6 +170,12 @@ void closeGLFWWindow() {
exit(-1);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeLaunchUI(JNIEnv* env, jclass clazz, jstringArr args) {
int argc = (*env)->GetArrayLength(env, jstringArray);
char **argv = convert_to_char_array(env, args);
return launchUI(argc, argv);
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeAttachThreadToOther(JNIEnv* env, jclass clazz, jboolean isAndroid, jboolean isUseStackQueueBool) {
#ifdef DEBUG
LOGD("Debug: JNI attaching thread, isUseStackQueue=%d\n", isUseStackQueue);
-4
View File
@@ -1,9 +1,5 @@
#include "JavaLauncher.h"
int main(int argc, char * argv[]) {
if (!started) {
first_argc = argc;
first_argv = argv;
}
launchJVM(argc, argv);
}