From: <ipe...@it...> - 2012-05-09 18:02:18
|
Hi everybody, I downloaded and tried freeglut for the first time (I have been using glut for quite a long time now). I found a (possible) bug in the way Mouse Wheel events are triggered. The first time that you scroll the mouse wheel and every time that you change direction, it misses two turns (wheel positions). Digging into the code I found that the accumulator fgState.MouseWheelTicks (which in windows xp is redundant) doesn't reset appropriately. I think that in the two checks against 120 you must include the equal sign (change > to >=). in file: freeglut_main.c, function: fgWindowProc(...) when handling WM_MOUSEWHEEL event after: case 0x020a: these two lines: if ( abs ( fgState.MouseWheelTicks ) > 120 ) while( abs ( fgState.MouseWheelTicks ) > 120 ) must be changed to: if ( abs ( fgState.MouseWheelTicks ) >= 120 ) while( abs ( fgState.MouseWheelTicks ) >= 120 ) I compiled the libraries (windows xp, DEV C++) with this modification and everything works fine. ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. |