Move UIKit stuff to separate java class

This commit is contained in:
Duy Tran Khanh committed 2021-01-30 05:23:09 +07:00
1 parent 7eef602fae
commit e96db799c4
11 files changed
+99 -50

No files matched your search

@@ -8,6 +8,7 @@ import javafx.application.Application;
import org.lwjgl.glfw.CallbackBridge;
import net.kdt.pojavlaunch.prefs.*;
import net.kdt.pojavlaunch.uikit.*;
import net.kdt.pojavlaunch.utils.*;
import net.kdt.pojavlaunch.value.*;
@@ -29,7 +30,7 @@ public class PLaunchApp {
if (args[0].startsWith("/Applications/")) {
System.out.println("We are on java now! Starting UI...");
org.lwjgl.glfw.CallbackBridge.nativeLaunchUI(args);
UIKit.launchUI(args);
} else {
launchMinecraft();
}
@@ -0,0 +1,46 @@
package net.kdt.pojavlaunch.uikit;
import org.lwjgl.glfw.*;
public class UIKit {
static {
System.loadLibrary("pojavexec");
}
public static native int launchUI(String[] uiArgs);
public static native void runOnUIThread(UIKitCallback callback);
public static void callback_AppDelegate_didFinishLaunching(int width, int height) {
GLFW.mGLFWWindowWidth = CallbackBridge.width;
GLFW.mGLFWWindowHeight = CallbackBridge.height;
CallbackBridge.mouseX = CallbackBridge.width / 2;
CallbackBridge.mouseY = height / 2;
net.kdt.pojavlaunch.PLaunchApp.applicationDidFinishLaunching();
}
public static void callback_SurfaceViewController_onTouch(int event, int x, int y) {
switch (event) {
case ACTION_DOWN:
case ACTION_UP:
CallbackBridge.mouseLastX = x;
CallbackBridge.mouseLastY = y;
break;
case ACTION_MOVE:
if (GLFW.mGLFWIsGrabbing) {
CallbackBridge.mouseX += x - CallbackBridge.mouseLastX;
CallbackBridge.mouseY += y - CallbackBridge.mouseLastY;
CallbackBridge.mouseLastX = CallbackBridge.x;
CallbackBridge.mouseLastY = CallbackBridge.y;
} else {
CallbackBridge.mouseX = CallbackBridge.x;
CallbackBridge.mouseY = CallbackBridge.y;
}
break;
}
sendCursorPos(CallbackBridge.mouseX, CallbackBridge.mouseY);
}
}
@@ -0,0 +1,5 @@
package net.kdt.pojavlaunch.uikit;
public interface UIKitCallback {
public void onCallback();
}
@@ -47,41 +47,6 @@ public class CallbackBridge {
public static boolean mouseLeft;
public static StringBuilder DEBUG_STRING = new StringBuilder();
public static native void nativeLaunchUI(String[] uiArgs);
public static void callback_AppDelegate_didFinishLaunching(int width, int height) {
GLFW.mGLFWWindowWidth = width;
GLFW.mGLFWWindowHeight = height;
mouseX = width / 2;
mouseY = height / 2;
net.kdt.pojavlaunch.PLaunchApp.applicationDidFinishLaunching();
}
public static void callback_SurfaceViewController_onTouch(int event, int x, int y) {
switch (event) {
case ACTION_DOWN:
case ACTION_UP:
mouseLastX = x;
mouseLastY = y;
break;
case ACTION_MOVE:
if (GLFW.mGLFWIsGrabbing) {
mouseX += x - mouseLastX;
mouseY += y - mouseLastY;
mouseLastX = x;
mouseLastY = y;
} else {
mouseX = x;
mouseY = y;
}
break;
}
sendCursorPos(mouseX, mouseY);
}
public static boolean nativeIsGrabbing() {
return GLFW.mGLFWIsGrabbing;
}