You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(134) |
Sep
(52) |
Oct
(13) |
Nov
(342) |
Dec
(163) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(44) |
Feb
(62) |
Mar
(158) |
Apr
(38) |
May
(70) |
Jun
(58) |
Jul
(104) |
Aug
(207) |
Sep
(83) |
Oct
(122) |
Nov
(23) |
Dec
(49) |
| 2004 |
Jan
(119) |
Feb
(132) |
Mar
(192) |
Apr
(140) |
May
(77) |
Jun
(74) |
Jul
(201) |
Aug
(63) |
Sep
(102) |
Oct
(70) |
Nov
(173) |
Dec
(78) |
| 2005 |
Jan
(174) |
Feb
(197) |
Mar
(105) |
Apr
(59) |
May
(77) |
Jun
(43) |
Jul
(21) |
Aug
(18) |
Sep
(47) |
Oct
(37) |
Nov
(74) |
Dec
(50) |
| 2006 |
Jan
(44) |
Feb
(19) |
Mar
(32) |
Apr
(24) |
May
(31) |
Jun
(55) |
Jul
(138) |
Aug
(28) |
Sep
(12) |
Oct
(41) |
Nov
(58) |
Dec
(24) |
| 2007 |
Jan
(28) |
Feb
(14) |
Mar
(10) |
Apr
(68) |
May
(30) |
Jun
(26) |
Jul
(18) |
Aug
(63) |
Sep
(19) |
Oct
(29) |
Nov
(20) |
Dec
(10) |
| 2008 |
Jan
(38) |
Feb
(7) |
Mar
(37) |
Apr
(120) |
May
(41) |
Jun
(36) |
Jul
(39) |
Aug
(24) |
Sep
(28) |
Oct
(30) |
Nov
(36) |
Dec
(75) |
| 2009 |
Jan
(46) |
Feb
(22) |
Mar
(50) |
Apr
(70) |
May
(134) |
Jun
(105) |
Jul
(75) |
Aug
(34) |
Sep
(38) |
Oct
(34) |
Nov
(19) |
Dec
(20) |
| 2010 |
Jan
(11) |
Feb
(20) |
Mar
(65) |
Apr
(83) |
May
(104) |
Jun
(73) |
Jul
(78) |
Aug
(57) |
Sep
(43) |
Oct
(35) |
Nov
(9) |
Dec
(4) |
| 2011 |
Jan
(21) |
Feb
(11) |
Mar
(18) |
Apr
(10) |
May
(18) |
Jun
(15) |
Jul
(48) |
Aug
(25) |
Sep
(17) |
Oct
(45) |
Nov
(15) |
Dec
(12) |
| 2012 |
Jan
(21) |
Feb
(9) |
Mar
(12) |
Apr
(9) |
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
(10) |
Sep
(12) |
Oct
(1) |
Nov
(28) |
Dec
(5) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
|
2
|
3
(5) |
4
|
|
5
(1) |
6
(16) |
7
(3) |
8
(3) |
9
(4) |
10
(13) |
11
(5) |
|
12
(1) |
13
(1) |
14
|
15
(7) |
16
(4) |
17
(1) |
18
(1) |
|
19
(3) |
20
|
21
(1) |
22
(16) |
23
|
24
(2) |
25
|
|
26
(1) |
27
(4) |
28
(6) |
29
(3) |
30
(1) |
|
|
|
From: Brian M. <ma...@us...> - 2004-09-27 15:17:16
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/fmod3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27331/src/java/org/lwjgl/fmod3 Modified Files: FSound.java Log Message: fix spectrum to return a float buffer Index: FSound.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/fmod3/FSound.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- FSound.java 16 Sep 2004 21:11:22 -0000 1.8 +++ FSound.java 27 Sep 2004 15:17:05 -0000 1.9 @@ -3137,12 +3137,9 @@ * @return FloatBuffer containing 512 floats */ public static FloatBuffer FSOUND_DSP_GetSpectrum() { - if(FMOD.fmodFFTBuffer == null) { - FMOD.fmodFFTBuffer = nFSOUND_DSP_GetSpectrum(); - } - return FMOD.fmodFFTBuffer; + return nFSOUND_DSP_GetSpectrum().asFloatBuffer(); } - private static native FloatBuffer nFSOUND_DSP_GetSpectrum(); + private static native ByteBuffer nFSOUND_DSP_GetSpectrum(); /** * Allows the user to mix their own data from one buffer to another, using FSOUNDs optimized |
|
From: Elias N. <eli...@us...> - 2004-09-27 13:43:46
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7348/src/native/win32 Modified Files: org_lwjgl_input_Mouse.cpp Log Message: Fix win32 mouse event deltas too Index: org_lwjgl_input_Mouse.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Mouse.cpp,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- org_lwjgl_input_Mouse.cpp 22 Sep 2004 17:54:27 -0000 1.63 +++ org_lwjgl_input_Mouse.cpp 27 Sep 2004 13:43:34 -0000 1.64 @@ -62,8 +62,10 @@ static int accum_dx; static int accum_dy; static int accum_dwheel; -static int last_x; -static int last_y; +static int last_poll_x; +static int last_poll_y; +static int last_event_x; +static int last_event_y; static event_queue_t event_queue; static bool buffer_enabled; @@ -77,22 +79,19 @@ void InitializeMouseFields(); void UpdateMouseFields(JNIEnv *env, jclass clsMouse, jobject coord_buffer_obj, jobject button_buffer_obj); -static void putEvent(jint button, jint state, jint dx, jint dy, jint dz) { - if (buffer_enabled) { - putEventElement(&event_queue, button); - putEventElement(&event_queue, state); - putEventElement(&event_queue, dx); - putEventElement(&event_queue, -dy); - putEventElement(&event_queue, dz); - } +static bool putMouseEvent(jint button, jint state, jint dx, jint dy, jint dz) { + jint event[] = {button, state, dx, -dy, dz}; + return putEvent(&event_queue, event); } static void resetCursorPos(void) { /* Reset cursor position to middle of the window */ RECT clientRect; GetClientRect(getCurrentHWND(), &clientRect); - last_x = (clientRect.left + clientRect.right)/2; - last_y = clientRect.bottom - 1 - (clientRect.bottom - clientRect.top)/2; + last_poll_x = (clientRect.left + clientRect.right)/2; + last_poll_y = clientRect.bottom - 1 - (clientRect.bottom - clientRect.top)/2; + last_event_x = last_poll_x; + last_event_y = last_poll_y; accum_dx = accum_dy = 0; } @@ -110,9 +109,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_input_Mouse_nCreate(JNIEnv *env, jclass clazz) { HRESULT hr; - initEventQueue(&event_queue); + initEventQueue(&event_queue, 5); - last_x = last_y = accum_dx = accum_dy = accum_dwheel = 0; + last_poll_x = last_poll_y = last_event_x = last_event_y = accum_dx = accum_dy = accum_dwheel = 0; buffer_enabled = false; // Create input @@ -156,21 +155,26 @@ void handleMouseScrolled(int event_dwheel) { accum_dwheel += event_dwheel; - putEvent(-1, 0, 0, 0, event_dwheel); + putMouseEvent(-1, 0, 0, 0, event_dwheel); } void handleMouseMoved(int x, int y) { - int event_dx = x - last_x; - int event_dy = y - last_y; - accum_dx += event_dx; - accum_dy += event_dy; - putEvent(-1, 0, event_dx, event_dy, 0); - last_x = x; - last_y = y; + int poll_dx = x - last_poll_x; + int poll_dy = y - last_poll_y; + accum_dx += poll_dx; + accum_dy += poll_dy; + last_poll_x = x; + last_poll_y = y; + int event_dx = x - last_event_x; + int event_dy = y - last_event_y; + if (putMouseEvent(-1, 0, event_dx, event_dy, 0)) { + last_event_x = x; + last_event_y = y; + } } void handleMouseButton(int button, int state) { - putEvent(button, state, 0, 0, 0); + putMouseEvent(button, state, 0, 0, 0); } static void copyDXEvents(int num_di_events, DIDEVICEOBJECTDATA *di_buffer) { @@ -180,19 +184,19 @@ int button_state = (di_buffer[i].dwData & 0x80) != 0 ? 1 : 0; switch (di_buffer[i].dwOfs) { case DIMOFS_BUTTON0: - putEvent(0, button_state, dx, dy, dwheel); + putMouseEvent(0, button_state, dx, dy, dwheel); dx = dy = dwheel = 0; break; case DIMOFS_BUTTON1: - putEvent(1, button_state, dx, dy, dwheel); + putMouseEvent(1, button_state, dx, dy, dwheel); dx = dy = dwheel = 0; break; case DIMOFS_BUTTON2: - putEvent(2, button_state, dx, dy, dwheel); + putMouseEvent(2, button_state, dx, dy, dwheel); dx = dy = dwheel = 0; break; case DIMOFS_BUTTON3: - putEvent(3, button_state, dx, dy, dwheel); + putMouseEvent(3, button_state, dx, dy, dwheel); dx = dy = dwheel = 0; break; case DIMOFS_X: @@ -207,7 +211,7 @@ } } if (dx != 0 || dy != 0 || dwheel != 0) - putEvent(-1, 0, dx, dy, dwheel); + putMouseEvent(-1, 0, dx, dy, dwheel); } static void readDXBuffer() @@ -257,7 +261,7 @@ } else { handleMessages(); } - return copyEvents(&event_queue, buffer_ptr, buffer_size, 5); + return copyEvents(&event_queue, buffer_ptr, buffer_size); } JNIEXPORT jint JNICALL Java_org_lwjgl_input_Mouse_nGetNativeCursorCaps |
|
From: Elias N. <eli...@us...> - 2004-09-27 13:20:39
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1328/common Modified Files: common_tools.c common_tools.h Log Message: Track event mouse deltas even when the event queue overflows Index: common_tools.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/common_tools.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- common_tools.c 22 Sep 2004 11:08:20 -0000 1.3 +++ common_tools.c 27 Sep 2004 13:20:27 -0000 1.4 @@ -78,46 +78,64 @@ va_end(ap); } -static void incListStart(event_queue_t *queue) { - queue->list_start = (queue->list_start + 1)%EVENT_BUFFER_SIZE; +int getElementCapacity(event_queue_t *queue) { + return queue->limit - queue->position; } -void initEventQueue(event_queue_t *event_queue) { - event_queue->list_start = 0; - event_queue->list_end = 0; +void initEventQueue(event_queue_t *queue, int event_size) { + queue->position = 0; + queue->limit = EVENT_BUFFER_SIZE; + queue->event_size = event_size; } -void putEventElement(event_queue_t *queue, jint s) { - int next_index = (queue->list_end + 1)%EVENT_BUFFER_SIZE; - if (next_index == queue->list_start) { +bool putEvent(event_queue_t *queue, jint *event) { + int i; + if (getElementCapacity(queue) < queue->event_size) { printfDebug("Event buffer overflow!\n"); - return; + return false; } - queue->input_event_buffer[queue->list_end] = s; - queue->list_end = next_index; + for (i = 0; i < queue->event_size; i++) { + queue->input_event_buffer[queue->position] = event[i]; + queue->position++; + } + return true; } -static bool hasMoreEvents(event_queue_t *queue) { - return queue->list_start != queue->list_end; +static void flip(event_queue_t *queue) { + queue->limit = queue->position; + queue->position = 0; } -static void copyEvent(event_queue_t *queue, jint *output_event_buffer, int output_index, int event_size) { +static void compact(event_queue_t *queue) { + int new_position = 0; + while (getElementCapacity(queue) > 0) { + queue->input_event_buffer[new_position] = queue->input_event_buffer[queue->position]; + queue->position++; + new_position++; + } + queue->position = new_position; + queue->limit = EVENT_BUFFER_SIZE; +} + +static void copyEvent(event_queue_t *queue, jint *output_event_buffer, int output_index) { int i; - for (i = 0; i < event_size; i++) { - output_event_buffer[output_index] = queue->input_event_buffer[queue->list_start]; - incListStart(queue); + for (i = 0; i < queue->event_size; i++) { + output_event_buffer[output_index] = queue->input_event_buffer[queue->position]; + queue->position++; output_index++; } } -int copyEvents(event_queue_t *event_queue, jint *output_event_buffer, int buffer_size, int event_size) { +int copyEvents(event_queue_t *queue, jint *output_event_buffer, int buffer_size) { int num_events = 0; int index = 0; - while (index + event_size <= buffer_size && hasMoreEvents(event_queue)) { - copyEvent(event_queue, output_event_buffer, index, event_size); + flip(queue); + while (index + queue->event_size <= buffer_size && getElementCapacity(queue) >= queue->event_size) { + copyEvent(queue, output_event_buffer, index); num_events++; - index += event_size; + index += queue->event_size; } + compact(queue); return num_events; } Index: common_tools.h =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/common_tools.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- common_tools.h 22 Sep 2004 11:08:21 -0000 1.23 +++ common_tools.h 27 Sep 2004 13:20:27 -0000 1.24 @@ -46,15 +46,14 @@ // shared VM instance extern JavaVM *jvm; -// Must be x * max_event_size + 1 -#define EVENT_BUFFER_SIZE (25 * 4 + 1) +#define EVENT_BUFFER_SIZE 256 #define ATTRIB_LIST_SIZE (256) typedef struct { + int event_size; + int position; + int limit; jint input_event_buffer[EVENT_BUFFER_SIZE]; - - int list_start; - int list_end; } event_queue_t; typedef struct { @@ -124,9 +123,9 @@ extern bool isDebugEnabled(void); extern jstring getVersionString(JNIEnv *env); -extern void initEventQueue(event_queue_t *event_queue); -extern int copyEvents(event_queue_t *event_queue, jint *output_event_buffer, int buffer_size, int event_size); -extern void putEventElement(event_queue_t *queue, jint byte); +extern void initEventQueue(event_queue_t *event_queue, int event_size); +extern int copyEvents(event_queue_t *event_queue, jint *output_event_buffer, int buffer_size); +extern bool putEvent(event_queue_t *queue, jint *event); extern void throwException(JNIEnv *env, const char *msg); extern void throwOpenALException(JNIEnv * env, const char * err); extern void throwFMODException(JNIEnv * env, const char * err); |
|
From: Elias N. <eli...@us...> - 2004-09-27 13:20:39
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1328/linux Modified Files: org_lwjgl_input_Keyboard.c org_lwjgl_input_Mouse.c Log Message: Track event mouse deltas even when the event queue overflows Index: org_lwjgl_input_Keyboard.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_input_Keyboard.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- org_lwjgl_input_Keyboard.c 22 Sep 2004 11:08:21 -0000 1.6 +++ org_lwjgl_input_Keyboard.c 27 Sep 2004 13:20:27 -0000 1.7 @@ -120,7 +120,7 @@ keyboard_grabbed = false; translation_enabled = false; buffer_enabled = false; - initEventQueue(&event_queue); + initEventQueue(&event_queue, 3); updateKeyboardGrab(); } @@ -138,14 +138,19 @@ return keycode; } -static int translateEvent(XKeyEvent *event) { +static void putKeyboardEvent(jint keycode, jint state, jint ch) { + int event_list[] = {keycode, state, ch}; + putEvent(&event_queue, event_list); +} + +static int translateEvent(XKeyEvent *event, jint keycode, jint state) { static char temp_translation_buffer[KEYBOARD_BUFFER_SIZE]; static XComposeStatus status; int num_chars, i; jint ch; if (!translation_enabled || event->type == KeyRelease) { - putEventElement(&event_queue, 0); + putKeyboardEvent(keycode, state, 0); return 0; } num_chars = XLookupString(event, temp_translation_buffer, KEYBOARD_BUFFER_SIZE, NULL, &status); @@ -153,15 +158,13 @@ num_chars--; /* Assume little endian byte order */ ch = (jint)temp_translation_buffer[0] & 0xFF; - putEventElement(&event_queue, ch); + putKeyboardEvent(keycode, state, ch); for (i = 0; i < num_chars; i++) { - putEventElement(&event_queue, 0); - putEventElement(&event_queue, 0); ch = ((jint)temp_translation_buffer[i + 1]) & 0xFF; - putEventElement(&event_queue, ch); + putKeyboardEvent(0, 0, ch); } } else { - putEventElement(&event_queue, 0); + putKeyboardEvent(keycode, state, 0); } return num_chars; } @@ -179,9 +182,7 @@ unsigned char keycode = getKeycode(key_event); unsigned char state = eventState(key_event); //printf("Reading a key %d %d count %d\n", (int)keycode, (int)state, num_events); - putEventElement(&event_queue, keycode); - putEventElement(&event_queue, state); - translateEvent(key_event); + translateEvent(key_event, keycode, state); } void handleKeyEvent(XKeyEvent *event) { @@ -199,11 +200,10 @@ } JNIEXPORT int JNICALL Java_org_lwjgl_input_Keyboard_nRead(JNIEnv * env, jclass clazz, jobject buffer, jint buffer_position) { - int event_size = 3; handleMessages(); jint* buffer_ptr = (jint *)(*env)->GetDirectBufferAddress(env, buffer); int buffer_size = ((*env)->GetDirectBufferCapacity(env, buffer))/sizeof(jint) - buffer_position; - return copyEvents(&event_queue, buffer_ptr + buffer_position, buffer_size, event_size); + return copyEvents(&event_queue, buffer_ptr + buffer_position, buffer_size); } JNIEXPORT void JNICALL Java_org_lwjgl_input_Keyboard_nEnableTranslation(JNIEnv *env, jclass clazz) { Index: org_lwjgl_input_Mouse.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_input_Mouse.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- org_lwjgl_input_Mouse.c 22 Sep 2004 18:35:14 -0000 1.12 +++ org_lwjgl_input_Mouse.c 27 Sep 2004 13:20:27 -0000 1.13 @@ -53,7 +53,6 @@ #define NUM_BUTTONS 3 #define POINTER_WARP_BORDER 10 -#define WARP_RETRY 5 // scale the mouse wheel according to win32 #define WHEEL_SCALE 120 @@ -63,8 +62,11 @@ static int accum_dx; static int accum_dy; static int accum_dz; -static int last_x; -static int last_y; +static int last_poll_x; +static int last_poll_y; +static int last_event_x; +static int last_event_y; +static int last_z; static jbyte buttons[NUM_BUTTONS]; static event_queue_t event_queue; static bool buffer_enabled; @@ -72,24 +74,24 @@ static Cursor blank_cursor; static Cursor current_cursor; -static void putEvent(jint button, jint state, jint dx, jint dy, jint dz) { - if (buffer_enabled) { - putEventElement(&event_queue, button); - putEventElement(&event_queue, state); - putEventElement(&event_queue, dx); - putEventElement(&event_queue, -dy); - putEventElement(&event_queue, dz); - } +static bool putMouseEvent(jint button, jint state, jint dx, jint dy, jint dz) { + jint event[] = {button, state, dx, dy, dz}; + return putEvent(&event_queue, event); } static void setCursorPos(int x, int y) { - jint event_dx = x - last_x; - jint event_dy = y - last_y; - accum_dx += event_dx; - accum_dy += event_dy; - last_x = x; - last_y = y; - putEvent(-1, 0, event_dx, event_dy, 0); + jint poll_dx = x - last_poll_x; + jint poll_dy = y - last_poll_y; + accum_dx += poll_dx; + accum_dy += poll_dy; + last_poll_x = x; + last_poll_y = y; + jint event_dx = x - last_event_x; + jint event_dy = y - last_event_y; + if (putMouseEvent(-1, 0, event_dx, -event_dy, 0)) { + last_event_x = x; + last_event_y = y; + } } static int transformY(int y) { @@ -97,8 +99,10 @@ } static void resetCursor(int x, int y) { - last_x = x; - last_y = y; + last_poll_x = x; + last_poll_y = y; + last_event_x = x; + last_event_y = y; } static bool blankCursor(void) { @@ -242,7 +246,7 @@ if (disp == NULL) return; int i; - last_y = last_x = accum_dx = accum_dy = accum_dz = 0; + last_z = last_poll_y = last_poll_x = last_event_x = last_event_y = accum_dx = accum_dy = accum_dz = 0; for (i = 0; i < NUM_BUTTONS; i++) buttons[i] = 0; if (!blankCursor()) { @@ -255,7 +259,7 @@ pointer_grabbed = false; buffer_enabled = false; updatePointerGrab(); - initEventQueue(&event_queue); + initEventQueue(&event_queue, 5); doWarpPointer(getWindowWidth()/2, getWindowHeight()/2); } @@ -285,7 +289,7 @@ if (button_num == NUM_BUTTONS) return; buttons[button_num] = state; - putEvent(button_num, state, 0, 0, 0); + putMouseEvent(button_num, state, 0, 0, 0); } void handleButtonPress(XButtonEvent *event) { @@ -293,11 +297,11 @@ switch (event->button) { case Button4: delta = WHEEL_SCALE; - putEvent(-1, 0, 0, 0, delta); + putMouseEvent(-1, 0, 0, 0, delta); break; case Button5: delta = -WHEEL_SCALE; - putEvent(-1, 0, 0, 0, delta); + putMouseEvent(-1, 0, 0, 0, delta); break; default: break; @@ -377,7 +381,7 @@ jint* buffer_ptr = (jint *)(*env)->GetDirectBufferAddress(env, buffer); int buffer_size = ((*env)->GetDirectBufferCapacity(env, buffer))/sizeof(jint) - buffer_position; handleMessages(); - return copyEvents(&event_queue, buffer_ptr + buffer_position, buffer_size, 5); + return copyEvents(&event_queue, buffer_ptr + buffer_position, buffer_size); } JNIEXPORT void JNICALL Java_org_lwjgl_input_Mouse_nGrabMouse(JNIEnv * env, jclass clazz, jboolean new_grab) { |