Why do I get so few points(SDL_MOUSEMOTION) when I move fast |
sgrsgsrg
|
I think it's limited by what windows sends with its API, maybe it's locked on the main display frequency? If you want more points you'll need to interpolate between them. Like when you draw with a painting program, they all use some sort of bezier interpolation to make nice curves, otherwise it would looks like multiple segments linked to each other.
|
|||||||||||
|
Why do I get so few points(SDL_MOUSEMOTION) when I move fast |
MrOzBarry
|
I think most apps interpolate with curves, which isn't too bad if you have at least 3 points. I've seen this behaviour for years, and I don't think it's an issue with SDL.
On Tue, Sep 13, 2016 at 11:11 AM, sgrsgsrg wrote:
|
|||||||||||||
|
Why do I get so few points(SDL_MOUSEMOTION) when I move fast |
eric.w
|
Hi,
Try using relative mouse mode (SDL_SetRelativeMouseMode(SDL_True); ) - this requests raw mouse events, with no acceleration and at the full rate your mouse can send them. This is implemented on Windows, and I think, Linux. What OS / SDL version / mouse model was this on? The maximum event rate depends on the mouse. Eric On Tue, Sep 13, 2016 at 9:20 AM, Alex Barry wrote:
SDL mailing list http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org |
|||||||||||||||
|
Why do I get so few points(SDL_MOUSEMOTION) when I move fast |
Faluk
|
Or you can get the current position on the update and compare with the previous to check if there is any difference.
   ///--- Store the current information to the previous     m_iPreviousCoordX=m_iCurrentCoordX;     m_iPreviousCoordY=m_iCurrentCoordY;     m_uPreviousMouseState=m_uCurrentMouseState;      ///--- Update the current state of the mouse     m_uCurrentMouseState=SDL_GetMouseState(&m_iCurrentCoordX, &m_iCurrentCoordY); 2016-09-13 22:58 GMT+02:00 Eric Wasylishen:
|
|||||||||||||||||
|
NetCraft
|
Thanks. I'll try to interpolate my points via Bezier curve. Hope it helps
|
|||||||||||
|
Why do I get so few points(SDL_MOUSEMOTION) when I move fast |
Ryan C. Gordon
Guest
|
On 9/13/16 5:03 PM, Ismael Serrano wrote:
To be clear: SDL_GetMouseState() returns the last-known mouse positions, based on what events the OS has previously sent. It's more convenient in some cases than relying on SDL's event loop, but it's not any more accurate. --ryan. _______________________________________________ SDL mailing list http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org |
|||||||||||||
|
Why do I get so few points(SDL_MOUSEMOTION) when I move fast |
Ryan C. Gordon
Guest
|
On 9/13/16 11:11 AM, sgrsgsrg wrote:
Specifically: https://blogs.msdn.microsoft.com/oldnewthing/20031001-00/?p=42343/ If you're getting _really_ imprecise mouse input, you probably need to run the SDL event queue more often (is there an SDL_Delay() or something in your program?), as mouse resolution on Windows is limited to how fast you check for more mouse events. (Switching on relative mouse mode in SDL might help, as I assume Win32 RAWINPUT isn't limited in this way.) --ryan. _______________________________________________ SDL mailing list http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org |
|||||||||||||
|
NetCraft
|
I use SDL for Mac/Win/Android operating systems. So I think the solution will be different on those systems?
|
|||||||||||
|