From a52d6228ce583a0ecc324bfed10c8bf85e49c3cd Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh <40482367+khanhduytran0@users.noreply.github.com> Date: Thu, 18 Feb 2021 16:57:27 +0700 Subject: [PATCH] Initial FramebufferSizeCallback: fix Forge error --- .../src/main/java/org/lwjgl/glfw/GLFW.java | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java index 676e94d8..90bcfb34 100644 --- a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java +++ b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java @@ -546,20 +546,10 @@ public class GLFW // This will never happend since this is accessing itself } - /* - mGLFWMonitorCallback = new GLFWMonitorCallback(){ - - // Fake one!!! - @Override - public void free() {} - - @Override - public void callback(long args) { - // TODO: Implement this method - } - }; - */ - } + // Fix Forge init crashes + mGLFWFramebufferSizeCallback = new GLFWFramebufferSizeCallback() -> (window, width, height) {}; + mGLFWWindowSizeCallback = new GLFWWindowSizeCallback() -> (window, width, height) {}; + } private static native long nativeEglGetCurrentContext(); private static native boolean nativeEglInit(); @@ -680,11 +670,12 @@ public class GLFW } public static GLFWFramebufferSizeCallback glfwSetFramebufferSizeCallback(@NativeType("GLFWwindow *") long window, @Nullable @NativeType("GLFWframebuffersizefun") GLFWFramebufferSizeCallbackI cbfun) { + GLFWFramebufferSizeCallback lastCallback = mGLFWFramebufferSizeCallback; mGLFWFramebufferSizeCallback = GLFWFramebufferSizeCallback.createSafe(nglfwSetFramebufferSizeCallback(window, memAddressSafe(cbfun))); if (mGLFWFramebufferSizeCallback != null) { mGLFWFramebufferSizeCallback.invoke(window, mGLFWWindowWidth, mGLFWWindowHeight); } - return mGLFWFramebufferSizeCallback; + return lastCallback; } public static GLFWJoystickCallback glfwSetJoystickCallback(/* @NativeType("GLFWwindow *") long window, */ @Nullable @NativeType("GLFWjoystickfun") GLFWJoystickCallbackI cbfun) { @@ -767,11 +758,12 @@ public class GLFW } public static GLFWWindowSizeCallback glfwSetWindowSizeCallback(@NativeType("GLFWwindow *") long window, @Nullable @NativeType("GLFWwindowsizefun") GLFWWindowSizeCallbackI cbfun) { + GLFWWindowSizeCallback lastCallback = mGLFWWindowSizeCallback; mGLFWWindowSizeCallback = GLFWWindowSizeCallback.createSafe(nglfwSetWindowSizeCallback(window, memAddressSafe(cbfun))); if (mGLFWWindowSizeCallback != null) { mGLFWWindowSizeCallback.invoke(window, mGLFWWindowWidth, mGLFWWindowHeight); } - return mGLFWWindowSizeCallback; + return lastCallback; } static boolean isGLFWReady; public static boolean glfwInit() {