projects
/
freeglut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor update making code more compact.
[freeglut]
/
src
/
mswin
/
fg_spaceball_mswin.c
diff --git
a/src/mswin/fg_spaceball_mswin.c
b/src/mswin/fg_spaceball_mswin.c
index
4d96c31
..
ba2ccf0
100644
(file)
--- a/
src/mswin/fg_spaceball_mswin.c
+++ b/
src/mswin/fg_spaceball_mswin.c
@@
-30,6
+30,8
@@
*/
/*
*/
/*
+ * Modified by Jinrong Xie (stonexjr@gmail.com) 12/24/2014
+ * for Space Navigator support on Windows.
* This code is enhanced by at least supporting 3Dconnexion's
* six degree of freedom navigator.
*/
* This code is enhanced by at least supporting 3Dconnexion's
* six degree of freedom navigator.
*/
@@
-68,8
+70,6
@@
void fgPlatformInitializeSpaceball(void)
__fgSpaceball.hwndTarget = NULL;
sball_initialized = 0;
}
__fgSpaceball.hwndTarget = NULL;
sball_initialized = 0;
}
-
- return;
}
void fgPlatformSpaceballClose(void)
}
void fgPlatformSpaceballClose(void)
@@
-94,6
+94,7
@@
void fgPlatformSpaceballSetWindow(SFG_Window *window)
int fgIsSpaceballWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
int fgIsSpaceballWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
+ return 0;
}
void fgSpaceballHandleWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
}
void fgSpaceballHandleWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
@@
-101,7
+102,6
@@
void fgSpaceballHandleWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
#define LOGITECH_VENDOR_ID 0x46d
HRAWINPUT hRawInput = (HRAWINPUT)lParam;
UINT inputCode = (UINT)wParam;
#define LOGITECH_VENDOR_ID 0x46d
HRAWINPUT hRawInput = (HRAWINPUT)lParam;
UINT inputCode = (UINT)wParam;
- RAWINPUTHEADER hdr;
UINT size;
BYTE *rawInputBuffer;
PRAWINPUT pRawInput;
UINT size;
BYTE *rawInputBuffer;
PRAWINPUT pRawInput;
@@
-148,7
+148,7
@@
void fgSpaceballHandleWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
// X goes right, Y goes up and Z goes towards viewer, e.g.
// the one used in OpenGL
if (pRawInput->data.hid.bRawData[0] ==
// X goes right, Y goes up and Z goes towards viewer, e.g.
// the one used in OpenGL
if (pRawInput->data.hid.bRawData[0] ==
- SPNAV_EVENT_MOTION_TRANSLATION)//0x01)
+ SPNAV_EVENT_MOTION_TRANSLATION)
{ // Translation vector
short* pnData = (short*)(&pRawInput->data.hid.bRawData[1]);
short X = pnData[0];
{ // Translation vector
short* pnData = (short*)(&pRawInput->data.hid.bRawData[1]);
short X = pnData[0];
@@
-157,7
+157,7
@@
void fgSpaceballHandleWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
INVOKE_WCB(*window, SpaceMotion, (X, Y, Z));
}
else if (pRawInput->data.hid.bRawData[0] ==
INVOKE_WCB(*window, SpaceMotion, (X, Y, Z));
}
else if (pRawInput->data.hid.bRawData[0] ==
- SPNAV_EVENT_MOTION_ROTATION)//0x02)
+ SPNAV_EVENT_MOTION_ROTATION)
{ // Axis aligned rotation vector
short* pnData = (short*)(&pRawInput->data.hid.bRawData[1]);
short rX = pnData[0];
{ // Axis aligned rotation vector
short* pnData = (short*)(&pRawInput->data.hid.bRawData[1]);
short rX = pnData[0];
@@
-166,7
+166,7
@@
void fgSpaceballHandleWinEvent(HWND hwnd, WPARAM wParam, LPARAM lParam)
INVOKE_WCB(*window, SpaceRotation, (rX, rY, rZ));
}
else if (pRawInput->data.hid.bRawData[0] ==
INVOKE_WCB(*window, SpaceRotation, (rX, rY, rZ));
}
else if (pRawInput->data.hid.bRawData[0] ==
- SPNAV_EVENT_BUTTON)//0x03)
+ SPNAV_EVENT_BUTTON)
{ // State of the keys
unsigned long dwKeystate = *(unsigned long*)(&pRawInput->data.hid.bRawData[1]);
unsigned int state = GLUT_UP;
{ // State of the keys
unsigned long dwKeystate = *(unsigned long*)(&pRawInput->data.hid.bRawData[1]);
unsigned int state = GLUT_UP;