aboutsummaryrefslogtreecommitdiffstats
path: root/protocol
Commit message (Collapse)AuthorAgeFilesLines
...
* docs: Improve the wl_data_* procol docsMatthias Clasen2013-04-011-30/+65
| | | | | | Add a few missing summaries and descriptions, spell out file descriptor, use hyphens in drag-and-drop, don't use hyphens in 'mime type', and reword a few things.
* docs: Improve wl_shm and wl_shm_pool protocol docsMatthias Clasen2013-04-011-24/+49
| | | | Reword some paragraphs, and spell out 'file descriptor'.
* docs: Improve wl_callback protocol docsMatthias Clasen2013-04-011-1/+8
| | | | Add some information about wl_callback and its done event.
* docs: Improve the wl_registry protocol docsMatthias Clasen2013-04-011-17/+25
| | | | Reword a few things, and add some details.
* docs: Improve wl_display protocol docsMatthias Clasen2013-04-011-8/+9
| | | | | This adds a bit of information about in-order event delivery, removes extraneous formatting, and adds a missing period.
* protocol: remove implicit attach semanticsPekka Paalanen2013-03-191-11/+8
| | | | | | | | | | | | | | | | | | | | | | To match the Weston commit e7144fd175d1d68b91aa0cec7ab63381b79385a9: Author: Kristian Høgsberg <krh@bitplanet.net> Date: Mon Mar 4 12:11:41 2013 -0500 compositor: Only send release event in response to wl_surface.attach Remove the implicit attach semantics from wl_surface.commit and .attach. Before, if you did this on a wl_surface: attach, commit, commit, you would receive wl_buffer.release for both commits. After this change, you will only receive wl_buffer.release for the first commit. To get a second release, the same buffer must be attached again. There is no need for the implicit attach on the second commit. If the compositor needs the wl_buffer for repainting, it will not release it to begin with. If the compositor does not need to keep the wl_buffer around for repainting, it will not need it for a new commit either. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: Add a wl_surface request for setting buffer transformationAnder Conselvan de Oliveira2012-11-271-3/+31
| | | | | | | This request allows a client to render its contents according to the output transform, enabling the compositor to use optimizations such as overlays, hardware cursors, scan out of a client buffer for fullscreen surface, etc, even if the output is rotated.
* doc: Fix typosTiago Vignatti2012-11-231-1/+1
| | | | Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
* Fix distcheck by adding back protocol/Makefile.amKristian Høgsberg2012-11-191-0/+1
| | | | | | | 5909dddc78573774bd3a93c280831a7d18d82994 removed protocol/Makefile.am which meant protocol/wayland.xml no longer got included in the tarball. Add back protocol/Makefile.am and configure.ac bits and add protocol to subdirs in Makefile.am to fix this.
* protocol: Fix copy and paste summaryKristian Høgsberg2012-11-191-1/+1
|
* protocol: Add summary description for wl_data_device_managerKristian Høgsberg2012-11-191-0/+8
|
* doc: Remove unused css and xslt for the protocolTiago Vignatti2012-11-123-254/+0
| | | | | | | This was added previously (commit 015c42e1) when we didn't have docbook formatted documentation. Now it became quite useless. Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
* wayland: Add protocol documentation for various interfacesKristian Høgsberg2012-10-211-13/+94
|
* protocol: try to clarify wl_buffer docPekka Paalanen2012-10-161-14/+12
| | | | | | | | | | | | | | | | | | | | | Fix few typos in wl_buffer description. Mention backing storage in wl_buffer.destroy. Try to clarify the wl_buffer.release semantics by not explaining what *might* happen. It is important to not suggest, that if release does not come before frame callback, it will not come before attaching a new buffer to the surface. We want to allow the following scenario: The compositor is able to texture from wl_buffers directly, but it also keeps a copy of the surface contents. The copy is updated when the compositor is idle, to avoid the performance hit on wl_surface.attach/commit. When the copy completes some time later, the server sends the release event. If the client has not yet allocated a second buffer (e.g. it updates rarely), it can reuse the old buffer. Reported-by: John Kåre Alsaker <john.kare.alsaker@gmail.com> Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: say update instead of repaintPekka Paalanen2012-10-161-2/+2
| | | | | | | | wl_surface.commit itself does not force any repainting unless there is damage, so change the wording to not imply repainting. Reported-by: John Kåre Alsaker <john.kare.alsaker@gmail.com> Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: Clarify pointer axis eventJonas Ådahl2012-10-161-4/+16
| | | | | | Pointer axis events are in the same coordinate space as motion events. Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
* protocol: Clarify pointer axis eventJonas Ådahl2012-10-151-1/+4
| | | | | | Pointer axis events are in the same coordinate space as motion events. Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
* protocol: clarify multiple wl_surface.attachPekka Paalanen2012-10-111-1/+3
| | | | | | | | Explicitly say what happens with the wl_buffer.release event, if you attach several wl_buffers without a commit in between. Reported-by: David Herrmann <dh.herrmann@googlemail.com> Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: fix clarification of input region on drags and pointersPekka Paalanen2012-10-111-7/+11
| | | | | | | | | | | | | | | | | | | | | The previous clarification did not follow the current implementation in Weston, where when a surface stops being a cursor or an icon, it becomes a plain unmapped surface again. Rewrite the related paragraphs, and fix some typos while at it. For start drag, make it explicit of which surface argument we are talking about. v2: Make the input region undefined when the use ends. Most likely no-one will re-use these surfaces for anything else than the same use case, so leave some slack for the implementations to avoid useless work on resetting the regions. Reported-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: elaborate on wl_bufferPekka Paalanen2012-10-101-1/+17
| | | | | | | Spell out exactly when a client may re-use a wl_buffer or its backing storage. Mention the optimization for GL-compositor with wl_shm-clients. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: wl_surface.frame needs wl_surface.commitPekka Paalanen2012-10-101-1/+11
| | | | | | | Clarify, when frame request takes effect. Explain when to send/receive the callback. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: clarify input region on drags and pointersPekka Paalanen2012-10-101-4/+16
| | | | | | | Drag icon and cursor surfaces must never receive input, so their input region is always empty. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* protocol: double-buffered state for wl_surfacePekka Paalanen2012-10-101-23/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change breaks the protocol. The current protocol is racy in that updates to surface content and surface state (e.g. damage, input and opaque regions) are not guaranteed to happen at the same time. Due to protocol buffering and handling practices, the issues are very hard to trigger. Committing damage to a surface at arbitrary times makes it hard to track when the wl_buffer is being read by the server, and when it is safe to overwrite (the case of wl_shm with a single buffer reused constantly). This protocol change introduces the concept of double-buffered state. Such state is accumulated and cached in the server, unused, until the final commit request. The surface will receive its new content and apply its new state atomically. A wl_surface.commit request is added to the protocol. This is thought to be more clear, than having wl_surface.attach committing implicitly, and then having another request to commit without attaching, as would be required for a GL app that wants to change e.g. input region without redrawing. When these changes are implemented, clients do not have to worry about ordering damage vs. input region vs. attach vs. ... anymore. Clients set the state in any order they want, and kick it all in with a commit. The interactions between wl_surface.attach, (wl_surface.commit,) wl_buffer.release, and wl_buffer.destroy have been undocumented. Only careful inspection of the compositor code has told when a wl_buffer is free for re-use, especially for wl_shm and wrt. wl_surface.damage. Try to clarify how it all should work, and what happens if the wl_buffer gets destroyed. An additional minor fix: allow NULL argument to wl_surface.set_opaque_region. The wording in the documentation already implied that a nil region is allowed. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* Split the global registry into its own wl_registry objectKristian Høgsberg2012-10-101-15/+22
| | | | | | | | | | | | | | | | | | | | | The only way to make the global object listener interface thread safe is to make it its own interface and make different listeners different wl_proxies. The core of the problem is the callback we do when a global show up or disappears, which we can't do with a lock held. On the other hand we can't iterate the global list or the listener list without a lock held as new globals or listeners may come and go during the iteration. Making a copy of the list under the lock and then iterating after dropping the lock wont work either. In case of the listener list, once we drop the lock another thread may unregister a listener and destroy the callbackk data, which means that when we eventually call that listener we'll pass it free memory and break everything. We did already solve the thread-safe callback problem, however. It's what we do for all protocol events. So we can just make the global registry functionality its own new interface and give each thread its own proxy. That way, the thread will do its own callbacks (with no locks held) and destroy the proxy when it's no longer interested in wl_registry events.
* scanner: Send interface name and version for types new_id argsKristian Høgsberg2012-10-101-4/+2
| | | | | | | This makes the scanner generate the code and meta data to send the interface name and version when we pass a typeless new_id. This way, the generic factory mechanism provided by wl_display.bind can be provided by any interface.
* wayland: Fix typosTiago Vignatti2012-10-091-3/+3
| | | | | | | | | My vim spell checker is able to find typos of xml files after adding "syn spell toplevel" to ~/.vim/after/syntax/xml.vim aah, and Wayland is capital letter :) Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
* protocol: Fix typoTiago Vignatti2012-09-251-1/+1
| | | | Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
* Fix typo (ratio, not ration)Diego Viola2012-09-131-1/+1
| | | | Signed-off-by: Diego Viola <diego.viola@gmail.com>
* protocol: Fix typo.Scott Moreau2012-08-161-1/+1
|
* protocol: Remove "repeat" from "key_state"Andre Heider2012-07-311-2/+0
| | | | This is unused and apparently was never implemented.
* protocol: Add transform argument to wl_output.geometry eventKristian Høgsberg2012-07-221-0/+27
|
* doc: fix some typos in documentationMartin Olsson2012-07-091-2/+2
|
* protocol: Add missing allow-null to data_device.enter data_offer fieldAnder Conselvan de Oliveira2012-07-091-1/+1
| | | | Fixes bug 51889.
* protocol: Add a couple of missing allow-null annotationsKristian Høgsberg2012-07-021-2/+2
| | | | | wl_data_device.set_selection() allows NULL to withdraw the previously set selection and wl_surface.attach() allows a NULL buffer to hide the surface.
* protocol: Explicitly mark requests which allow null argumentsChristopher James Halse Rogers2012-07-021-9/+9
| | | | Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
* protocol: Change wording of pointer.set_cursor()Ander Conselvan de Oliveira2012-06-281-2/+3
| | | | | | Change the description of pointer.set_cursor() so that a client without pointer focus but that currently owns the pointer surface can update the hotspot using it.
* wl_shell: Don't require that parent surfaces are wl_shell_surfacesKristian Høgsberg2012-06-271-2/+2
| | | | | | | The set_transient and set_popup requests take a wl_shell_surface as the parent surface argument. We don't need the parent surface to be a shell surface and this restricts the types of surfaces we can use the transient and popup surface types on.
* protocol: replace pointer.attach with pointer.set_cursorAnder Conselvan de Oliveira2012-06-151-6/+21
|
* Add wl_keyboard::keymap eventDaniel Stone2012-06-011-0/+18
| | | | | | | | With this event, the compositor generates one canonical keymap for all clients, and then sends an mmap()able fd over the wire, rather than all the clients generating possibly disparate keymaps. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* Convert wl_pointer::axis to fixedDaniel Stone2012-05-311-1/+1
| | | | | | Which allows for smooth scrolling, among other things. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* Add key_state and button_state enumsDaniel Stone2012-05-311-0/+19
| | | | | | Rather than hardcoding 0 and 1 everywhere. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* wl_keyboard: Add modifier eventDaniel Stone2012-05-311-0/+13
| | | | | | | | | | This event sends the current keyboard modifier/group state from the compositor to the client, allowing all clients to have a consistent view of the keyboard state (e.g. current layout, Caps Lock, et al). It should be sent after a keyboard enter event, and also immediately after any key event which changes the modifier state. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* data-device: implement drags with no data source for self-dndAnder Conselvan de Oliveira2012-05-291-9/+17
| | | | | | Properly handle a drag with no data source, i.e., don't crash and send events only to the client that initiated the drag. This way a client can do self drag and drop without offering anything to other clients.
* shm: Add request for resizing poolsAnder Conselvan de Oliveira2012-05-221-0/+10
|
* protocol: use transient flags for activate or not surfacesTiago Vignatti2012-05-211-0/+4
| | | | Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
* Convert wl_input_device to wl_seat (and friends)Daniel Stone2012-05-161-45/+100
| | | | | | | | | | | | | wl_input_device has been both renamed and split. wl_seat is now a virtual object representing a group of logically related input devices with related focus. It now only generates one event: to let clients know that it has new capabilities. It takes requests which hand back objects for the wl_pointer, wl_keyboard and wl_touch interfaces it exposes which all provide the old input interface, just under different names. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* protocol: Specify that the fullscreen framerate parameter is also mHzKristian Høgsberg2012-05-101-1/+2
|
* protocol: Back out accidentally committed wl_seat changesKristian Høgsberg2012-05-101-62/+38
|
* protocol: Add documentation for wl_outputKristian Høgsberg2012-05-101-13/+31
|
* TODO: More updatesKristian Høgsberg2012-05-091-38/+62
|