Hi everyone! I am working with David Reveman on his implementation of a wayland compositor in Chrome (see https://code.google.com/p/chromium/codesearch#chromium/src/components/exo/ ). As part of that I have been looking into reporting information about the shape of a touch, which is supported by most modern touch screen devices. This information can be used by the client for more complex touch interactions and improve gesture recognition algorithms or provide a better experience in drawing apps.
So I would like to propose this change to add a shape event, which can be used to report that information as an optional event. Since wl_touch has recently gotten a frame event, the shape event can be used in conjunction with that to report both location and shape in a single frame. Please let me know what you think about this patch. The reported values closely follow the linux multitouch protocol (see: https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt ). Also please let me know if you would like me to look into implementing this in weston before allowing this change into the protocol or any other requirements. Thanks! - Dennis On Fri, Mar 25, 2016 at 9:29 AM, Dennis Kempin <[email protected]> wrote: > This CL updates the wl_touch interface with a shape event. > The shape of a touch point is not relevant for most UI > applications, but allows a better experience in some cases > such as drawing app. > > The shape event is used by the compositor to inform the client > about changes in the shape of a touchpoint. That shape is > described by an ellipsis, which directly relates to the Linux > Multitouch Protocol ABS_TOUCH_MAJOR / MINOR / > ORIENTATION axes. > > The event is optional and only sent when the compositor and > the touch device support this type of information. The client is > responsible for making a reasonable assumption about the > touch shape if no shape is reported. > --- > protocol/wayland.xml | 28 ++++++++++++++++++++++++---- > 1 file changed, 24 insertions(+), 4 deletions(-) > > diff --git a/protocol/wayland.xml b/protocol/wayland.xml > index 8739cd3..85256ea 100644 > --- a/protocol/wayland.xml > +++ b/protocol/wayland.xml > @@ -1656,7 +1656,7 @@ > </request> > </interface> > > - <interface name="wl_seat" version="5"> > + <interface name="wl_seat" version="6"> > <description summary="group of input devices"> > A seat is a group of keyboards, pointer and touch devices. This > object is published as a global during start up, or when such a > @@ -1765,7 +1765,7 @@ > > </interface> > > - <interface name="wl_pointer" version="5"> > + <interface name="wl_pointer" version="6"> > <description summary="pointer input device"> > The wl_pointer interface represents one or more input devices, > such as mice, which control the pointer location and pointer_focus > @@ -2078,7 +2078,7 @@ > </event> > </interface> > > - <interface name="wl_keyboard" version="5"> > + <interface name="wl_keyboard" version="6"> > <description summary="keyboard input device"> > The wl_keyboard interface represents one or more keyboards > associated with a seat. > @@ -2192,7 +2192,7 @@ > </event> > </interface> > > - <interface name="wl_touch" version="5"> > + <interface name="wl_touch" version="6"> > <description summary="touchscreen input device"> > The wl_touch interface represents a touchscreen > associated with a seat. > @@ -2262,6 +2262,26 @@ > <request name="release" type="destructor" since="3"> > <description summary="release the touch object"/> > </request> > + > + <!-- Version 6 additions --> > + > + <event name="shape" since="6"> > + <description summary="update shape of touch point"> > + Sent when a touchpoint has changed its shape, this event can be included > + in the same frame as the contact point list to update position and shape > + simultaneously. > + A touchpoint shape is described by an ellipsis through a major and minor > axis > + length and orientation. > + This event is only sent by the compositor if the touch device supports > shape > + reports. The client has to make reasonable assumptions about the shape if > + it did not receive this message. > + </description> > + <arg name="id" type="int" summary="the unique ID of this touch point"/> > + <arg name="major" type="fixed" summary="length of the major > axis in surface space"/> > + <arg name="minor" type="fixed" summary="length of the minor > axis in surface space"/> > + <arg name="orientation" type="fixed" summary="orientation of > ellipsis in radians."/> > + </event> > + > </interface> > > <interface name="wl_output" version="2"> > -- > 2.8.0.rc3.226.g39d4020 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
