diff --git a/engine/src/lwjgl-ogl/com/jme3/system/lwjgl/LwjglAbstractDisplay.java b/engine/src/lwjgl-ogl/com/jme3/system/lwjgl/LwjglAbstractDisplay.java index 74a1c5130..c84f9cd7f 100644 --- a/engine/src/lwjgl-ogl/com/jme3/system/lwjgl/LwjglAbstractDisplay.java +++ b/engine/src/lwjgl-ogl/com/jme3/system/lwjgl/LwjglAbstractDisplay.java @@ -151,7 +151,7 @@ public abstract class LwjglAbstractDisplay extends LwjglContext implements Runna // calls swap buffers, etc. try { if (autoFlush){ - Display.update(); + Display.update(false); }else{ Display.processMessages(); Thread.sleep(50); @@ -166,6 +166,14 @@ public abstract class LwjglAbstractDisplay extends LwjglContext implements Runna if (frameRate > 0) Display.sync(frameRate); + if (renderable.get()){ + if (autoFlush){ + // check input after we synchronize with framerate. + // this reduces input lag. + Display.processMessages(); + } + } + // Subclasses just call GLObjectManager clean up objects here // it is safe .. for now. renderer.onFrame(); diff --git a/engine/src/test/jme3test/gui/TestSoftwareMouse.java b/engine/src/test/jme3test/gui/TestSoftwareMouse.java index 0596a6016..f1174354a 100644 --- a/engine/src/test/jme3test/gui/TestSoftwareMouse.java +++ b/engine/src/test/jme3test/gui/TestSoftwareMouse.java @@ -41,18 +41,9 @@ import com.jme3.input.event.MouseButtonEvent; import com.jme3.input.event.MouseMotionEvent; import com.jme3.math.FastMath; import com.jme3.system.AppSettings; -import com.jme3.texture.Image; import com.jme3.texture.Texture; import com.jme3.texture.Texture2D; import com.jme3.ui.Picture; -import com.jme3.util.BufferUtils; -import java.nio.ByteBuffer; -import java.nio.IntBuffer; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.lwjgl.LWJGLException; -import org.lwjgl.input.Cursor; -import org.lwjgl.input.Mouse; public class TestSoftwareMouse extends SimpleApplication { @@ -90,13 +81,18 @@ public class TestSoftwareMouse extends SimpleApplication { public static void main(String[] args){ TestSoftwareMouse app = new TestSoftwareMouse(); + +// AppSettings settings = new AppSettings(true); +// settings.setFrameRate(60); +// app.setSettings(settings); + app.start(); } @Override public void simpleInitApp() { flyCam.setEnabled(false); - inputManager.setCursorVisible(false); +// inputManager.setCursorVisible(false); Texture tex = assetManager.loadTexture("Interface/Logo/Cursor.png");