Update of /cvsroot/java-game-lib/LWJGL/src/native/win32
In directory sc8-pr-cvs1:/tmp/cvs-serv11404/win32
Modified Files:
org_lwjgl_input_Mouse.cpp
Log Message:
Fixed a mouse button state array bug
Index: org_lwjgl_input_Mouse.cpp
CVS Browser:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Mouse.cpp
===================================================================
RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Mouse.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- org_lwjgl_input_Mouse.cpp 15 Aug 2002 15:43:02 -0000 1.2
+++ org_lwjgl_input_Mouse.cpp 12 Dec 2002 19:51:20 -0000 1.3
@@ -121,7 +121,7 @@
}
// Grab non-exclusive foreground access to device
- if (lpdiMouse->SetCooperativeLevel(hwnd, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND) != DI_OK) {
+ if (lpdiMouse->SetCooperativeLevel(hwnd, DISCL_EXCLUSIVE | DISCL_FOREGROUND) != DI_OK) {
printf("Failed to set mouse coop\n");
return JNI_FALSE;
}
@@ -134,7 +134,8 @@
#ifdef _DEBUG
printf("Failed to acquire mouse\n");
#endif
- }
+ }
+ printf("Acquired mouse\n");
return JNI_TRUE;
}
@@ -187,9 +188,12 @@
env->SetStaticIntField(clazz, fid_dy, (jint)diMouseState.lY);
env->SetStaticIntField(clazz, fid_dz, (jint)diMouseState.lZ);
jbooleanArray buttonsArray = (jbooleanArray) env->GetStaticObjectField(clazz, fid_button);
- BYTE * buttons = (BYTE *) env->GetPrimitiveArrayCritical(buttonsArray, NULL);
- memcpy(buttons, diMouseState.rgbButtons, 4);
- env->ReleasePrimitiveArrayCritical(buttonsArray, buttons, 0);
+ for (int i = 0; i < 4; i++)
+ if (diMouseState.rgbButtons[i] != 0)
+ diMouseState.rgbButtons[i] = JNI_TRUE;
+ else
+ diMouseState.rgbButtons[i] = JNI_FALSE;
+ env->SetBooleanArrayRegion(buttonsArray, 0, 4, diMouseState.rgbButtons);
} else {
#ifdef _DEBUG
printf("Failed to get mouse device state\n");
|