For high-sensitivity mice, WM_INPUT is getting called multiple times per frame and the original implementation of RAW mouse for Win32 was only recording the most recent dx/dy. This change now accumulates delta from WM_INPUT in relative mode.
For this to work correctly, each time Mouse::GetState is called in relative movement mode, the accumulated delta is reset so the assumption is that this is called once per frame.
Since this does not cover all usage scenarios, there is new optional method for Mouse EndOfInputFrame that should be called once per render call. This turns off the 'auto-reset' behavior of GetState and instead clears it once per frame in this method instead.
For high-sensitivity mice,
WM_INPUT
is getting called multiple times per frame and the original implementation of RAW mouse for Win32 was only recording the most recent dx/dy. This change now accumulates delta fromWM_INPUT
in relative mode.For this to work correctly, each time
Mouse::GetState
is called in relative movement mode, the accumulated delta is reset so the assumption is that this is called once per frame.Since this does not cover all usage scenarios, there is new optional method for Mouse EndOfInputFrame that should be called once per render call. This turns off the 'auto-reset' behavior of GetState and instead clears it once per frame in this method instead.