48 lines
1.2 KiB
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));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|