From 89d47206feb56fefd492cdfa8ec169dc8d10ce97 Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh <40482367+khanhduytran0@users.noreply.github.com> Date: Thu, 18 Feb 2021 17:20:12 +0700 Subject: [PATCH] Make the returned fb/window callback never null --- .../src/main/java/org/lwjgl/glfw/GLFW.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java index 2aec369c..a564c59c 100644 --- a/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java +++ b/JavaApp/src/main/java/org/lwjgl/glfw/GLFW.java @@ -545,14 +545,6 @@ public class GLFW } catch (IllegalAccessException e) { // This will never happend since this is accessing itself } - - // Fix Forge init crashes - mGLFWFramebufferSizeCallback = new GLFWFramebufferSizeCallback() { - @Override public void invoke(long window, int width, int height) {}; - }; - mGLFWWindowSizeCallback = new GLFWWindowSizeCallback() { - @Override public void invoke(long window, int width, int height) {}; - }; } private static native long nativeEglGetCurrentContext(); @@ -674,12 +666,15 @@ 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); + } else { + mGLFWFramebufferSizeCallback = new GLFWFramebufferSizeCallback() { + @Override public void invoke(long window, int width, int height) {}; + }; } - return lastCallback; + return mGLFWFramebufferSizeCallback; } public static GLFWJoystickCallback glfwSetJoystickCallback(/* @NativeType("GLFWwindow *") long window, */ @Nullable @NativeType("GLFWjoystickfun") GLFWJoystickCallbackI cbfun) { @@ -762,12 +757,15 @@ 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); + } else { + mGLFWWindowSizeCallback = new GLFWWindowSizeCallback() { + @Override public void invoke(long window, int width, int height) {}; + }; } - return lastCallback; + return mGLFWFramebufferSizeCallback; } static boolean isGLFWReady; public static boolean glfwInit() {