Am 28.01.2005 um 00:44 schrieb Tim Rowledge:
Bert Freudenberg bert@impara.de wrote:
Anyway, here's what we actually needed: raw mouse delta events, that is, a relative movement of the mouse that should not move the pointer (we hide it anyway) and which is not restricted by the screen extent. This is necessary for 3D navigation where a horizontal mouse movement should result in a 360 degrees or more turn.
I'm puzzled why there's a problem. I assume that the user drags across the desktop (physical that is), picks up the mouse and drags some more... ah, now if the OS imposes some restriction on the range of values available there would be a point where it just butts up against the 'edge' or does something else annoying. And in fact Squeak imposes a 16bit value limit if you use the old primitive mouse point call and it looks like the win32 vm has a 16bit limit in the event stuff.
Interesting problem :-)
Right on.
The problem is that in common UIs we only get the position of the mouse pointer in a mouse move event. I know for sure in X11 and Windows, I suspect it's the same for OSX, too. When you reach the screen border no events are reported anymore. One has to resort to low-level libraries to access raw mouse data (the XInput extension on X, DirectInput on Windows, ...). I'm not quite sure where to stuff this - maybe a new ExtendedInputPlugin, which might provide access to all user interface devices, similar in spirit to XInput?
- Bert -