diff --git a/src/java/org/lwjgl/input/Keyboard.java b/src/java/org/lwjgl/input/Keyboard.java index 82abb116..52fb90ca 100644 --- a/src/java/org/lwjgl/input/Keyboard.java +++ b/src/java/org/lwjgl/input/Keyboard.java @@ -348,8 +348,7 @@ public class Keyboard { private static void read() { readBuffer.compact(); - int numEvents = Display.getImplementation().readKeyboard(readBuffer); - readBuffer.position(readBuffer.position() + numEvents*EVENT_SIZE); + Display.getImplementation().readKeyboard(readBuffer); readBuffer.flip(); } diff --git a/src/java/org/lwjgl/input/Mouse.java b/src/java/org/lwjgl/input/Mouse.java index af4e8c91..f7ed1449 100644 --- a/src/java/org/lwjgl/input/Mouse.java +++ b/src/java/org/lwjgl/input/Mouse.java @@ -306,8 +306,7 @@ public class Mouse { private static void read() { readBuffer.compact(); - int numEvents = Display.getImplementation().readMouse(readBuffer); - readBuffer.position(readBuffer.position() + numEvents * EVENT_SIZE); + Display.getImplementation().readMouse(readBuffer); readBuffer.flip(); } diff --git a/src/java/org/lwjgl/opengl/DisplayImplementation.java b/src/java/org/lwjgl/opengl/DisplayImplementation.java index 24c7807e..d135755d 100644 --- a/src/java/org/lwjgl/opengl/DisplayImplementation.java +++ b/src/java/org/lwjgl/opengl/DisplayImplementation.java @@ -150,10 +150,8 @@ public interface DisplayImplementation { /** * Method to read the keyboard buffer - * - * @return the total number of events read. */ - int readMouse(IntBuffer buffer); + void readMouse(IntBuffer buffer); void grabMouse(boolean grab); @@ -198,9 +196,8 @@ public interface DisplayImplementation { /** * Method to read the keyboard buffer - * @return the total number of events read. */ - int readKeyboard(IntBuffer buffer); + void readKeyboard(IntBuffer buffer); // int isStateKeySet(int key); diff --git a/src/java/org/lwjgl/opengl/EventQueue.java b/src/java/org/lwjgl/opengl/EventQueue.java index a26e12be..efdfbf2c 100644 --- a/src/java/org/lwjgl/opengl/EventQueue.java +++ b/src/java/org/lwjgl/opengl/EventQueue.java @@ -62,8 +62,7 @@ class EventQueue { * the behaviour of the native event queues. * @return the number of events copied */ - public synchronized int copyEvents(IntBuffer dest) { - int old_position = dest.position(); + public synchronized void copyEvents(IntBuffer dest) { queue.flip(); int old_limit = queue.limit(); if (dest.remaining() < queue.remaining()) @@ -71,9 +70,6 @@ class EventQueue { dest.put(queue); queue.limit(old_limit); queue.compact(); - int num_events = (dest.position() - old_position)/event_size; - dest.position(old_position); - return num_events; } /** diff --git a/src/java/org/lwjgl/opengl/LinuxDisplay.java b/src/java/org/lwjgl/opengl/LinuxDisplay.java index d92138d5..859fced7 100644 --- a/src/java/org/lwjgl/opengl/LinuxDisplay.java +++ b/src/java/org/lwjgl/opengl/LinuxDisplay.java @@ -648,11 +648,11 @@ final class LinuxDisplay implements DisplayImplementation { } } - public int readMouse(IntBuffer buffer) { + public void readMouse(IntBuffer buffer) { update(); lockAWT(); try { - return mouse.read(buffer); + mouse.read(buffer); } finally { unlockAWT(); } @@ -818,11 +818,11 @@ final class LinuxDisplay implements DisplayImplementation { } } - public int readKeyboard(IntBuffer buffer) { + public void readKeyboard(IntBuffer buffer) { update(); lockAWT(); try { - return keyboard.read(buffer); + keyboard.read(buffer); } finally { unlockAWT(); } diff --git a/src/java/org/lwjgl/opengl/LinuxKeyboard.java b/src/java/org/lwjgl/opengl/LinuxKeyboard.java index 32d270d2..1ca04dbb 100644 --- a/src/java/org/lwjgl/opengl/LinuxKeyboard.java +++ b/src/java/org/lwjgl/opengl/LinuxKeyboard.java @@ -152,8 +152,8 @@ final class LinuxKeyboard { private static native void destroyIC(long xic); private static native void closeIM(long xim); - public int read(IntBuffer buffer) { - return event_queue.copyEvents(buffer); + public void read(IntBuffer buffer) { + event_queue.copyEvents(buffer); } public void poll(ByteBuffer keyDownBuffer) { diff --git a/src/java/org/lwjgl/opengl/LinuxMouse.java b/src/java/org/lwjgl/opengl/LinuxMouse.java index 00cba51a..d6e7e6d2 100644 --- a/src/java/org/lwjgl/opengl/LinuxMouse.java +++ b/src/java/org/lwjgl/opengl/LinuxMouse.java @@ -86,8 +86,8 @@ final class LinuxMouse { accum_dx = accum_dy = 0; } - public int read(IntBuffer buffer) { - return event_queue.copyEvents(buffer); + public void read(IntBuffer buffer) { + event_queue.copyEvents(buffer); } public void poll(boolean grab, IntBuffer coord_buffer, ByteBuffer buttons_buffer) { diff --git a/src/java/org/lwjgl/opengl/MacOSXDisplay.java b/src/java/org/lwjgl/opengl/MacOSXDisplay.java index 91847990..5122718e 100644 --- a/src/java/org/lwjgl/opengl/MacOSXDisplay.java +++ b/src/java/org/lwjgl/opengl/MacOSXDisplay.java @@ -321,8 +321,8 @@ final class MacOSXDisplay implements DisplayImplementation { mouse_queue.poll(coord_buffer, buttons_buffer); } - public int readMouse(IntBuffer buffer) { - return mouse_queue.copyEvents(buffer); + public void readMouse(IntBuffer buffer) { + mouse_queue.copyEvents(buffer); } public void grabMouse(boolean grab) { @@ -407,8 +407,8 @@ final class MacOSXDisplay implements DisplayImplementation { keyboard_queue.poll(keyDownBuffer); } - public int readKeyboard(IntBuffer buffer) { - return keyboard_queue.copyEvents(buffer); + public void readKeyboard(IntBuffer buffer) { + keyboard_queue.copyEvents(buffer); } /* public int isStateKeySet(int key) { diff --git a/src/java/org/lwjgl/opengl/Win32Display.java b/src/java/org/lwjgl/opengl/Win32Display.java index a766b248..00e2e303 100644 --- a/src/java/org/lwjgl/opengl/Win32Display.java +++ b/src/java/org/lwjgl/opengl/Win32Display.java @@ -206,9 +206,9 @@ final class Win32Display implements DisplayImplementation { mouse.poll(coord_buffer, buttons); } - public int readMouse(IntBuffer buffer) { + public void readMouse(IntBuffer buffer) { update(); - return mouse.read(buffer); + mouse.read(buffer); } public void grabMouse(boolean grab) { @@ -251,9 +251,9 @@ final class Win32Display implements DisplayImplementation { keyboard.poll(keyDownBuffer); } - public int readKeyboard(IntBuffer buffer) { + public void readKeyboard(IntBuffer buffer) { update(); - return keyboard.read(buffer); + keyboard.read(buffer); } // public native int isStateKeySet(int key); diff --git a/src/java/org/lwjgl/opengl/WindowsKeyboard.java b/src/java/org/lwjgl/opengl/WindowsKeyboard.java index eb069d8d..c0533313 100644 --- a/src/java/org/lwjgl/opengl/WindowsKeyboard.java +++ b/src/java/org/lwjgl/opengl/WindowsKeyboard.java @@ -103,15 +103,13 @@ final class WindowsKeyboard { } } - private int translateData(IntBuffer src, IntBuffer dst) { + private void translateData(IntBuffer src, IntBuffer dst) { int dst_index = dst.position(); - int num_events = 0; - while (dst_index < dst.limit() && src.hasRemaining()) { - num_events++; + while (dst.hasRemaining() && src.hasRemaining()) { int dwOfs = src.get(); - dst.put(dst_index++, dwOfs); + dst.put(dwOfs); int dwData = src.get(); - dst.put(dst_index++, dwData); + dst.put(dwData); boolean key_down = (dwData & 0x80) != 0; if (key_down) { int virt_key = MapVirtualKey(dwOfs, 1); @@ -128,33 +126,31 @@ final class WindowsKeyboard { int current_char = 0; do { if (current_char >= 1) { - num_events++; - dst.put(dst_index++, 0); - dst.put(dst_index++, 0); + dst.put(0); + dst.put(0); } int char_int = ((int)unicode_buffer.get()) & 0xFFFF; - dst.put(dst_index++, char_int); + dst.put(char_int); current_char++; - } while (dst_index < dst.limit() && current_char < num_chars); + } while (dst.hasRemaining() && current_char < num_chars); } else { - dst.put(dst_index++, 0); + dst.put(0); } } else { - dst.put(dst_index++, 0); + dst.put(0); } } else - dst.put(dst_index++, 0); + dst.put(0); } - return num_events; } private static native int MapVirtualKey(int uCode, int uMapType); private static native int ToUnicode(int wVirtKey, int wScanCode, ByteBuffer lpKeyState, CharBuffer pwszBuff, int cchBuff, int flags); private static native int GetKeyboardState(ByteBuffer lpKeyState); - public int read(IntBuffer buffer) { + public void read(IntBuffer buffer) { int ret = keyboard.acquire(); if (ret != WindowsDirectInput.DI_OK && ret != WindowsDirectInput.DI_NOEFFECT) - return 0; + return; keyboard.poll(); temp_data_buffer.clear(); ret = keyboard.getDeviceData(temp_data_buffer); @@ -173,6 +169,6 @@ final class WindowsKeyboard { break; } temp_data_buffer.flip(); - return translateData(temp_data_buffer, buffer); + translateData(temp_data_buffer, buffer); } } diff --git a/src/java/org/lwjgl/opengl/WindowsMouse.java b/src/java/org/lwjgl/opengl/WindowsMouse.java index 9902a8cf..6d5f65a0 100755 --- a/src/java/org/lwjgl/opengl/WindowsMouse.java +++ b/src/java/org/lwjgl/opengl/WindowsMouse.java @@ -261,9 +261,9 @@ final class WindowsMouse { } } - public int read(IntBuffer buffer) { + public void read(IntBuffer buffer) { readDXBuffer(); - return event_queue.copyEvents(buffer); + event_queue.copyEvents(buffer); } public void grab(boolean grab) {