From cf8a5609c0461ad3e0b8ae66bcad2aa0dab1f84c Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh Date: Sun, 14 Aug 2022 09:05:17 +0700 Subject: [PATCH 1/2] Fixes a crash that could occur with Java 17 Additional change: added increased-memory-limit entitlement for iOS 15 --- JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java | 7 ++----- entitlements.xml | 2 ++ entitlements_ipa.xml | 2 ++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java index ec7d95ee..fb5e4de4 100644 --- a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java +++ b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java @@ -893,13 +893,10 @@ public class GLFW public static GLFWVidMode.Buffer glfwGetVideoModes(@NativeType("GLFWmonitor *") long monitor) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); - IntBuffer count = stack.callocInt(1); try { // long __result = nglfwGetVideoModes(monitor, memAddress(count)); - long __result = memAddress(stack.callocLong(1)); - GLFWVidMode.Buffer buffer = GLFWVidMode.createSafe(__result, 1); - buffer.put(glfwGetVideoMode(monitor)); - return buffer; + long __result = glfwGetVideoMode(monitor).address(); + return GLFWVidMode.createSafe(__result, 1);; } finally { stack.setPointer(stackPointer); } diff --git a/entitlements.xml b/entitlements.xml index c8e31eec..0f64cd0b 100644 --- a/entitlements.xml +++ b/entitlements.xml @@ -3,6 +3,8 @@ com.apple.developer.kernel.extended-virtual-addressing + com.apple.developer.kernel.increased-memory-limit + com.apple.private.security.container-required com.apple.security.exception.files.absolute-path.read-write diff --git a/entitlements_ipa.xml b/entitlements_ipa.xml index ee86639e..07b923f1 100644 --- a/entitlements_ipa.xml +++ b/entitlements_ipa.xml @@ -3,5 +3,7 @@ com.apple.developer.kernel.extended-virtual-addressing + com.apple.developer.kernel.increased-memory-limit + From 10aa3d07e87c3ee8d0fb709ca2a831b25a206592 Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh Date: Sun, 14 Aug 2022 09:12:19 +0700 Subject: [PATCH 2/2] Simplify scrollPanGesture handling --- JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java | 2 +- Natives/SurfaceViewController.m | 1 + Natives/input_bridge_v3.m | 6 ++---- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java index fb5e4de4..0de30691 100644 --- a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java +++ b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java @@ -896,7 +896,7 @@ public class GLFW try { // long __result = nglfwGetVideoModes(monitor, memAddress(count)); long __result = glfwGetVideoMode(monitor).address(); - return GLFWVidMode.createSafe(__result, 1);; + return GLFWVidMode.createSafe(__result, 1); } finally { stack.setPointer(stackPointer); } diff --git a/Natives/SurfaceViewController.m b/Natives/SurfaceViewController.m index acf53ba5..bb5d1477 100644 --- a/Natives/SurfaceViewController.m +++ b/Natives/SurfaceViewController.m @@ -310,6 +310,7 @@ self.view.frame.size.width * 0.3 - 36.0 * 0.7, self.view.frame.size.height)]; self.scrollPanGesture.delegate = self; self.scrollPanGesture.minimumNumberOfTouches = 2; self.scrollPanGesture.maximumNumberOfTouches = 2; + [self.surfaceView addGestureRecognizer:self.scrollPanGesture]; if (@available(iOS 13.4, *)) { [self.surfaceView addInteraction:[[UIPointerInteraction alloc] initWithDelegate:self]]; diff --git a/Natives/input_bridge_v3.m b/Natives/input_bridge_v3.m index 9c07d602..d6dc7244 100644 --- a/Natives/input_bridge_v3.m +++ b/Natives/input_bridge_v3.m @@ -275,13 +275,11 @@ JNIEXPORT void JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeSetGrabbing(JNIE CGFloat screenScale = [[UIScreen mainScreen] scale] * resolutionScale; callback_SurfaceViewController_onTouch(ACTION_DOWN, lastVirtualMousePoint.x * screenScale, lastVirtualMousePoint.y * screenScale); ((SurfaceViewController *)currentVC()).mousePointerView.frame = virtualMouseFrame; - [surfaceView removeGestureRecognizer:((SurfaceViewController *)currentVC()).scrollPanGesture]; - } else { - [surfaceView addGestureRecognizer:((SurfaceViewController *)currentVC()).scrollPanGesture]; } + ((SurfaceViewController *)currentVC()).scrollPanGesture.enabled = !isGrabbing; ((SurfaceViewController *)currentVC()).mousePointerView.hidden = isGrabbing || !virtualMouseEnabled; if(@available(iOS 14.0, *)) { - [currentVC() setNeedsUpdateOfPrefersPointerLocked]; + [(SurfaceViewController *)currentVC() setNeedsUpdateOfPrefersPointerLocked]; } }); }