package com.javamarcher.input; import static org.lwjgl.glfw.GLFW.glfwGetCursorPos; import java.nio.DoubleBuffer; import org.joml.Vector2f; import org.lwjgl.BufferUtils; import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFWCursorPosCallback; import com.javamarcher.window.MainWindow; public class MouseInput extends GLFWCursorPosCallback { private final Vector2f mouseDelta = new Vector2f(); @Override public void invoke(long window, double xpos, double ypos) { DoubleBuffer x = BufferUtils.createDoubleBuffer(1); DoubleBuffer y = BufferUtils.createDoubleBuffer(1); glfwGetCursorPos(window, x, y); x.rewind(); y.rewind(); mouseDelta.x = (float) (x.get() - MainWindow.WIDTH * 0.5); mouseDelta.y = (float) (y.get() - MainWindow.HEIGHT * 0.5); GLFW.glfwSetCursorPos(MainWindow.WINDOW, (float) (MainWindow.WIDTH * 0.5), (float) (MainWindow.HEIGHT * 0.5)); } public Vector2f getMouseDelta() { return mouseDelta; } }