some whitespace cleanup

(cherry picked from commit 2dd5aa4aa1)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1830 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
dcnieho 2017-07-12 20:44:47 +00:00
parent b39b3a5edf
commit 07297565c8
6 changed files with 258 additions and 258 deletions

View File

@ -689,14 +689,14 @@ static void fghInitErrorFuncCallback( const char *fmt, va_list ap, FGCBUserData
void FGAPIENTRY glutInitErrorFunc( FGError callback ) void FGAPIENTRY glutInitErrorFunc( FGError callback )
{ {
if (callback) if (callback)
{ {
glutInitErrorFuncUcall( fghInitErrorFuncCallback, (FGCBUserData)callback ); glutInitErrorFuncUcall( fghInitErrorFuncCallback, (FGCBUserData)callback );
} }
else else
{ {
glutInitErrorFuncUcall( NULL, NULL ); glutInitErrorFuncUcall( NULL, NULL );
} }
} }
/* /*
@ -717,14 +717,14 @@ static void fghInitWarningFuncCallback( const char *fmt, va_list ap, FGCBUserDat
void FGAPIENTRY glutInitWarningFunc( FGWarning callback ) void FGAPIENTRY glutInitWarningFunc( FGWarning callback )
{ {
if (callback) if (callback)
{ {
glutInitWarningFuncUcall( fghInitWarningFuncCallback, (FGCBUserData)callback ); glutInitWarningFuncUcall( fghInitWarningFuncCallback, (FGCBUserData)callback );
} }
else else
{ {
glutInitWarningFuncUcall( NULL, NULL ); glutInitWarningFuncUcall( NULL, NULL );
} }
} }
/*** END OF FILE ***/ /*** END OF FILE ***/

View File

@ -581,7 +581,7 @@ void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
void fgPlatformJoystickOpen( SFG_Joystick* joy ) void fgPlatformJoystickOpen( SFG_Joystick* joy )
{ {
int i = 0; int i = 0;
OSStatus err; OSStatus err;
/* XXX FIXME: get joystick name in Mac */ /* XXX FIXME: get joystick name in Mac */
@ -856,7 +856,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
joy->num_axes = joy->num_buttons = 0; joy->num_axes = joy->num_buttons = 0;
joy->name[ 0 ] = '\0'; joy->name[ 0 ] = '\0';
fgPlatformJoystickOpen ( joy ); fgPlatformJoystickOpen ( joy );
} }
@ -878,7 +878,7 @@ static void fghJoystickInit( int ident )
fgJoystick[ ident ]->num_axes = fgJoystick[ ident ]->num_buttons = 0; fgJoystick[ ident ]->num_axes = fgJoystick[ ident ]->num_buttons = 0;
fgJoystick[ ident ]->error = GL_TRUE; fgJoystick[ ident ]->error = GL_TRUE;
fgPlatformJoystickInit( fgJoystick, ident ); fgPlatformJoystickInit( fgJoystick, ident );
fghJoystickOpen( fgJoystick[ ident ] ); fghJoystickOpen( fgJoystick[ ident ] );
} }
@ -906,7 +906,7 @@ void fgJoystickClose( void )
{ {
if( fgJoystick[ ident ] ) if( fgJoystick[ ident ] )
{ {
fgPlatformJoystickClose ( ident ); fgPlatformJoystickClose ( ident );
free( fgJoystick[ ident ] ); free( fgJoystick[ ident ] );
fgJoystick[ ident ] = NULL; fgJoystick[ ident ] = NULL;

View File

@ -179,7 +179,7 @@ static void fghcbCheckJoystickPolls( SFG_Window *window,
SFG_Enumerator *enumerator ) SFG_Enumerator *enumerator )
{ {
fg_time_t checkTime; fg_time_t checkTime;
if (window->State.JoystickPollRate > 0 && FETCH_WCB( *window, Joystick )) if (window->State.JoystickPollRate > 0 && FETCH_WCB( *window, Joystick ))
{ {
/* This window has a joystick to be polled (if pollrate <= 0, user needs to poll manually with glutForceJoystickFunc */ /* This window has a joystick to be polled (if pollrate <= 0, user needs to poll manually with glutForceJoystickFunc */
@ -200,7 +200,7 @@ static void fghcbCheckJoystickPolls( SFG_Window *window,
/* /*
* Check all windows for joystick polling * Check all windows for joystick polling
* *
* The real way to do this is to make use of the glutTimer() API * The real way to do this is to make use of the glutTimer() API
* to more cleanly re-implement the joystick API. Then, this code * to more cleanly re-implement the joystick API. Then, this code
* and all other "joystick timer" code can be yanked. * and all other "joystick timer" code can be yanked.
@ -237,18 +237,18 @@ static void fghCheckTimers( void )
} }
} }
/* Platform-dependent time in milliseconds, as an unsigned 64-bit integer. /* Platform-dependent time in milliseconds, as an unsigned 64-bit integer.
* This doesn't overflow in any reasonable time, so no need to worry about * This doesn't overflow in any reasonable time, so no need to worry about
* that. The GLUT API return value will however overflow after 49.7 days, * that. The GLUT API return value will however overflow after 49.7 days,
* which means you will still get in trouble when running the * which means you will still get in trouble when running the
* application for more than 49.7 days. * application for more than 49.7 days.
*/ */
fg_time_t fgSystemTime(void) fg_time_t fgSystemTime(void)
{ {
return fgPlatformSystemTime(); return fgPlatformSystemTime();
} }
/* /*
* Elapsed Time * Elapsed Time
*/ */
@ -446,7 +446,7 @@ void fgProcessWork(SFG_Window *window)
void FGAPIENTRY glutMainLoopEvent( void ) void FGAPIENTRY glutMainLoopEvent( void )
{ {
/* Process input */ /* Process input */
fgPlatformProcessSingleEvent (); fgPlatformProcessSingleEvent ();
if( fgState.Timers.First ) if( fgState.Timers.First )
fghCheckTimers( ); fghCheckTimers( );

View File

@ -1,163 +1,163 @@
VERSION @VERSION_MAJOR@.@VERSION_MINOR@ VERSION @VERSION_MAJOR@.@VERSION_MINOR@
EXPORTS EXPORTS
glutInit glutInit
glutInitWindowPosition glutInitWindowPosition
glutInitWindowSize glutInitWindowSize
glutInitDisplayMode glutInitDisplayMode
glutInitDisplayString glutInitDisplayString
glutMainLoop glutMainLoop
glutMainLoopEvent glutMainLoopEvent
glutLeaveMainLoop glutLeaveMainLoop
glutCreateWindow glutCreateWindow
glutCreateSubWindow glutCreateSubWindow
glutDestroyWindow glutDestroyWindow
glutSetWindow glutSetWindow
glutGetWindow glutGetWindow
glutSetWindowData glutSetWindowData
glutGetWindowData glutGetWindowData
glutSetWindowTitle glutSetWindowTitle
glutSetIconTitle glutSetIconTitle
glutReshapeWindow glutReshapeWindow
glutPositionWindow glutPositionWindow
glutShowWindow glutShowWindow
glutHideWindow glutHideWindow
glutIconifyWindow glutIconifyWindow
glutPushWindow glutPushWindow
glutPopWindow glutPopWindow
glutFullScreen glutFullScreen
glutPostWindowRedisplay glutPostWindowRedisplay
glutPostRedisplay glutPostRedisplay
glutSwapBuffers glutSwapBuffers
glutWarpPointer glutWarpPointer
glutSetCursor glutSetCursor
glutEstablishOverlay glutEstablishOverlay
glutRemoveOverlay glutRemoveOverlay
glutUseLayer glutUseLayer
glutPostOverlayRedisplay glutPostOverlayRedisplay
glutPostWindowOverlayRedisplay glutPostWindowOverlayRedisplay
glutShowOverlay glutShowOverlay
glutHideOverlay glutHideOverlay
glutCreateMenu glutCreateMenu
glutDestroyMenu glutDestroyMenu
glutGetMenu glutGetMenu
glutSetMenu glutSetMenu
glutGetMenuData glutGetMenuData
glutSetMenuData glutSetMenuData
glutAddMenuEntry glutAddMenuEntry
glutAddSubMenu glutAddSubMenu
glutChangeToMenuEntry glutChangeToMenuEntry
glutChangeToSubMenu glutChangeToSubMenu
glutRemoveMenuItem glutRemoveMenuItem
glutAttachMenu glutAttachMenu
glutDetachMenu glutDetachMenu
glutTimerFunc glutTimerFunc
glutIdleFunc glutIdleFunc
glutKeyboardFunc glutKeyboardFunc
glutSpecialFunc glutSpecialFunc
glutReshapeFunc glutReshapeFunc
glutPositionFunc glutPositionFunc
glutVisibilityFunc glutVisibilityFunc
glutDisplayFunc glutDisplayFunc
glutMouseFunc glutMouseFunc
glutMouseWheelFunc glutMouseWheelFunc
glutMotionFunc glutMotionFunc
glutPassiveMotionFunc glutPassiveMotionFunc
glutEntryFunc glutEntryFunc
glutCloseFunc glutCloseFunc
glutWMCloseFunc glutWMCloseFunc
glutKeyboardUpFunc glutKeyboardUpFunc
glutSpecialUpFunc glutSpecialUpFunc
glutJoystickFunc glutJoystickFunc
glutMenuStateFunc glutMenuStateFunc
glutMenuStatusFunc glutMenuStatusFunc
glutMenuDestroyFunc glutMenuDestroyFunc
glutOverlayDisplayFunc glutOverlayDisplayFunc
glutWindowStatusFunc glutWindowStatusFunc
glutSpaceballMotionFunc glutSpaceballMotionFunc
glutSpaceballRotateFunc glutSpaceballRotateFunc
glutSpaceballButtonFunc glutSpaceballButtonFunc
glutButtonBoxFunc glutButtonBoxFunc
glutDialsFunc glutDialsFunc
glutTabletMotionFunc glutTabletMotionFunc
glutTabletButtonFunc glutTabletButtonFunc
glutSetOption glutSetOption
glutGet glutGet
glutDeviceGet glutDeviceGet
glutGetModifiers glutGetModifiers
glutLayerGet glutLayerGet
glutBitmapCharacter glutBitmapCharacter
glutBitmapWidth glutBitmapWidth
glutStrokeCharacter glutStrokeCharacter
glutStrokeWidth glutStrokeWidth
glutBitmapLength glutBitmapLength
glutStrokeLength glutStrokeLength
glutBitmapHeight glutBitmapHeight
glutStrokeHeight glutStrokeHeight
glutBitmapString glutBitmapString
glutStrokeString glutStrokeString
glutWireCube glutWireCube
glutSolidCube glutSolidCube
glutWireSphere glutWireSphere
glutSolidSphere glutSolidSphere
glutWireCone glutWireCone
glutSolidCone glutSolidCone
glutWireTorus glutWireTorus
glutSolidTorus glutSolidTorus
glutWireDodecahedron glutWireDodecahedron
glutSolidDodecahedron glutSolidDodecahedron
glutWireOctahedron glutWireOctahedron
glutSolidOctahedron glutSolidOctahedron
glutWireTetrahedron glutWireTetrahedron
glutSolidTetrahedron glutSolidTetrahedron
glutWireIcosahedron glutWireIcosahedron
glutSolidIcosahedron glutSolidIcosahedron
glutWireRhombicDodecahedron glutWireRhombicDodecahedron
glutSolidRhombicDodecahedron glutSolidRhombicDodecahedron
glutWireSierpinskiSponge glutWireSierpinskiSponge
glutSolidSierpinskiSponge glutSolidSierpinskiSponge
glutWireTeapot glutWireTeapot
glutSolidTeapot glutSolidTeapot
glutWireTeacup glutWireTeacup
glutSolidTeacup glutSolidTeacup
glutWireTeaspoon glutWireTeaspoon
glutSolidTeaspoon glutSolidTeaspoon
glutWireCylinder glutWireCylinder
glutSolidCylinder glutSolidCylinder
glutGameModeString glutGameModeString
glutEnterGameMode glutEnterGameMode
glutLeaveGameMode glutLeaveGameMode
glutGameModeGet glutGameModeGet
glutVideoResizeGet glutVideoResizeGet
glutSetupVideoResizing glutSetupVideoResizing
glutStopVideoResizing glutStopVideoResizing
glutVideoResize glutVideoResize
glutVideoPan glutVideoPan
glutSetColor glutSetColor
glutGetColor glutGetColor
glutCopyColormap glutCopyColormap
glutIgnoreKeyRepeat glutIgnoreKeyRepeat
glutSetKeyRepeat glutSetKeyRepeat
glutForceJoystickFunc glutForceJoystickFunc
glutExtensionSupported glutExtensionSupported
glutReportErrors glutReportErrors
glutGetProcAddress glutGetProcAddress
glutExit glutExit
glutFullScreenToggle glutFullScreenToggle
glutLeaveFullScreen glutLeaveFullScreen
glutSetMenuFont glutSetMenuFont
glutGetModeValues glutGetModeValues
glutInitContextFlags glutInitContextFlags
glutInitContextVersion glutInitContextVersion
glutInitContextProfile glutInitContextProfile
glutInitErrorFunc glutInitErrorFunc
glutInitWarningFunc glutInitWarningFunc
__glutInitWithExit __glutInitWithExit
__glutCreateWindowWithExit __glutCreateWindowWithExit
__glutCreateMenuWithExit __glutCreateMenuWithExit
glutMultiButtonFunc glutMultiButtonFunc
glutMultiEntryFunc glutMultiEntryFunc
glutMultiMotionFunc glutMultiMotionFunc
glutMultiPassiveFunc glutMultiPassiveFunc
glutInitContextFunc glutInitContextFunc
glutAppStatusFunc glutAppStatusFunc
glutSetVertexAttribCoord3 glutSetVertexAttribCoord3

View File

@ -170,7 +170,7 @@ static int fghJoystickGetOEMProductName ( SFG_Joystick* joy, char *buf, int buf_
void fgPlatformJoystickOpen( SFG_Joystick* joy ) void fgPlatformJoystickOpen( SFG_Joystick* joy )
{ {
int i = 0; int i = 0;
joy->pJoystick.js.dwFlags = JOY_RETURNALL; joy->pJoystick.js.dwFlags = JOY_RETURNALL;
joy->pJoystick.js.dwSize = sizeof( joy->pJoystick.js ); joy->pJoystick.js.dwSize = sizeof( joy->pJoystick.js );

View File

@ -63,7 +63,7 @@ struct GXKeyList gxKeyList;
#endif /* _WIN32_WCE */ #endif /* _WIN32_WCE */
#ifdef _DEBUG #ifdef _DEBUG
/* /*
* WM_ message to string, for debugging * WM_ message to string, for debugging
* This is taken from the 8.0 SDK, so Windows 8 API and everything earlier is included * This is taken from the 8.0 SDK, so Windows 8 API and everything earlier is included
*/ */
@ -474,7 +474,7 @@ fg_time_t fgPlatformSystemTime ( void )
/* Check if we just wrapped */ /* Check if we just wrapped */
if (currTime32 < lastTime32) if (currTime32 < lastTime32)
timeEpoch++; timeEpoch++;
lastTime32 = currTime32; lastTime32 = currTime32;
return currTime32 | timeEpoch << 32; return currTime32 | timeEpoch << 32;
@ -542,7 +542,7 @@ static void fghPlatformOnWindowStatusNotify(SFG_Window *window, GLboolean visSta
{ {
SFG_Window *saved_window = fgStructure.CurrentWindow; SFG_Window *saved_window = fgStructure.CurrentWindow;
/* On win32 we only have two states, window displayed and window not displayed (iconified) /* On win32 we only have two states, window displayed and window not displayed (iconified)
* We map these to GLUT_FULLY_RETAINED and GLUT_HIDDEN respectively. * We map these to GLUT_FULLY_RETAINED and GLUT_HIDDEN respectively.
*/ */
INVOKE_WCB( *window, WindowStatus, ( visState ? GLUT_FULLY_RETAINED:GLUT_HIDDEN ) ); INVOKE_WCB( *window, WindowStatus, ( visState ? GLUT_FULLY_RETAINED:GLUT_HIDDEN ) );
@ -592,7 +592,7 @@ static LRESULT fghWindowProcKeyPress(SFG_Window *window, UINT uMsg, GLboolean ke
rControl = 0, rShift = 0, rAlt = 0; rControl = 0, rShift = 0, rAlt = 0;
int keypress = -1; int keypress = -1;
/* if keydown, check for repeat */ /* if keydown, check for repeat */
/* If repeat is globally switched off, it cannot be switched back on per window. /* If repeat is globally switched off, it cannot be switched back on per window.
* But if it is globally switched on, it can be switched off per window. This matches * But if it is globally switched on, it can be switched off per window. This matches
@ -601,7 +601,7 @@ static LRESULT fghWindowProcKeyPress(SFG_Window *window, UINT uMsg, GLboolean ke
*/ */
if( keydown && ( fgState.KeyRepeat==GLUT_KEY_REPEAT_OFF || window->State.IgnoreKeyRepeat==GL_TRUE ) && (HIWORD(lParam) & KF_REPEAT) ) if( keydown && ( fgState.KeyRepeat==GLUT_KEY_REPEAT_OFF || window->State.IgnoreKeyRepeat==GL_TRUE ) && (HIWORD(lParam) & KF_REPEAT) )
return 1; return 1;
/* Remember the current modifiers state so user can query it from their callback */ /* Remember the current modifiers state so user can query it from their callback */
fgState.Modifiers = fgPlatformGetModifiers( ); fgState.Modifiers = fgPlatformGetModifiers( );
@ -715,7 +715,7 @@ static LRESULT fghWindowProcKeyPress(SFG_Window *window, UINT uMsg, GLboolean ke
keypress = GLUT_KEY_F4; keypress = GLUT_KEY_F4;
} }
#endif #endif
if( keypress != -1 ) if( keypress != -1 )
if (keydown) if (keydown)
INVOKE_WCB( *window, Special, INVOKE_WCB( *window, Special,
@ -756,7 +756,7 @@ SFG_Window* fghWindowUnderCursor(SFG_Window *window)
mouse_pos.x = GET_X_LPARAM(mouse_pos_dw); mouse_pos.x = GET_X_LPARAM(mouse_pos_dw);
mouse_pos.y = GET_Y_LPARAM(mouse_pos_dw); mouse_pos.y = GET_Y_LPARAM(mouse_pos_dw);
ScreenToClient( window->Window.Handle, &mouse_pos ); ScreenToClient( window->Window.Handle, &mouse_pos );
hwnd = ChildWindowFromPoint(window->Window.Handle, mouse_pos); hwnd = ChildWindowFromPoint(window->Window.Handle, mouse_pos);
if (hwnd && hwnd!=window->Window.Handle) /* can be NULL if mouse outside parent by the time we get here, or can be same as parent if we didn't find a child */ if (hwnd && hwnd!=window->Window.Handle) /* can be NULL if mouse outside parent by the time we get here, or can be same as parent if we didn't find a child */
{ {
@ -888,7 +888,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
width = LOWORD(lParam); width = LOWORD(lParam);
height = HIWORD(lParam); height = HIWORD(lParam);
#endif /* defined(_WIN32_WCE) */ #endif /* defined(_WIN32_WCE) */
/* Update state and call callback, if there was a change */ /* Update state and call callback, if there was a change */
fghOnReshapeNotify(window, width, height, GL_FALSE); fghOnReshapeNotify(window, width, height, GL_FALSE);
} }
@ -935,15 +935,15 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
if (!IsIconic(window->Window.Handle)) if (!IsIconic(window->Window.Handle))
{ {
RECT windowRect; RECT windowRect;
/* lParam contains coordinates of top-left of client area. /* lParam contains coordinates of top-left of client area.
* Get top-left of non-client area of window, matching coordinates of * Get top-left of non-client area of window, matching coordinates of
* glutInitPosition and glutPositionWindow, but not those of * glutInitPosition and glutPositionWindow, but not those of
* glutGet(GLUT_WINDOW_X) and glutGet(GLUT_WINDOW_Y), which return * glutGet(GLUT_WINDOW_X) and glutGet(GLUT_WINDOW_Y), which return
* top-left of client area. * top-left of client area.
*/ */
GetWindowRect( window->Window.Handle, &windowRect ); GetWindowRect( window->Window.Handle, &windowRect );
if (window->Parent) if (window->Parent)
{ {
/* For child window, we should return relative to upper-left /* For child window, we should return relative to upper-left
@ -1031,7 +1031,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
{ {
TRACKMOUSEEVENT tme; TRACKMOUSEEVENT tme;
/* Cursor just entered window, set cursor look */ /* Cursor just entered window, set cursor look */
fgSetCursor ( window, window->State.Cursor ) ; fgSetCursor ( window, window->State.Cursor ) ;
/* If an EntryFunc callback is specified by the user, also /* If an EntryFunc callback is specified by the user, also
@ -1090,7 +1090,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
case WM_PAINT: case WM_PAINT:
{ {
RECT rect; RECT rect;
/* As per docs, upon receiving WM_PAINT, first check if the update region is not empty before you call BeginPaint */ /* As per docs, upon receiving WM_PAINT, first check if the update region is not empty before you call BeginPaint */
if (GetUpdateRect(hWnd,&rect,FALSE)) if (GetUpdateRect(hWnd,&rect,FALSE))
{ {
@ -1279,7 +1279,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
{ {
int wheel_number = 0; /* Only one scroll wheel on windows */ int wheel_number = 0; /* Only one scroll wheel on windows */
#if defined(_WIN32_WCE) #if defined(_WIN32_WCE)
int modkeys = LOWORD(wParam); int modkeys = LOWORD(wParam);
short ticks = (short)HIWORD(wParam); short ticks = (short)HIWORD(wParam);
/* commented out as should not be needed here, mouse motion is processed in WM_MOUSEMOVE first: /* commented out as should not be needed here, mouse motion is processed in WM_MOUSEMOVE first:
xPos = LOWORD(lParam); -- straight from docs, not consistent with mouse nutton and mouse motion above (which i think is wrong) xPos = LOWORD(lParam); -- straight from docs, not consistent with mouse nutton and mouse motion above (which i think is wrong)
@ -1296,10 +1296,10 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
window = fghWindowUnderCursor(window); window = fghWindowUnderCursor(window);
fgState.MouseWheelTicks += ticks; fgState.MouseWheelTicks += ticks;
if ( abs ( fgState.MouseWheelTicks ) >= WHEEL_DELTA ) if ( abs ( fgState.MouseWheelTicks ) >= WHEEL_DELTA )
{ {
int direction = ( fgState.MouseWheelTicks > 0 ) ? 1 : -1; int direction = ( fgState.MouseWheelTicks > 0 ) ? 1 : -1;
if( ! FETCH_WCB( *window, MouseWheel ) && if( ! FETCH_WCB( *window, MouseWheel ) &&
! FETCH_WCB( *window, Mouse ) ) ! FETCH_WCB( *window, Mouse ) )
@ -1309,7 +1309,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
fgState.Modifiers = fgPlatformGetModifiers( ); fgState.Modifiers = fgPlatformGetModifiers( );
while( abs ( fgState.MouseWheelTicks ) >= WHEEL_DELTA ) while( abs ( fgState.MouseWheelTicks ) >= WHEEL_DELTA )
{ {
if( FETCH_WCB( *window, MouseWheel ) ) if( FETCH_WCB( *window, MouseWheel ) )
INVOKE_WCB( *window, MouseWheel, INVOKE_WCB( *window, MouseWheel,
( wheel_number, ( wheel_number,
@ -1319,7 +1319,7 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
) )
); );
else /* No mouse wheel, call the mouse button callback twice */ else /* No mouse wheel, call the mouse button callback twice */
{ {
/* /*
* Map wheel zero to button 3 and 4; +1 to 3, -1 to 4 * Map wheel zero to button 3 and 4; +1 to 3, -1 to 4
* " " one +1 to 5, -1 to 6, ... * " " one +1 to 5, -1 to 6, ...
@ -1338,13 +1338,13 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
( button, GLUT_UP, ( button, GLUT_UP,
window->State.MouseX, window->State.MouseY ) window->State.MouseX, window->State.MouseY )
); );
} }
fgState.MouseWheelTicks -= WHEEL_DELTA * direction; fgState.MouseWheelTicks -= WHEEL_DELTA * direction;
} }
fgState.Modifiers = INVALID_MODIFIERS; fgState.Modifiers = INVALID_MODIFIERS;
} }
/* Per docs, should return zero */ /* Per docs, should return zero */
lRet = 0; lRet = 0;
} }
@ -1498,60 +1498,60 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
break; break;
#ifdef WM_TOUCH #ifdef WM_TOUCH
/* handle multi-touch messages */ /* handle multi-touch messages */
case WM_TOUCH: case WM_TOUCH:
{ {
unsigned int numInputs = (unsigned int)wParam; unsigned int numInputs = (unsigned int)wParam;
unsigned int i = 0; unsigned int i = 0;
TOUCHINPUT* ti = (TOUCHINPUT*)malloc( sizeof(TOUCHINPUT)*numInputs); TOUCHINPUT* ti = (TOUCHINPUT*)malloc( sizeof(TOUCHINPUT)*numInputs);
if (fghGetTouchInputInfo == (pGetTouchInputInfo)0xDEADBEEF) { if (fghGetTouchInputInfo == (pGetTouchInputInfo)0xDEADBEEF) {
fghGetTouchInputInfo = (pGetTouchInputInfo)GetProcAddress(GetModuleHandle("user32"),"GetTouchInputInfo"); fghGetTouchInputInfo = (pGetTouchInputInfo)GetProcAddress(GetModuleHandle("user32"),"GetTouchInputInfo");
fghCloseTouchInputHandle = (pCloseTouchInputHandle)GetProcAddress(GetModuleHandle("user32"),"CloseTouchInputHandle"); fghCloseTouchInputHandle = (pCloseTouchInputHandle)GetProcAddress(GetModuleHandle("user32"),"CloseTouchInputHandle");
} }
if (!fghGetTouchInputInfo) { if (!fghGetTouchInputInfo) {
free( (void*)ti ); free( (void*)ti );
break; break;
} }
if (fghGetTouchInputInfo( (HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT) )) { if (fghGetTouchInputInfo( (HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT) )) {
/* Handle each contact point */ /* Handle each contact point */
for (i = 0; i < numInputs; ++i ) { for (i = 0; i < numInputs; ++i ) {
POINT tp; POINT tp;
tp.x = TOUCH_COORD_TO_PIXEL(ti[i].x); tp.x = TOUCH_COORD_TO_PIXEL(ti[i].x);
tp.y = TOUCH_COORD_TO_PIXEL(ti[i].y); tp.y = TOUCH_COORD_TO_PIXEL(ti[i].y);
ScreenToClient( hWnd, &tp ); ScreenToClient( hWnd, &tp );
ti[i].dwID = ti[i].dwID * 2; ti[i].dwID = ti[i].dwID * 2;
if (ti[i].dwFlags & TOUCHEVENTF_DOWN) { if (ti[i].dwFlags & TOUCHEVENTF_DOWN) {
INVOKE_WCB( *window, MultiEntry, ( ti[i].dwID, GLUT_ENTERED ) ); INVOKE_WCB( *window, MultiEntry, ( ti[i].dwID, GLUT_ENTERED ) );
INVOKE_WCB( *window, MultiButton, ( ti[i].dwID, tp.x, tp.y, 0, GLUT_DOWN ) ); INVOKE_WCB( *window, MultiButton, ( ti[i].dwID, tp.x, tp.y, 0, GLUT_DOWN ) );
} else if (ti[i].dwFlags & TOUCHEVENTF_MOVE) { } else if (ti[i].dwFlags & TOUCHEVENTF_MOVE) {
INVOKE_WCB( *window, MultiMotion, ( ti[i].dwID, tp.x, tp.y ) ); INVOKE_WCB( *window, MultiMotion, ( ti[i].dwID, tp.x, tp.y ) );
} else if (ti[i].dwFlags & TOUCHEVENTF_UP) { } else if (ti[i].dwFlags & TOUCHEVENTF_UP) {
INVOKE_WCB( *window, MultiButton, ( ti[i].dwID, tp.x, tp.y, 0, GLUT_UP ) ); INVOKE_WCB( *window, MultiButton, ( ti[i].dwID, tp.x, tp.y, 0, GLUT_UP ) );
INVOKE_WCB( *window, MultiEntry, ( ti[i].dwID, GLUT_LEFT ) ); INVOKE_WCB( *window, MultiEntry, ( ti[i].dwID, GLUT_LEFT ) );
} }
} }
} }
fghCloseTouchInputHandle((HTOUCHINPUT)lParam); fghCloseTouchInputHandle((HTOUCHINPUT)lParam);
free( (void*)ti ); free( (void*)ti );
lRet = 0; /*DefWindowProc( hWnd, uMsg, wParam, lParam );*/ lRet = 0; /*DefWindowProc( hWnd, uMsg, wParam, lParam );*/
break; break;
} }
#endif #endif
#ifdef WM_INPUT #ifdef WM_INPUT
case WM_INPUT: case WM_INPUT:
/* Added by Jinrong Xie <stonexjr at gmail.com> for SpaceNavigator support on Windows. Dec 2014 */ /* Added by Jinrong Xie <stonexjr at gmail.com> for SpaceNavigator support on Windows. Dec 2014 */
if (fgHasSpaceball()) if (fgHasSpaceball())
{ {
fgSpaceballHandleWinEvent(hWnd, wParam, lParam); fgSpaceballHandleWinEvent(hWnd, wParam, lParam);
} }
break; break;
#endif #endif
default: default:
/* Handle unhandled messages */ /* Handle unhandled messages */
@ -1615,7 +1615,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
window->State.DesiredWidth = window->State.pWState.OldRect.right - window->State.pWState.OldRect.left; window->State.DesiredWidth = window->State.pWState.OldRect.right - window->State.pWState.OldRect.left;
window->State.DesiredHeight = window->State.pWState.OldRect.bottom - window->State.pWState.OldRect.top; window->State.DesiredHeight = window->State.pWState.OldRect.bottom - window->State.pWState.OldRect.top;
} }
/* We'll finish off the fullscreen operation below after the other GLUT_POSITION_WORK|GLUT_SIZE_WORK|GLUT_ZORDER_WORK */ /* We'll finish off the fullscreen operation below after the other GLUT_POSITION_WORK|GLUT_SIZE_WORK|GLUT_ZORDER_WORK */
} }
else else
@ -1626,7 +1626,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
RECT rect; RECT rect;
HMONITOR hMonitor; HMONITOR hMonitor;
MONITORINFO mi; MONITORINFO mi;
/* save current window rect, style, exstyle and maximized state */ /* save current window rect, style, exstyle and maximized state */
window->State.pWState.OldMaximized = !!IsZoomed(window->Window.Handle); window->State.pWState.OldMaximized = !!IsZoomed(window->Window.Handle);
if (window->State.pWState.OldMaximized) if (window->State.pWState.OldMaximized)
@ -1649,7 +1649,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
/* For fullscreen mode, find the monitor that is covered the most /* For fullscreen mode, find the monitor that is covered the most
* by the window and get its rect as the resize target. * by the window and get its rect as the resize target.
*/ */
hMonitor= MonitorFromWindow(window->Window.Handle, MONITOR_DEFAULTTONEAREST); hMonitor= MonitorFromWindow(window->Window.Handle, MONITOR_DEFAULTTONEAREST);
mi.cbSize = sizeof(mi); mi.cbSize = sizeof(mi);
GetMonitorInfo(hMonitor, &mi); GetMonitorInfo(hMonitor, &mi);
@ -1668,7 +1668,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
/* Now deal with normal position, reshape and z order requests (some might have been set when handling GLUT_FULLSCREEN_WORK above */ /* Now deal with normal position, reshape and z order requests (some might have been set when handling GLUT_FULLSCREEN_WORK above */
{ {
/* get rect describing window's current position and size, /* get rect describing window's current position and size,
* in screen coordinates and in FreeGLUT format * in screen coordinates and in FreeGLUT format
* (size (right-left, bottom-top) is client area size, top and left * (size (right-left, bottom-top) is client area size, top and left
* are outside of window including decorations). * are outside of window including decorations).
@ -1678,7 +1678,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
if (workMask & GLUT_POSITION_WORK) if (workMask & GLUT_POSITION_WORK)
{ {
flags &= ~SWP_NOMOVE; flags &= ~SWP_NOMOVE;
/* Move rect so that top-left is at requested position */ /* Move rect so that top-left is at requested position */
/* This also automatically makes sure that child window requested coordinates are relative /* This also automatically makes sure that child window requested coordinates are relative
* to top-left of parent's client area (needed input for SetWindowPos on child windows), * to top-left of parent's client area (needed input for SetWindowPos on child windows),
@ -1689,7 +1689,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
if (workMask & GLUT_SIZE_WORK) if (workMask & GLUT_SIZE_WORK)
{ {
flags &= ~SWP_NOSIZE; flags &= ~SWP_NOSIZE;
/* Note on maximizing behavior of Windows: the resize borders are off /* Note on maximizing behavior of Windows: the resize borders are off
* the screen such that the client area extends all the way from the * the screen such that the client area extends all the way from the
* leftmost corner to the rightmost corner to maximize screen real * leftmost corner to the rightmost corner to maximize screen real
@ -1724,7 +1724,7 @@ void fgPlatformPosResZordWork(SFG_Window* window, unsigned int workMask)
if (!window->Parent) if (!window->Parent)
/* get the window rect from this to feed to SetWindowPos, correct for window decorations */ /* get the window rect from this to feed to SetWindowPos, correct for window decorations */
fghComputeWindowRectFromClientArea_QueryWindow(&clientRect,window,TRUE); fghComputeWindowRectFromClientArea_QueryWindow(&clientRect,window,TRUE);
/* Do the requested positioning, moving, and z order push/pop. */ /* Do the requested positioning, moving, and z order push/pop. */
SetWindowPos( window->Window.Handle, SetWindowPos( window->Window.Handle,
insertAfter, insertAfter,