On Mon, 9 Apr 2018 12:12:49 +1000 Peter Hutterer <peter.hutte...@who-t.net> wrote:
> On Fri, Mar 23, 2018 at 02:00:56PM +0200, Pekka Paalanen wrote: > > From: Pekka Paalanen <pekka.paala...@collabora.co.uk> > > > > notify_touch_cal() is an extended form of notify_touch(), adding > > normalized touch coordinates which are necessary for calibrating a > > touchscreen. > > > > It would be possible to invert the transformation and convert from > > global coordinates to normalized device coordinates in input.c without > > adding this API, but this way it is more robust against code changes. > > > > Recovering normalized device coordinates is necessary because libinput > > calibration matrix must be given in normalized units, and it would be > > difficult to compute otherwise. Libinput API does not offer normalized > > coordinates directly either, but those can be fetched by pretending the > > output resolution is 1x1. > > > > Anticipating touch calibration mode, the old notify_touch() is renamed > > into a private process_touch_normal(), and the new notify_touch_cal() > > delegates to it. > > > > Co-developed by Louis-Francis and Pekka. > > > > Cc: Louis-Francis Ratté-Boulianne <l...@collabora.com> > > Signed-off-by: Pekka Paalanen <pekka.paala...@collabora.co.uk> > > --- > > libweston/compositor.h | 21 +++++++++++++++- > > libweston/input.c | 60 > > ++++++++++++++++++++++++++++++++++++--------- > > libweston/libinput-device.c | 11 ++++++++- > > 3 files changed, 79 insertions(+), 13 deletions(-) > > --- a/libweston/input.c > > +++ b/libweston/input.c > > @@ -2336,17 +2336,10 @@ weston_touch_set_focus(struct weston_touch *touch, > > struct weston_view *view) > > touch->focus = view; > > } > > > > -/** > > - * notify_touch - emulates button touches and notifies surfaces > > accordingly. > > - * > > - * It assumes always the correct cycle sequence until it gets here: > > touch_down > > - * → touch_update → ... → touch_update → touch_end. The driver is > > responsible > > - * for sending along such order. > > - * > > - */ > > -WL_EXPORT void > > -notify_touch(struct weston_touch_device *device, const struct timespec > > *time, > > - int touch_id, double double_x, double double_y, int touch_type) > > +static void > > +process_touch_normal(struct weston_touch_device *device, > > + const struct timespec *time, int touch_id, > > + double double_x, double double_y, int touch_type) > > IMO just process_touch() is better, otherwise it's more confusing ("wait? > why is this normal? and what's not normal? or is this an abbreviation of > normalized?") Actually, this is really the normal path. The not normal path is the one for calibrator. You see the non-normal path added in "input: introduce touch event mode for calibrator". I didn't want to call it process_touch() originally, because it doesn't process all touches, just the usual case. I even call it WESTON_TOUCH_MODE_NORMAL. Would you have other suggestions? Thanks, pq
pgpEUedgt3Y7u.pgp
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel