evdev: switch to a normalized transformation matrix
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 26 Aug 2014 00:34:05 +0000 (10:34 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 1 Sep 2014 01:23:54 +0000 (11:23 +1000)
commit13972efd82813bdb0089b0234fec9c3700638d0d
treed48ccaff040f3379d16527f3abe568ebe51c88d7
parent748d094c9cb6a5f77d9d02853deef49f976b4446
evdev: switch to a normalized transformation matrix

The big change here is the requirement to have the translation component in a
device-normalized coordinate space. Without that, we cannot reliably rotate as
the coordinate space is effectively unknown and may differ between the axes.
This affects any rotation matrix or translation matrix, pure scale matrices
were working just fine since they're unit-less.

Requiring the matrix in device-normalized space makes it possible for libinput
to rotate or otherwise handle the matrix independent of the screen resolution.
The rotation matrix is documented in a bit more detail to make it easier for
users to figure it out.

This changes the definition of the WL_CALIBRATION property (which is currently
broken).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
src/evdev.c
src/evdev.h
src/libinput.h