Nice! Do you think its reasonable to extend the allowed use of this protocol to other kinds of direct-input devices? I don't see anything which would prevent this protocol from working equally well to calibrate the pen input for a tablet PC or Cintiq for example. The compositor would need to obviously have pen support and notify the client of the device in a "touch_device" event, but otherwise it looks like the client doesn't really have to care about the underlying device -- the protocol provides its own definition of down/up/motion events. Just the documentation would need to be tweaked.
Jason --- Now instead of four in the eights place / you’ve got three, ‘Cause you added one / (That is to say, eight) to the two, / But you can’t take seven from three, / So you look at the sixty-fours.... On Fri, Mar 23, 2018 at 5:00 AM, Pekka Paalanen <ppaala...@gmail.com> wrote: > From: Pekka Paalanen <pekka.paala...@collabora.co.uk> > > Hi all, > > the existing touchscreen calibrator in Weston has several problems. This > proposal intends to solve them all by introducing a new protocol > extension for touchscreen calibration and a new calibrator tool. > > The benefits of the new tool, which the old tool lacks, are: > > - You can unambiguously pick a physical touch device to calibrate. > > - You can be sure your touch events come only from that particular > device, and that you cannot miss touch events even if the current > calibration is horribly wrong. > > - You can be sure the calibration window (pattern) is shown on the right > output with the right coordinates. > > - You can unambiguously calibrate even multiple touchscreens that are > all cloned (showing the same image). > > - You get a libinput style calibation matrix instead of the > WL_CALIBRATION format which depends on output resolution. > > - You can load a new calibration into the compositor without playing > tricks with udev or restarting the compositor. > > There is more discussion about the topic at: > https://phabricator.freedesktop.org/T7868 > > This patch series depends on the clone mode series: > https://patchwork.freedesktop.org/series/32898/ > > There is a full branch available at: > https://gitlab.collabora.com/pq/weston/commits/touchcalib-1 > > This series contains many patches that could be landed separately, but I > have not pulled them out at this point. > > A notable single patch is patch 3 which deprecates the udev property > WL_CALIBRATION. It is completely already superseded by > LIBINPUT_CALIBRATION_MATRIX property. I would hope to remove > WL_CALIBRATION support after few releases and the old calibrator tool > with it. > > Patch 21 adds the touchscreen calibration protocol, patch 24 adds the > new calibrator tool, and patch 25 gives suggestions on how to let the > server permanently store a new calibration into udev rules. > > As LIBINPUT_CALIBRATION_MATRIX is automatically handled by libinput, > being a description of the physical input device (like e.g. mouse dpi), > it perfectly possible to run Weston and the calibrator once to calibrate > your touchscreens, and then run whatever compositor you want. > > One major thing this patch series does not address is how a Wayland > client gets authorized to use the touchscreen calibration interface. The > interface offers two privileged actions: the ability to grab all touch > input (but with provision for the server to cancel at will - not > implemented in weston so far), and the ability to upload a new > calibration for a touch device. Obviously these should not be free for > all. The method implemented here is a simple global configuration > setting to advertise or not the touchscreen calibration interface. If > advertised, it is free for all. Therefore it is not advertised by > default. > > > Thanks, > pq > > > Louis-Francis Ratté-Boulianne (7): > input: introduce weston_touch_device > libweston: fix weston_touch_start_grab() arg name > input: move touchpoint counting up > input: introduce touch event mode for calibrator > libweston: implement touch calibration protocol > weston: add touchscreen_calibrator option > clients: add a new touchscreen calibrator > > Pekka Paalanen (18): > libinput: remove evdev_device::devnode > libinput: note if calibrating without an output > libinput: deprecate WL_CALIBRATION > libinput: log input device to output associations > libinput: make setting the same output a no-op > libinput: allow evdev_device_set_output(dev, NULL) > libinput: use head names for output matching > libweston: require connected heads for input devices > libinput: do not switch output associations on disable > man: document WESTON_LIBINPUT_LOG_PRIORITY env > tests: add test_seat_release() for symmetry > libinput: move calibration printing into do_set_calibration() > libweston: notify_touch API to use weston_touch_device > libweston: unexport weston_{pointer,keyboard,touch}_{create,destroy}() > libweston: introduce notify_touch_cal() and doc > input: do not forward unmatched touch-ups > protocol: add weston_touch_calibration > doc: add example calibration-helper script > > .gitignore | 1 + > Makefile.am | 21 +- > clients/touch-calibrator.c | 774 > ++++++++++++++++++++++++++++++++++ > clients/window.c | 4 +- > clients/window.h | 4 + > compositor/main.c | 68 +++ > doc/calibration-helper.bash | 44 ++ > libweston/compositor-wayland.c | 31 +- > libweston/compositor.c | 32 ++ > libweston/compositor.h | 174 +++++++- > libweston/input.c | 330 +++++++++++++-- > libweston/libinput-device.c | 238 ++++++++--- > libweston/libinput-device.h | 4 +- > libweston/libinput-seat.c | 88 +++- > libweston/libinput-seat.h | 1 + > libweston/touch-calibration.c | 667 +++++++++++++++++++++++++++++ > man/weston-drm.man | 4 + > man/weston.ini.man | 36 ++ > protocol/weston-touch-calibration.xml | 320 ++++++++++++++ > tests/weston-test.c | 64 ++- > 20 files changed, 2771 insertions(+), 134 deletions(-) > create mode 100644 clients/touch-calibrator.c > create mode 100755 doc/calibration-helper.bash > create mode 100644 libweston/touch-calibration.c > create mode 100644 protocol/weston-touch-calibration.xml > > -- > 2.16.1 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel