dix: support the transformation matrix for relative devices.
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 8 Feb 2013 04:52:02 +0000 (14:52 +1000)
committerKeith Packard <keithp@keithp.com>
Fri, 8 Feb 2013 17:02:57 +0000 (09:02 -0800)
commitb58221f9da8c549d979215271359c6cd88b5568a
tree116d142be89e85ab53422b41aabfcefa1fc18311
parentb173eb2ae3349c557db1ff9e424fa540b8289bb2
dix: support the transformation matrix for relative devices.

The transformation matrix we previously stored was a scaled matrix based on
the axis ranges of the device. For relative movements, the scaling is not
required (or desired).

Store two separate matrices, one as requested by the client, one as the
product of [scale . matrix . inv_scale]. Depending on the type of movement,
apply the respective matrix.

For relative movements, also drop the translation component since it doesn't
really make sense to use that bit.

Input ABI 19

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
dix/devices.c
dix/getevents.c
include/inputstr.h