|
170 | 170 | <arg name="callback_data" type="uint" summary="request-specific data for the callback"/> |
171 | 171 | </event> |
172 | 172 | </interface> |
173 | | - <interface name="wl_compositor" version="6"> |
| 173 | + <interface name="wl_compositor" version="7"> |
174 | 174 | <description summary="the compositor singleton"> |
175 | 175 | A compositor. This object is a singleton global. The |
176 | 176 | compositor is in charge of combining the contents of multiple |
|
188 | 188 | </description> |
189 | 189 | <arg name="id" type="new_id" interface="wl_region" summary="the new region"/> |
190 | 190 | </request> |
| 191 | + <request name="release" type="destructor" since="7"> |
| 192 | + <description summary="destroy wl_compositor"> |
| 193 | + This request destroys the wl_compositor. This has no effect on any other objects. |
| 194 | + </description> |
| 195 | + </request> |
191 | 196 | </interface> |
192 | 197 | <interface name="wl_shm_pool" version="2"> |
193 | 198 | <description summary="a shared memory pool"> |
|
498 | 503 | </description> |
499 | 504 | </event> |
500 | 505 | </interface> |
501 | | - <interface name="wl_data_offer" version="3"> |
| 506 | + <interface name="wl_data_offer" version="4"> |
502 | 507 | <description summary="offer to transfer data"> |
503 | 508 | A wl_data_offer represents a piece of data offered for transfer |
504 | 509 | by another client (the source client). It is used by the |
|
671 | 676 | <entry name="invalid_offer" value="3" summary="offer doesn't accept this request"/> |
672 | 677 | </enum> |
673 | 678 | </interface> |
674 | | - <interface name="wl_data_source" version="3"> |
| 679 | + <interface name="wl_data_source" version="4"> |
675 | 680 | <description summary="offer to transfer data"> |
676 | 681 | The wl_data_source object is the source side of a wl_data_offer. |
677 | 682 | It is created by the source client in a data transfer and |
|
809 | 814 | <entry name="invalid_source" value="1" summary="source doesn't accept this request"/> |
810 | 815 | </enum> |
811 | 816 | </interface> |
812 | | - <interface name="wl_data_device" version="3"> |
| 817 | + <interface name="wl_data_device" version="4"> |
813 | 818 | <description summary="data transfer device"> |
814 | 819 | There is one wl_data_device per seat which can be obtained |
815 | 820 | from the global wl_data_device_manager singleton. |
|
955 | 960 | <entry name="used_source" value="1" summary="source has already been used"/> |
956 | 961 | </enum> |
957 | 962 | </interface> |
958 | | - <interface name="wl_data_device_manager" version="3"> |
| 963 | + <interface name="wl_data_device_manager" version="4"> |
959 | 964 | <description summary="data transfer interface"> |
960 | 965 | The wl_data_device_manager is a singleton global object that |
961 | 966 | provides access to inter-client data transfer mechanisms such as |
|
981 | 986 | <arg name="id" type="new_id" interface="wl_data_device" summary="data device to create"/> |
982 | 987 | <arg name="seat" type="object" interface="wl_seat" summary="seat associated with the data device"/> |
983 | 988 | </request> |
| 989 | + <request name="release" type="destructor" since="4"> |
| 990 | + <description summary="destroy wl_data_device_manager"> |
| 991 | + This request destroys the wl_data_device_manager. This has no effect on any other |
| 992 | + objects. |
| 993 | + </description> |
| 994 | + </request> |
984 | 995 | <enum name="dnd_action" since="3" bitfield="true"> |
985 | 996 | <description summary="drag and drop actions"> |
986 | 997 | This is a bitmask of the available/preferred actions in a |
|
1295 | 1306 | <entry name="fill" value="3" summary="no upscaling, center on output and add black borders to compensate size mismatch"/> |
1296 | 1307 | </enum> |
1297 | 1308 | </interface> |
1298 | | - <interface name="wl_surface" version="6"> |
| 1309 | + <interface name="wl_surface" version="7"> |
1299 | 1310 | <description summary="an onscreen surface"> |
1300 | 1311 | A surface is a rectangular area that may be displayed on zero |
1301 | 1312 | or more outputs, and shown any number of times at the compositor's |
|
1391 | 1402 | If a pending wl_buffer has been committed to more than one wl_surface, |
1392 | 1403 | the delivery of wl_buffer.release events becomes undefined. A well |
1393 | 1404 | behaved client should not rely on wl_buffer.release events in this |
1394 | | - case. Alternatively, a client could create multiple wl_buffer objects |
1395 | | - from the same backing storage or use a protocol extension providing |
1396 | | - per-commit release notifications. |
| 1405 | + case. Instead, clients hitting this case should use |
| 1406 | + wl_surface.get_release or use a protocol extension providing per-commit |
| 1407 | + release notifications (if none of these options are available, a |
| 1408 | + fallback can be implemented by creating multiple wl_buffer objects from |
| 1409 | + the same backing storage). |
1397 | 1410 |
|
1398 | 1411 | Destroying the wl_buffer after wl_buffer.release does not change |
1399 | 1412 | the surface contents. Destroying the wl_buffer before wl_buffer.release |
|
1769 | 1782 | </description> |
1770 | 1783 | <arg name="transform" type="uint" enum="wl_output.transform" summary="preferred transform"/> |
1771 | 1784 | </event> |
| 1785 | + <request name="get_release" since="7"> |
| 1786 | + <description summary="get a release callback"> |
| 1787 | + Create a callback for the release of the buffer attached by the client |
| 1788 | + with wl_surface.attach. |
| 1789 | + |
| 1790 | + The compositor will release the buffer when it has finished its usage of |
| 1791 | + the underlying storage for the relevant commit. Once the client receives |
| 1792 | + this event, and assuming the associated buffer is not pending release |
| 1793 | + from other wl_surface.commit requests, the client can safely re-use the |
| 1794 | + buffer. |
| 1795 | + |
| 1796 | + Release callbacks are double-buffered state, and will be associated |
| 1797 | + with the pending buffer at wl_surface.commit time. |
| 1798 | + |
| 1799 | + The callback_data passed in the wl_callback.done event is unused and |
| 1800 | + is always zero. |
| 1801 | + |
| 1802 | + Sending this request without attaching a non-null buffer in the same |
| 1803 | + content update is a protocol error. The compositor will send the |
| 1804 | + no_buffer error in this case. |
| 1805 | + </description> |
| 1806 | + <arg name="callback" type="new_id" interface="wl_callback" summary="callback object for the release"/> |
| 1807 | + </request> |
1772 | 1808 | <enum name="error"> |
1773 | 1809 | <description summary="wl_surface error values"> |
1774 | 1810 | These errors can be emitted in response to wl_surface requests. |
|
1778 | 1814 | <entry name="invalid_size" value="2" summary="buffer size is invalid"/> |
1779 | 1815 | <entry name="invalid_offset" value="3" summary="buffer offset is invalid"/> |
1780 | 1816 | <entry name="defunct_role_object" value="4" summary="surface was destroyed before its role object"/> |
| 1817 | + <entry name="no_buffer" value="5" summary="no buffer was attached"/> |
1781 | 1818 | </enum> |
1782 | 1819 | </interface> |
1783 | 1820 | <interface name="wl_seat" version="10"> |
|
2794 | 2831 | <entry name="preferred" value="0x2" summary="indicates this is the preferred mode"/> |
2795 | 2832 | </enum> |
2796 | 2833 | </interface> |
2797 | | - <interface name="wl_region" version="1"> |
| 2834 | + <interface name="wl_region" version="7"> |
2798 | 2835 | <description summary="region interface"> |
2799 | 2836 | A region object describes an area. |
2800 | 2837 |
|
|
0 commit comments