WarpPI/src/org/warp/engine/lwjgl/GLFWUtil.java

48 lines
1.2 KiB
Java

package org.warp.engine.lwjgl;
import org.lwjgl.glfw.GLFWFramebufferSizeCallbackI;
import org.lwjgl.glfw.GLFWWindowSizeCallbackI;
import org.lwjgl.system.MemoryStack;
import java.nio.IntBuffer;
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.system.MemoryStack.*;
/** GLFW demo utilities. */
public final class GLFWUtil {
private GLFWUtil() {
}
/**
* Invokes the specified callbacks using the current window and framebuffer sizes of the specified GLFW window.
*
* @param window the GLFW window
* @param windowSizeCB the window size callback, may be null
* @param framebufferSizeCB the framebuffer size callback, may be null
*/
public static void glfwInvoke(
long window,
GLFWWindowSizeCallbackI windowSizeCB,
GLFWFramebufferSizeCallbackI framebufferSizeCB
) {
try ( MemoryStack stack = stackPush() ) {
IntBuffer w = stack.mallocInt(1);
IntBuffer h = stack.mallocInt(1);
if ( windowSizeCB != null ) {
glfwGetWindowSize(window, w, h);
windowSizeCB.invoke(window, w.get(0), h.get(0));
}
if ( framebufferSizeCB != null ) {
glfwGetFramebufferSize(window, w, h);
framebufferSizeCB.invoke(window, w.get(0), h.get(0));
}
}
}
}