summaryrefslogtreecommitdiff
path: root/protocol
AgeCommit message (Collapse)AuthorFilesLines
2014-07-16protocol: add repeat_info event to wl_keyboardHEADrepeat-infoJonny Lamb1-2/+26
In the process wl_keyboard's version has been incremented. Given clients get the wl_keyboard from wl_seat without a version, wl_seat's version has also been incremented (wl_seat version 4 implies wl_keyboard version 4).
2014-06-18protocol: remove redundant 'the' in descriptionSilvan Jegen1-2/+2
Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
2014-06-03protocol: add wl_surface errors enum for bad scale and transform valuesJonny Lamb1-0/+15
2014-05-09protocol: Fix order of wl_pointer, wl_keyboard and wl_touch messagesJonas Ådahl1-12/+19
The "release" message of wl_pointer, wl_keyboard and wl_touch introduced in version 3 was placed first in the respective interface XML element, causing wayland-scanner to misbehave and set the version number of the "release" message to all subsequent messages with no explicitly specified "since" version. Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2014-04-07shm: Disallow shrinking shm poolsKristian Høgsberg1-1/+2
Unused shm space will be automatically reclaimed if unused or can be explicitly returned by using fallocate FALLOC_FL_PUNCH_HOLE. https://bugs.freedesktop.org/show_bug.cgi?id=74632
2014-04-01protocol: Document how clients are supposed to get the xkb keycodeRui Matos1-1/+2
This encodes what everyone is doing and avoids other implementers having to guess.
2014-03-11protocol: try to clarify frame callback semanticsPekka Paalanen1-9/+20
"the callback event will arrive after the next output refresh" is wrong, if you interpret "output refresh" as framebuffer flip or the moment when the new pixels turn into light the first time. Weston has probably never worked this way. Weston triggers the frame callbacks when it submits repainting commands to the GPU, which is before the framebuffer flip. Strike the incorrect claim, and the rest of the paragraph which no longer offers useful information. As a replacement, expand on the "throttling and driving animations" characteristic. The main purpose is to let clients animate at the display refresh rate, while avoiding drawing frames that will never be presented. The new claim is that the server should give some time between triggering frame callbacks and repainting itself, for clients to draw and commit. This is somewhat intimate with the repaint scheduling algorithm a compositor uses, but hopefully the right intention. Another point of this update is to imply, that frame callbacks should not be used to count compositor repaint cycles nor monitor refresh cycles. It has never been guaranteed to work. Removing the mention of frame callback without an attach hopefully discourages such use. v2: Don't just remove a paragraph, but add useful information about the request's intent. v3: Specify the order of posting frame callbacks. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Cc: Axel Davy <axel.davy@ens.fr> Cc: Jason Ekstrand <jason@jlekstrand.net>
2014-02-18build: Move protocol/ Makefile.am into toplevel Makefile.amKristian Høgsberg1-1/+0
A small step towards non-recursive build system for wayland too.
2014-02-18build: Stop using xmllint to validate protocol filesKristian Høgsberg1-13/+0
Same reason as commit cd31275f28b0a04d2ec5426dc81e875197b47e52 from weston: The scanner needs to be good enough. If it crashes or fails to report invalid input, that needs to get fixed.
2014-02-09protocol: when buffer transform and scale changePekka Paalanen1-0/+9
Clarify when the pending and current buffer transform and scale values change, and what exactly happens on commit. This matches what Weston currently does. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2014-01-31protocol: Fix buildJasper St. Pierre1-3/+4
"data" is the name of the void* argument in the implementation. While we probably shouldn't use such an easily-collidable name, just rename the callback's argument to callback_data for now.
2014-01-31protocol: Fix documentation for the parameter of wl_callbackJasper St. Pierre1-1/+5
The parameter here is an opaque integer, rather than the event serial. The "frame" callback uses this to pass the current time of day in milliseconds.
2014-01-31protocol: Fix the name of the registry argumentJasper St. Pierre1-1/+1
A simple copy-paste typo.
2014-01-19protocol: Clarify semantics of wl_subsurface.set_positionJonas Ådahl1-0/+4
Make it clear that multiple requests before commit are allowed and how it is handled. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
2014-01-19protocol: Clarify semantics of sub-surface placement requestsJonas Ådahl1-2/+3
Clarify some semantics of wl_subsurface.place_below and wl_subsurface.place_below that were not specified. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
2013-11-19Update .gitignore for protocol/Jasper St. Pierre1-0/+1
2013-11-15protocol: add sub-surfaces to the corePekka Paalanen1-0/+217
The sub-surface protocol was originally committed into Weston on May 10th, 2013, in commit 2396aec6842c709a714f3825dbad9fd88478f2e6. The design for the protocol had started in the beginning of December 2012. I think it is high time to move this into the core now. This patch copies the sub-surface protocol as it was in Weston on Nov 15th, 2013, into Wayland. Weston gets a patch to remove the protocol from there. Sub-surface is a wl_surface role. You create a wl_surface as usual, and assign it the sub-surface role and a parent wl_surface. Sub-surfaces are an integral part of the parent surface, and stay glued to the parent. For window management, a window is the union of the top-level wl_surface and all its sub-surfaces. Sub-surfaces are not clipped to the parent, and the union of the surface tree can be larger than the (top-level) wl_surface at its root. The representative use case for sub-surfaces is a video player window. When the video content is given its own wl_surface, there is no need to modify the video frame contents after decoding or copy them into a whole window sized buffer before submitting it to the compositor. This allows efficient, zero-copy video presentation paths, where video decoding hardware produces a (YUV) buffer, which eventually ends up in a (YUV-capable) hardware overlay and is scanned out directly. This can also be used for zero-copy presentation of windowed OpenGL content, where the OpenGL rendering engine does not need to draw or avoid window decorations. Sub-surfaces allow mixing different buffer types into the same window, e.g. software-rendered decorations in wl_shm buffers, and live content in EGL-based buffers. However, the sub-surface extension does not offer clipping or scaling facilities, or accurate presentation timing. Those are topics for additional extensions. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2013-10-25protocol: validate the protocol against a dtdPeter Hutterer2-1/+43
The scanner is not very forgiving if the protocol doesn't match it's expectations and crashes without much of a notice. Thus, validate the protocol against a DTD. Move the protocol subdir forward so we validate first before trying anything else, and install the DTD so we can validate weston's protocols as well.
2013-10-11protocol: Fix typo in documentationJosé Bollo1-1/+1
2013-09-21Export the Wayland protocol XML fileJason Ekstrand1-1/+1
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2013-08-30protocol: Add release requests for wl_pointer, wl_keyboard, and wl_touchKristian Høgsberg1-4/+16
We missed destroy requests in the 1.0 protocol and since the scanner generates local-only *_destroy requests in that case we can't add destroy requests without breaking protocol. A client needs to verify that the server provides a version 3 seat to use the protocol destructor so the name needs to be something else than wl_*_destroy. v2 (Rob Bradford): Rebased, bumped the protocol versions and added since attributes to the requests.
2013-08-12protocol: Improve a bit of grammar for wl_surface::attach descriptionBryce W. Harrington1-2/+2
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
2013-08-08protocol: Fix pluralization of user in popup_done descriptionBryce W. Harrington1-1/+1
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
2013-08-08protocol: Improve grammar for set class descriptionBryce W. Harrington1-3/+3
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
2013-08-08protocol: Add missing d to 'x an y'Bryce W. Harrington1-2/+2
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
2013-08-08protocol: Fix typo by removing a redundant 'a'Bryce W. Harrington1-1/+1
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
2013-07-29protocol: Copy missing pixel formats from wl_drm to wl_shmTomeu Vizoso1-1/+64
2013-06-28protocol: add no_keymap format to keymap formatsRob Bradford1-0/+2
This format is used to specify that the key button events received are not in relation to any key map and that the codes should be interpreted directly. v2: Use zero for the no keymap enum value and enhance the documentation for the enum entry.
2013-06-14protocol: Add missing since attribute for name event on wl_seatRob Bradford1-1/+1
This event was added in version 2 of the protocol.
2013-06-05protocol: Move new name event below existing requests and events and version itKristian Høgsberg1-9/+12
Missed v2 of Robs patch that already did this based on feedback from Ander and Daniel.
2013-06-05protocol: Add a name event to give seat nameRob Bradford1-1/+10
This provides the ability for a client to differentiate events from different seats in a multiple seat environment.
2013-05-28protocol: Modes are specified in HW pixelsAlexander Larsson1-9/+21
Modes are mainly meant to be used in coordination with fullscreen in DRIVER mode, by e.g. games. For such games what they generally want is to match some hardware mode and resize their window for that. We don't really need to complicate this with the scaling. So, we keep the resolutions in HW pixels, and drop the SCALED flag (as it is now useless). This lets you just create e.g an 800x600 buffer of scale 1 and fullscreen that, ignoring the output scaling factor (although you can of course also respect it and create a 400x300 surface at scale 2). Conceptually the mode change is treated like a scaling which overrides the normal output scale. The only complexity is the FILL mode where it can happen that the user specifies a buffer of the same size as the screen, but the output has scale 2 and the buffer scale 1. Just scanning out this buffer will work, but effectively this is a downscaling operation, as the "real" size of the surface in pels is twice the size of the output. We solve this by allowing FILL to downscale (but still not upscale).
2013-05-28protocol: Use signed int for scale valuesAlexander Larsson1-2/+2
We usually use signed ints for things like this, to avoid issues C sign coersion.
2013-05-22protocol: Support scaled outputs and surfacesAlexander Larsson1-14/+93
This adds the wl_surface.set_buffer_scale request, and a wl_output.scale event. These together lets us support automatic upscaling of "old" clients on very high resolution monitors, while allowing "new" clients to take advantage of this to render at the higher resolution when the surface is displayed on the scaled output. It is similar to set_buffer_transform in that the buffer is stored in a transformed pixels (in this case scaled). This means that if an output is scaled we can directly use the pre-scaled buffer with additional data, rather than having to scale it. Additionally this adds a "scaled" flag to the wl_output.mode flags so that clients know which resolutions are native and which are scaled. Also, in places where the documentation was previously not clear as to what coordinate system was used this was fleshed out. It also adds a scaling_factor event to wl_output that specifies the scaling of an output. This is meant to be used for outputs with a very high DPI to tell the client that this particular output has subpixel precision. Coordinates in other parts of the protocol, like input events, relative window positioning and output positioning are still in the compositor space rather than the scaled space. However, input has subpixel precision so you can still get input at full resolution. This setup means global properties like mouse acceleration/speed, pointer size, monitor geometry, etc can be specified in a "mostly similar" resolution even on a multimonitor setup where some monitors are low dpi and some are e.g. retina-class outputs.
2013-05-22protocol: Allow output changes to be treated atomicallyAlexander Larsson1-1/+11
This add a wl_output.done event which is send after every group of events caused by some property change. This allows clients to treat changes touching multiple events in an atomic fashion.
2013-04-18protocol: revert hotspot_x/y in set_cursor back to intPeter Hutterer1-2/+2
copy/paste error introduced in 9c0357af6ee42c318ce37b458ae7bdb7d51316cb Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-18protocol: Make it clear that returned "one-shot" objects are destroyedRob Bradford1-0/+8
The objects returned by the frame and sync request are destroyed by the compositor after the "done" event on the wl_callback interface is fired.
2013-04-04protocol: input documentation fixesPeter Hutterer1-4/+4
Fix summary for wl_touch::motion, extend summary for wl_touch::down to match up/motion a bit better. Fix a typo in wl_touch, and claim that it's zero or more update events, not one or more. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-03protocol: fix two protocol description 'typos'Peter Hutterer1-4/+4
Remove "mice, for example", it's described in the wl_pointer interface in detail. And remove space before the full stop. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-03protocol: document wl_pointer, wl_keyboard, wl_touchPeter Hutterer1-21/+27
Most of this should be clear, but let's spell a few things out. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-03protocol: use "summary", not "description" for xkb_v1 formatPeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2013-04-01docs: Document granularity of timestampsMatthias Clasen1-8/+12
This information is necessary to make any use of these fields.
2013-04-01docs: Remove mention of touch focusKristian Høgsberg1-2/+1
There is no focused surface for a touch screen.
2013-04-01docs: Improve wl_region protocol docsMatthias Clasen1-4/+7
Just cosmetic changes, a few missing periods, and ID was not capitalized.
2013-04-01docs: Improve the wl_output protocol docsMatthias Clasen1-6/+18
Some descriptions were missing.
2013-04-01docs: Improve wl_touch protocol docsMatthias Clasen1-9/+27
Some descriptions were missing here.
2013-04-01docs: Improve wl_keyboard protocol docsMatthias Clasen1-6/+19
Some descriptions were missing here.
2013-04-01docs: Improve wl_pointer protocol docsMatthias Clasen1-10/+33
Some descriptions were missing here.
2013-04-01docs: Improve the wl_seat protocol docsMatthias Clasen1-13/+22
Expand the main description and tell if requests don't have an effect.
2013-04-01docs: Improve wl_surface protocol docsMatthias Clasen1-54/+69
Use NULL consistently. And add some more information in a few places.