[PATCH v6] protocol: Extend wl_touch with touchpoint shape and orientation
Dennis Kempin
denniskempin at google.com
Fri Nov 4 16:30:23 UTC 2016
Thanks for catching my ESL mistakes, Yong! :)
I am uploading an updated version!
On Thu, Nov 3, 2016 at 7:39 PM Yong Bakos <junk at humanoriented.com> wrote:
> Hi Dennis,
>
> > On Nov 3, 2016, at 3:52 PM, Dennis Kempin <denniskempin at google.com>
> wrote:
> >
> > This CL updates the wl_touch interface with a shape and
> > orientation event.
> > The shape/orientation of a touch point is not relevant for most UI
> > applications, but allows a better experience in some cases
> > such as drawing apps.
> >
> > The events are used by the compositor to inform the client
> > about changes in the shape and orientation of a touchpoint, which is
> > approximated by an ellipse and it's angle to the y-axis.
> >
> > The event is optional and only sent when 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.
> >
> > Signed-off-by: Dennis Kempin <denniskempin at google.com>
>
> My apologies for not noticing the following sooner, but some issues are
> noted
> inline below. Also, the line lengths of those descriptions should max out
> at
> 80 characters (please). I've noted them inline for convenience.
>
>
> > ---
> > protocol/wayland.xml | 79
> +++++++++++++++++++++++++++++++++++++++++++++++++---
> > 1 file changed, 75 insertions(+), 4 deletions(-)
> >
> > diff --git a/protocol/wayland.xml b/protocol/wayland.xml
> > index 6c6d078..31902e6 100644
> > --- a/protocol/wayland.xml
> > +++ b/protocol/wayland.xml
> > @@ -1669,7 +1669,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
> > @@ -1778,7 +1778,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
> > @@ -2092,7 +2092,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.
> > @@ -2256,7 +2256,14 @@
> >
> > <event name="frame">
> > <description summary="end of touch frame event">
> > - Indicates the end of a contact point list.
> > + Indicates the end of a set of events that logically belong
> together.
> > + A client is expected to accumulate the data in all events within
> the
> > + frame before proceeding.
> > +
> > + A wl_touch.frame terminates at least one event but otherwise no
> > + guarantee is provided about the set of events within a frame. A
> client
> > + must assume that any state not updated in a frame is unchanged
> from the
> > + previously known state.
> > </description>
> > </event>
> >
> > @@ -2276,6 +2283,70 @@
> > <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 event does not occur on its own. It is sent before a
>
> This event does not...
>
>
> > + wl_touch.frame event and carries the new shape information for
> > + any previously reported, or new touch points of that frame.
> > +
> > + Other events describing the touch point such as wl_touch.down,
> > + wl_touch.motion or wl_touch.orientation may be sent within the
> > + same wl_touch.frame. A client should treat these events as a single
> > + logical touch point update. The order of wl_touch.shape,
> > + wl_touch.orientation and wl_touch.motion is not guaranteed.
> > + A wl_touch.down event is guaranteed to occur before the first
> > + wl_touch.shape event for this touch ID but both events may occur
> within the
>
> Above line exceeds 80 characters followed by other protocol descriptions.
>
>
> > + same wl_touch.frame.
> > +
> > + A touchpoint shape is approximated by an ellipse through the major
> and
> > + minor axis length. The major axis length describes the longer
> diameter
> > + of the ellipse, while the minor axis length describes the shorter
> > + diameter. Major and minor are orthogonal and both are specified in
> > + surface-local coordinates. The center of the ellipse is always at
> the
> > + touchpoint location as reported by wl_touch.down or wl_touch.move.
> > +
> > + 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
>
> The two lines above exceed 80 characters followed by other protocol
> descriptions.
>
>
> > + it did not receive this event.
> > + </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-local coordinates"/>
> > + <arg name="minor" type="fixed" summary="length of the minor axis
> in surface-local coordinates"/>
> > + </event>
> > +
> > + <event name="orientation" since="6">
> > + <description summary="update orientation of touch point">
> > + Sent when a touchpoint has changed its orientation.
> > +
> > + This event event does not occur on its own. It is sent before a
> > + wl_touch.frame event and carries the new shape information for
> > + any previously reported, or new touch points of that frame.
> > +
> > + Other events describing the touch point such as wl_touch.down,
> > + wl_touch.motion or wl_touch.shape may be sent within the
> > + same wl_touch.frame. A client should treat these events as a single
> > + logical touch point update. The order of wl_touch.shape,
> > + wl_touch.orientation and wl_touch.motion is not guaranteed.
> > + A wl_touch.down event is guaranteed to occur before the first
> > + wl_touch.orientation event for this touch ID but both events may
> occur
> > + within the same wl_touch.frame.
> > +
> > + The orientation describes the clockwise angle of a touchpoint's
> major axis to
> > + the positive surface y-axis and is normalized to the -180 to +180
> degrees range.
>
> -180 to +180 degree range.
>
>
> > + The granuality of orientation depends on the touch device, some
> devices only
>
> The granularity of...
>
> Above three lines exceeds 80 characters followed by other protocol
> descriptions.
>
> Regards,
> yong
>
>
> > + support binary rotation values between 0 and 90 degrees.
> > +
> > + This event is only sent by the compositor if the touch device
> supports
> > + orientation reports.
> > + </description>
> > + <arg name="id" type="int" summary="the unique ID of this touch
> point"/>
> > + <arg name="orientation" type="fixed" summary="angle between major
> axis and positive surface y-axis in degrees"/>
> > + </event>
> > </interface>
> >
> > <interface name="wl_output" version="3">
> > --
> > 2.8.0.rc3.226.g39d4020
> >
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20161104/8443ed28/attachment.html>
More information about the wayland-devel
mailing list