From 867733cdfce108a616d01002f46947c1a67a6520 Mon Sep 17 00:00:00 2001 From: Speiger Date: Mon, 20 May 2024 16:51:58 +0200 Subject: [PATCH] Added virtual Mouse input --- .../java/speiger/src/coreengine/NewInputTest.java | 11 +++-------- .../src/coreengine/rendering/input/devices/Mouse.java | 10 ++++++++++ .../src/coreengine/rendering/input/window/Window.java | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/speiger/src/coreengine/NewInputTest.java b/src/main/java/speiger/src/coreengine/NewInputTest.java index 396c0d0..314dbee 100644 --- a/src/main/java/speiger/src/coreengine/NewInputTest.java +++ b/src/main/java/speiger/src/coreengine/NewInputTest.java @@ -32,16 +32,11 @@ public class NewInputTest { //TODO implement window close requests while(true) { GLFW.glfwPollEvents(); - window.update(); + window.beginFrame(); window.handleInput(); window.finishFrame(); - - try { - Thread.sleep(100); - } - catch(InterruptedException e) { - e.printStackTrace(); - } + try { Thread.sleep(100); } + catch(InterruptedException e) { e.printStackTrace(); } } } } diff --git a/src/main/java/speiger/src/coreengine/rendering/input/devices/Mouse.java b/src/main/java/speiger/src/coreengine/rendering/input/devices/Mouse.java index c3e4b00..d7baffc 100644 --- a/src/main/java/speiger/src/coreengine/rendering/input/devices/Mouse.java +++ b/src/main/java/speiger/src/coreengine/rendering/input/devices/Mouse.java @@ -82,6 +82,16 @@ public class Mouse extends AbstractDevice { return data == null ? Vec2i.ZERO : data.scroll(); } + public void setPosition(long windowId, int x, int y) { + MouseData data = get(windowId); + if(data == null || (data.position.x() == x && data.position.y() == y)) return; + data.position.set(x, y); + GLFW.glfwSetCursorPos(windowId, x, y); + } + + public void pressButton(long window, int button, boolean press) { click(window, button, press ? GLFW.GLFW_PRESS : GLFW.GLFW_RELEASE, 0); } + public void scrollMouse(long window, int xScroll, int yScroll) { scroll(window, xScroll, yScroll); } + public interface MouseTask { public void process(Mouse mouse); } diff --git a/src/main/java/speiger/src/coreengine/rendering/input/window/Window.java b/src/main/java/speiger/src/coreengine/rendering/input/window/Window.java index b478f26..cb52e7d 100644 --- a/src/main/java/speiger/src/coreengine/rendering/input/window/Window.java +++ b/src/main/java/speiger/src/coreengine/rendering/input/window/Window.java @@ -138,7 +138,8 @@ public class Window { } } - public void update() { + public void beginFrame() { + GLFW.glfwMakeContextCurrent(id); if(flags.isFlagSet(WINDOW_CHANGE)) updateViewport(); }