Update Wayland

This commit is contained in:
Milan Nikolic 2023-06-21 13:05:08 +02:00
parent 3ca5eae18e
commit ebac46345c
No known key found for this signature in database
GPG key ID: 9229D0EAA3AA4E75
15 changed files with 392 additions and 117 deletions

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2008-2011 Kristian Høgsberg
@ -203,7 +203,7 @@ static const struct wl_message wl_compositor_requests[] = {
};
WL_PRIVATE const struct wl_interface wl_compositor_interface = {
"wl_compositor", 5,
"wl_compositor", 6,
2, wl_compositor_requests,
0, NULL,
};
@ -373,12 +373,14 @@ static const struct wl_message wl_surface_requests[] = {
static const struct wl_message wl_surface_events[] = {
{ "enter", "o", wayland_types + 64 },
{ "leave", "o", wayland_types + 65 },
{ "preferred_buffer_scale", "6i", wayland_types + 0 },
{ "preferred_buffer_transform", "6u", wayland_types + 0 },
};
WL_PRIVATE const struct wl_interface wl_surface_interface = {
"wl_surface", 5,
"wl_surface", 6,
11, wl_surface_requests,
2, wl_surface_events,
4, wl_surface_events,
};
static const struct wl_message wl_seat_requests[] = {
@ -394,7 +396,7 @@ static const struct wl_message wl_seat_events[] = {
};
WL_PRIVATE const struct wl_interface wl_seat_interface = {
"wl_seat", 8,
"wl_seat", 9,
4, wl_seat_requests,
2, wl_seat_events,
};
@ -415,12 +417,13 @@ static const struct wl_message wl_pointer_events[] = {
{ "axis_stop", "5uu", wayland_types + 0 },
{ "axis_discrete", "5ui", wayland_types + 0 },
{ "axis_value120", "8ui", wayland_types + 0 },
{ "axis_relative_direction", "9uu", wayland_types + 0 },
};
WL_PRIVATE const struct wl_interface wl_pointer_interface = {
"wl_pointer", 8,
"wl_pointer", 9,
2, wl_pointer_requests,
10, wl_pointer_events,
11, wl_pointer_events,
};
static const struct wl_message wl_keyboard_requests[] = {
@ -437,7 +440,7 @@ static const struct wl_message wl_keyboard_events[] = {
};
WL_PRIVATE const struct wl_interface wl_keyboard_interface = {
"wl_keyboard", 8,
"wl_keyboard", 9,
1, wl_keyboard_requests,
6, wl_keyboard_events,
};
@ -457,7 +460,7 @@ static const struct wl_message wl_touch_events[] = {
};
WL_PRIVATE const struct wl_interface wl_touch_interface = {
"wl_touch", 8,
"wl_touch", 9,
1, wl_touch_requests,
7, wl_touch_events,
};

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef WAYLAND_CLIENT_PROTOCOL_H
#define WAYLAND_CLIENT_PROTOCOL_H
@ -170,6 +170,9 @@ extern const struct wl_interface wl_registry_interface;
*
* Clients can handle the 'done' event to get notified when
* the related request is done.
*
* Note, because wl_callback objects are created from multiple independent
* factory interfaces, the wl_callback interface is frozen at version 1.
* @section page_iface_wl_callback_api API
* See @ref iface_wl_callback.
*/
@ -178,6 +181,9 @@ extern const struct wl_interface wl_registry_interface;
*
* Clients can handle the 'done' event to get notified when
* the related request is done.
*
* Note, because wl_callback objects are created from multiple independent
* factory interfaces, the wl_callback interface is frozen at version 1.
*/
extern const struct wl_interface wl_callback_interface;
#endif
@ -278,8 +284,11 @@ extern const struct wl_interface wl_shm_interface;
* interface.
*
* If the buffer uses a format that has an alpha channel, the alpha channel
* is assumed to be premultiplied in the color channels unless otherwise
* specified.
* is assumed to be premultiplied in the electrical color channel values
* (after transfer function encoding) unless otherwise specified.
*
* Note, because wl_buffer objects are created from multiple independent
* factory interfaces, the wl_buffer interface is frozen at version 1.
* @section page_iface_wl_buffer_api API
* See @ref iface_wl_buffer.
*/
@ -294,8 +303,11 @@ extern const struct wl_interface wl_shm_interface;
* interface.
*
* If the buffer uses a format that has an alpha channel, the alpha channel
* is assumed to be premultiplied in the color channels unless otherwise
* specified.
* is assumed to be premultiplied in the electrical color channel values
* (after transfer function encoding) unless otherwise specified.
*
* Note, because wl_buffer objects are created from multiple independent
* factory interfaces, the wl_buffer interface is frozen at version 1.
*/
extern const struct wl_interface wl_buffer_interface;
#endif
@ -515,8 +527,9 @@ extern const struct wl_interface wl_shell_surface_interface;
* that this request gives a role to a wl_surface. Often, this
* request also creates a new protocol object that represents the
* role and adds additional functionality to wl_surface. When a
* client wants to destroy a wl_surface, they must destroy this 'role
* object' before the wl_surface.
* client wants to destroy a wl_surface, they must destroy this role
* object before the wl_surface, otherwise a defunct_role_object error is
* sent.
*
* Destroying the role object does not remove the role from the
* wl_surface, but it may stop the wl_surface from "playing the role".
@ -562,8 +575,9 @@ extern const struct wl_interface wl_shell_surface_interface;
* that this request gives a role to a wl_surface. Often, this
* request also creates a new protocol object that represents the
* role and adds additional functionality to wl_surface. When a
* client wants to destroy a wl_surface, they must destroy this 'role
* object' before the wl_surface.
* client wants to destroy a wl_surface, they must destroy this role
* object before the wl_surface, otherwise a defunct_role_object error is
* sent.
*
* Destroying the role object does not remove the role from the
* wl_surface, but it may stop the wl_surface from "playing the role".
@ -829,12 +843,10 @@ extern const struct wl_interface wl_subcompositor_interface;
* synchronized mode, and then assume that all its child and grand-child
* sub-surfaces are synchronized, too, without explicitly setting them.
*
* If the wl_surface associated with the wl_subsurface is destroyed, the
* wl_subsurface object becomes inert. Note, that destroying either object
* takes effect immediately. If you need to synchronize the removal
* of a sub-surface to the parent surface update, unmap the sub-surface
* first by attaching a NULL wl_buffer, update parent, and then destroy
* the sub-surface.
* Destroying a sub-surface takes effect immediately. If you need to
* synchronize the removal of a sub-surface to the parent surface update,
* unmap the sub-surface first by attaching a NULL wl_buffer, update parent,
* and then destroy the sub-surface.
*
* If the parent wl_surface object is destroyed, the sub-surface is
* unmapped.
@ -884,12 +896,10 @@ extern const struct wl_interface wl_subcompositor_interface;
* synchronized mode, and then assume that all its child and grand-child
* sub-surfaces are synchronized, too, without explicitly setting them.
*
* If the wl_surface associated with the wl_subsurface is destroyed, the
* wl_subsurface object becomes inert. Note, that destroying either object
* takes effect immediately. If you need to synchronize the removal
* of a sub-surface to the parent surface update, unmap the sub-surface
* first by attaching a NULL wl_buffer, update parent, and then destroy
* the sub-surface.
* Destroying a sub-surface takes effect immediately. If you need to
* synchronize the removal of a sub-surface to the parent surface update,
* unmap the sub-surface first by attaching a NULL wl_buffer, update parent,
* and then destroy the sub-surface.
*
* If the parent wl_surface object is destroyed, the sub-surface is
* unmapped.
@ -1853,6 +1863,66 @@ enum wl_shm_format {
* [63:0] A:B:G:R 16:16:16:16 little endian
*/
WL_SHM_FORMAT_ABGR16161616 = 0x38344241,
/**
* [7:0] C0:C1:C2:C3:C4:C5:C6:C7 1:1:1:1:1:1:1:1 eight pixels/byte
*/
WL_SHM_FORMAT_C1 = 0x20203143,
/**
* [7:0] C0:C1:C2:C3 2:2:2:2 four pixels/byte
*/
WL_SHM_FORMAT_C2 = 0x20203243,
/**
* [7:0] C0:C1 4:4 two pixels/byte
*/
WL_SHM_FORMAT_C4 = 0x20203443,
/**
* [7:0] D0:D1:D2:D3:D4:D5:D6:D7 1:1:1:1:1:1:1:1 eight pixels/byte
*/
WL_SHM_FORMAT_D1 = 0x20203144,
/**
* [7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte
*/
WL_SHM_FORMAT_D2 = 0x20203244,
/**
* [7:0] D0:D1 4:4 two pixels/byte
*/
WL_SHM_FORMAT_D4 = 0x20203444,
/**
* [7:0] D
*/
WL_SHM_FORMAT_D8 = 0x20203844,
/**
* [7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte
*/
WL_SHM_FORMAT_R1 = 0x20203152,
/**
* [7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte
*/
WL_SHM_FORMAT_R2 = 0x20203252,
/**
* [7:0] R0:R1 4:4 two pixels/byte
*/
WL_SHM_FORMAT_R4 = 0x20203452,
/**
* [15:0] x:R 6:10 little endian
*/
WL_SHM_FORMAT_R10 = 0x20303152,
/**
* [15:0] x:R 4:12 little endian
*/
WL_SHM_FORMAT_R12 = 0x20323152,
/**
* [31:0] A:Cr:Cb:Y 8:8:8:8 little endian
*/
WL_SHM_FORMAT_AVUY8888 = 0x59555641,
/**
* [31:0] X:Cr:Cb:Y 8:8:8:8 little endian
*/
WL_SHM_FORMAT_XVUY8888 = 0x59555658,
/**
* 2x2 subsampled Cr:Cb plane 10 bits per channel packed
*/
WL_SHM_FORMAT_P030 = 0x30333050,
};
#endif /* WL_SHM_FORMAT_ENUM */
@ -2067,9 +2137,9 @@ struct wl_data_offer_listener {
* notify the source-side available actions
*
* This event indicates the actions offered by the data source.
* It will be sent right after wl_data_device.enter, or anytime the
* source side changes its offered actions through
* wl_data_source.set_actions.
* It will be sent immediately after creating the wl_data_offer
* object, or anytime the source side changes its offered actions
* through wl_data_source.set_actions.
* @param source_actions actions offered by the data source
* @since 3
*/
@ -2593,6 +2663,10 @@ enum wl_data_device_error {
* given wl_surface has another role
*/
WL_DATA_DEVICE_ERROR_ROLE = 0,
/**
* source has already been used
*/
WL_DATA_DEVICE_ERROR_USED_SOURCE = 1,
};
#endif /* WL_DATA_DEVICE_ERROR_ENUM */
@ -2808,11 +2882,12 @@ wl_data_device_destroy(struct wl_data_device *wl_data_device)
* a drag-and-drop icon. If the icon surface already has another role,
* it raises a protocol error.
*
* The current and pending input regions of the icon wl_surface are
* cleared, and wl_surface.set_input_region is ignored until the
* wl_surface is no longer used as the icon surface. When the use
* as an icon ends, the current and pending input regions become
* undefined, and the wl_surface is unmapped.
* The input region is ignored for wl_surfaces with the role of a
* drag-and-drop icon.
*
* The given source may not be used in any further set_selection or
* start_drag requests. Attempting to reuse a previously-used source
* may send a used_source error.
*/
static inline void
wl_data_device_start_drag(struct wl_data_device *wl_data_device, struct wl_data_source *source, struct wl_surface *origin, struct wl_surface *icon, uint32_t serial)
@ -2828,6 +2903,10 @@ wl_data_device_start_drag(struct wl_data_device *wl_data_device, struct wl_data_
* to the data from the source on behalf of the client.
*
* To unset the selection, set the source to NULL.
*
* The given source may not be used in any further set_selection or
* start_drag requests. Attempting to reuse a previously-used source
* may send a used_source error.
*/
static inline void
wl_data_device_set_selection(struct wl_data_device *wl_data_device, struct wl_data_source *source, uint32_t serial)
@ -3531,6 +3610,10 @@ enum wl_surface_error {
* buffer offset is invalid
*/
WL_SURFACE_ERROR_INVALID_OFFSET = 3,
/**
* surface was destroyed before its role object
*/
WL_SURFACE_ERROR_DEFUNCT_ROLE_OBJECT = 4,
};
#endif /* WL_SURFACE_ERROR_ENUM */
@ -3570,6 +3653,40 @@ struct wl_surface_listener {
void (*leave)(void *data,
struct wl_surface *wl_surface,
struct wl_output *output);
/**
* preferred buffer scale for the surface
*
* This event indicates the preferred buffer scale for this
* surface. It is sent whenever the compositor's preference
* changes.
*
* It is intended that scaling aware clients use this event to
* scale their content and use wl_surface.set_buffer_scale to
* indicate the scale they have rendered with. This allows clients
* to supply a higher detail buffer.
* @param factor preferred scaling factor
* @since 6
*/
void (*preferred_buffer_scale)(void *data,
struct wl_surface *wl_surface,
int32_t factor);
/**
* preferred buffer transform for the surface
*
* This event indicates the preferred buffer transform for this
* surface. It is sent whenever the compositor's preference
* changes.
*
* It is intended that transform aware clients use this event to
* apply the transform to their content and use
* wl_surface.set_buffer_transform to indicate the transform they
* have rendered with.
* @param transform preferred transform
* @since 6
*/
void (*preferred_buffer_transform)(void *data,
struct wl_surface *wl_surface,
uint32_t transform);
};
/**
@ -3603,6 +3720,14 @@ wl_surface_add_listener(struct wl_surface *wl_surface,
* @ingroup iface_wl_surface
*/
#define WL_SURFACE_LEAVE_SINCE_VERSION 1
/**
* @ingroup iface_wl_surface
*/
#define WL_SURFACE_PREFERRED_BUFFER_SCALE_SINCE_VERSION 6
/**
* @ingroup iface_wl_surface
*/
#define WL_SURFACE_PREFERRED_BUFFER_TRANSFORM_SINCE_VERSION 6
/**
* @ingroup iface_wl_surface
@ -3702,7 +3827,8 @@ wl_surface_destroy(struct wl_surface *wl_surface)
*
* When the bound wl_surface version is 5 or higher, passing any
* non-zero x or y is a protocol violation, and will result in an
* 'invalid_offset' error being raised. To achieve equivalent semantics,
* 'invalid_offset' error being raised. The x and y arguments are ignored
* and do not change the pending state. To achieve equivalent semantics,
* use wl_surface.offset.
*
* Surface contents are double-buffered state, see wl_surface.commit.
@ -4422,6 +4548,27 @@ enum wl_pointer_axis_source {
#define WL_POINTER_AXIS_SOURCE_WHEEL_TILT_SINCE_VERSION 6
#endif /* WL_POINTER_AXIS_SOURCE_ENUM */
#ifndef WL_POINTER_AXIS_RELATIVE_DIRECTION_ENUM
#define WL_POINTER_AXIS_RELATIVE_DIRECTION_ENUM
/**
* @ingroup iface_wl_pointer
* axis relative direction
*
* This specifies the direction of the physical motion that caused a
* wl_pointer.axis event, relative to the wl_pointer.axis direction.
*/
enum wl_pointer_axis_relative_direction {
/**
* physical motion matches axis direction
*/
WL_POINTER_AXIS_RELATIVE_DIRECTION_IDENTICAL = 0,
/**
* physical motion is the inverse of the axis direction
*/
WL_POINTER_AXIS_RELATIVE_DIRECTION_INVERTED = 1,
};
#endif /* WL_POINTER_AXIS_RELATIVE_DIRECTION_ENUM */
/**
* @ingroup iface_wl_pointer
* @struct wl_pointer_listener
@ -4706,6 +4853,52 @@ struct wl_pointer_listener {
struct wl_pointer *wl_pointer,
uint32_t axis,
int32_t value120);
/**
* axis relative physical direction event
*
* Relative directional information of the entity causing the
* axis motion.
*
* For a wl_pointer.axis event, the
* wl_pointer.axis_relative_direction event specifies the movement
* direction of the entity causing the wl_pointer.axis event. For
* example: - if a user's fingers on a touchpad move down and this
* causes a wl_pointer.axis vertical_scroll down event, the
* physical direction is 'identical' - if a user's fingers on a
* touchpad move down and this causes a wl_pointer.axis
* vertical_scroll up scroll up event ('natural scrolling'), the
* physical direction is 'inverted'.
*
* A client may use this information to adjust scroll motion of
* components. Specifically, enabling natural scrolling causes the
* content to change direction compared to traditional scrolling.
* Some widgets like volume control sliders should usually match
* the physical direction regardless of whether natural scrolling
* is active. This event enables clients to match the scroll
* direction of a widget to the physical direction.
*
* This event does not occur on its own, it is coupled with a
* wl_pointer.axis event that represents this axis value. The
* protocol guarantees that each axis_relative_direction event is
* always followed by exactly one axis event with the same axis
* number within the same wl_pointer.frame. Note that the protocol
* allows for other events to occur between the
* axis_relative_direction and its coupled axis event.
*
* The axis number is identical to the axis number in the
* associated axis event.
*
* The order of wl_pointer.axis_relative_direction,
* wl_pointer.axis_discrete and wl_pointer.axis_source is not
* guaranteed.
* @param axis axis type
* @param direction physical direction relative to axis motion
* @since 9
*/
void (*axis_relative_direction)(void *data,
struct wl_pointer *wl_pointer,
uint32_t axis,
uint32_t direction);
};
/**
@ -4762,6 +4955,10 @@ wl_pointer_add_listener(struct wl_pointer *wl_pointer,
* @ingroup iface_wl_pointer
*/
#define WL_POINTER_AXIS_VALUE120_SINCE_VERSION 8
/**
* @ingroup iface_wl_pointer
*/
#define WL_POINTER_AXIS_RELATIVE_DIRECTION_SINCE_VERSION 9
/**
* @ingroup iface_wl_pointer
@ -4819,20 +5016,18 @@ wl_pointer_destroy(struct wl_pointer *wl_pointer)
* where (x, y) are the coordinates of the pointer location, in
* surface-local coordinates.
*
* On surface.attach requests to the pointer surface, hotspot_x
* On wl_surface.offset requests to the pointer surface, hotspot_x
* and hotspot_y are decremented by the x and y parameters
* passed to the request. Attach must be confirmed by
* passed to the request. The offset must be applied by
* wl_surface.commit as usual.
*
* The hotspot can also be updated by passing the currently set
* pointer surface to this request with new values for hotspot_x
* and hotspot_y.
*
* The current and pending input regions of the wl_surface are
* cleared, and wl_surface.set_input_region is ignored until the
* wl_surface is no longer used as the cursor. When the use as a
* cursor ends, the current and pending input regions become
* undefined, and the wl_surface is unmapped.
* The input region is ignored for wl_surfaces with the role of
* a cursor. When the use as a cursor ends, the wl_surface is
* unmapped.
*
* The serial parameter must match the latest wl_pointer.enter
* serial number sent to the client. Otherwise the request will be
@ -4951,9 +5146,10 @@ struct wl_keyboard_listener {
* The leave notification is sent before the enter notification for
* the new focus.
*
* After this event client must assume that all keys, including
* modifiers, are lifted and also it must stop key repeating if
* there's some going on.
* After this event client must assume that no keys are pressed, it
* must stop key repeating if there's some going on and until it
* receives the next wl_keyboard.modifiers event, the client must
* also assume no modifiers are active.
* @param serial serial number of the leave event
* @param surface surface that lost keyboard focus
*/
@ -4972,6 +5168,9 @@ struct wl_keyboard_listener {
*
* If this event produces a change in modifiers, then the resulting
* wl_keyboard.modifiers event must be sent after this event.
*
* The compositor must not send this event without a surface of the
* client having keyboard focus.
* @param serial serial number of the key event
* @param time timestamp with millisecond granularity
* @param key key that produced the event
@ -4988,6 +5187,15 @@ struct wl_keyboard_listener {
*
* Notifies clients that the modifier and/or group state has
* changed, and it should update its local state.
*
* The compositor may send this event without a surface of the
* client having keyboard focus, for example to tie modifier
* information to pointer focus instead. If a modifier event with
* pressed modifiers is sent without a prior enter event, the
* client can assume the modifier state is valid until it receives
* the next wl_keyboard.modifiers event. In order to reset the
* modifier state again, the compositor can send a
* wl_keyboard.modifiers event with no pressed modifiers.
* @param serial serial number of the modifiers event
* @param mods_depressed depressed modifiers
* @param mods_latched latched modifiers
@ -5820,6 +6028,10 @@ enum wl_subcompositor_error {
* the to-be sub-surface is invalid
*/
WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE = 0,
/**
* the to-be sub-surface parent is invalid
*/
WL_SUBCOMPOSITOR_ERROR_BAD_PARENT = 1,
};
#endif /* WL_SUBCOMPOSITOR_ERROR_ENUM */
@ -5878,14 +6090,18 @@ wl_subcompositor_destroy(struct wl_subcompositor *wl_subcompositor)
* plain wl_surface into a sub-surface.
*
* The to-be sub-surface must not already have another role, and it
* must not have an existing wl_subsurface object. Otherwise a protocol
* error is raised.
* must not have an existing wl_subsurface object. Otherwise the
* bad_surface protocol error is raised.
*
* Adding sub-surfaces to a parent is a double-buffered operation on the
* parent (see wl_surface.commit). The effect of adding a sub-surface
* becomes visible on the next time the state of the parent surface is
* applied.
*
* The parent surface must not be one of the child surface's descendants,
* and the parent must be different from the child surface, otherwise the
* bad_parent protocol error is raised.
*
* This request modifies the behaviour of wl_surface.commit request on
* the sub-surface, see the documentation on wl_subsurface interface.
*/
@ -5969,8 +6185,7 @@ wl_subsurface_get_version(struct wl_subsurface *wl_subsurface)
* The sub-surface interface is removed from the wl_surface object
* that was turned into a sub-surface with a
* wl_subcompositor.get_subsurface request. The wl_surface's association
* to the parent is deleted, and the wl_surface loses its role as
* a sub-surface. The wl_surface is unmapped immediately.
* to the parent is deleted. The wl_surface is unmapped immediately.
*/
static inline void
wl_subsurface_destroy(struct wl_subsurface *wl_subsurface)

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2015 Samsung Electronics Co., Ltd

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef IDLE_INHIBIT_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define IDLE_INHIBIT_UNSTABLE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2014 Jonas Ådahl

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef POINTER_CONSTRAINTS_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define POINTER_CONSTRAINTS_UNSTABLE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2014 Jonas Ådahl

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2013-2016 Collabora, Ltd.

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef VIEWPORTER_CLIENT_PROTOCOL_H
#define VIEWPORTER_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2018 Simon Ser

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
/*
* Copyright © 2008-2013 Kristian Høgsberg

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.21.0 */
/* Generated by wayland-scanner 1.22.0 */
#ifndef XDG_SHELL_CLIENT_PROTOCOL_H
#define XDG_SHELL_CLIENT_PROTOCOL_H
@ -107,7 +107,7 @@ extern const struct wl_interface xdg_wm_base_interface;
* For an xdg_positioner object to be considered complete, it must have a
* non-zero size set by set_size, and a non-zero anchor rectangle set by
* set_anchor_rect. Passing an incomplete xdg_positioner object when
* positioning a surface raises an error.
* positioning a surface raises an invalid_positioner error.
* @section page_iface_xdg_positioner_api API
* See @ref iface_xdg_positioner.
*/
@ -132,7 +132,7 @@ extern const struct wl_interface xdg_wm_base_interface;
* For an xdg_positioner object to be considered complete, it must have a
* non-zero size set by set_size, and a non-zero anchor rectangle set by
* set_anchor_rect. Passing an incomplete xdg_positioner object when
* positioning a surface raises an error.
* positioning a surface raises an invalid_positioner error.
*/
extern const struct wl_interface xdg_positioner_interface;
#endif
@ -381,6 +381,10 @@ enum xdg_wm_base_error {
* the client provided an invalid positioner
*/
XDG_WM_BASE_ERROR_INVALID_POSITIONER = 5,
/**
* the client didnt respond to a ping event in time
*/
XDG_WM_BASE_ERROR_UNRESPONSIVE = 6,
};
#endif /* XDG_WM_BASE_ERROR_ENUM */
@ -400,7 +404,9 @@ struct xdg_wm_base_listener {
* Compositors can use this to determine if the client is still
* alive. It's unspecified what will happen if the client doesn't
* respond to the ping request, or in what timeframe. Clients
* should try to respond in a reasonable amount of time.
* should try to respond in a reasonable amount of time. The
* unresponsive error is provided for compositors that wish
* to disconnect unresponsive clients.
*
* A compositor is free to ping in any way it wants, but a client
* must always respond to any xdg_wm_base object it created.
@ -476,7 +482,7 @@ xdg_wm_base_get_version(struct xdg_wm_base *xdg_wm_base)
*
* Destroying a bound xdg_wm_base object while there are surfaces
* still alive created by this xdg_wm_base object instance is illegal
* and will result in a protocol error.
* and will result in a defunct_surfaces error.
*/
static inline void
xdg_wm_base_destroy(struct xdg_wm_base *xdg_wm_base)
@ -510,7 +516,7 @@ xdg_wm_base_create_positioner(struct xdg_wm_base *xdg_wm_base)
* itself is not a role, the corresponding surface may only be assigned
* a role extending xdg_surface, such as xdg_toplevel or xdg_popup. It is
* illegal to create an xdg_surface for a wl_surface which already has an
* assigned role and this will result in a protocol error.
* assigned role and this will result in a role error.
*
* This creates an xdg_surface for the given surface. An xdg_surface is
* used as basis to define a role to a given surface, such as xdg_toplevel
@ -535,7 +541,8 @@ xdg_wm_base_get_xdg_surface(struct xdg_wm_base *xdg_wm_base, struct wl_surface *
* @ingroup iface_xdg_wm_base
*
* A client must respond to a ping event with a pong request or
* the client may be deemed unresponsive. See xdg_wm_base.ping.
* the client may be deemed unresponsive. See xdg_wm_base.ping
* and xdg_wm_base.error.unresponsive.
*/
static inline void
xdg_wm_base_pong(struct xdg_wm_base *xdg_wm_base, uint32_t serial)
@ -839,7 +846,8 @@ xdg_positioner_set_anchor(struct xdg_positioner *xdg_positioner, uint32_t anchor
* specified (e.g. 'bottom_right' or 'top_left'), then the child surface
* will be placed towards the specified gravity; otherwise, the child
* surface will be centered over the anchor point on any axis that had no
* gravity specified.
* gravity specified. If the gravity is not in the gravity enum, an
* invalid_input error is raised.
*/
static inline void
xdg_positioner_set_gravity(struct xdg_positioner *xdg_positioner, uint32_t gravity)
@ -947,10 +955,30 @@ xdg_positioner_set_parent_configure(struct xdg_positioner *xdg_positioner, uint3
#ifndef XDG_SURFACE_ERROR_ENUM
#define XDG_SURFACE_ERROR_ENUM
enum xdg_surface_error {
/**
* Surface was not fully constructed
*/
XDG_SURFACE_ERROR_NOT_CONSTRUCTED = 1,
/**
* Surface was already constructed
*/
XDG_SURFACE_ERROR_ALREADY_CONSTRUCTED = 2,
/**
* Attaching a buffer to an unconfigured surface
*/
XDG_SURFACE_ERROR_UNCONFIGURED_BUFFER = 3,
/**
* Invalid serial number when acking a configure event
*/
XDG_SURFACE_ERROR_INVALID_SERIAL = 4,
/**
* Width or height was zero or negative
*/
XDG_SURFACE_ERROR_INVALID_SIZE = 5,
/**
* Surface was destroyed before its role object
*/
XDG_SURFACE_ERROR_DEFUNCT_ROLE_OBJECT = 6,
};
#endif /* XDG_SURFACE_ERROR_ENUM */
@ -1055,7 +1083,8 @@ xdg_surface_get_version(struct xdg_surface *xdg_surface)
* @ingroup iface_xdg_surface
*
* Destroy the xdg_surface object. An xdg_surface must only be destroyed
* after its role object has been destroyed.
* after its role object has been destroyed, otherwise
* a defunct_role_object error is raised.
*/
static inline void
xdg_surface_destroy(struct xdg_surface *xdg_surface)
@ -1132,13 +1161,22 @@ xdg_surface_get_popup(struct xdg_surface *xdg_surface, struct xdg_surface *paren
* commit. This unset is meant for extremely simple clients.
*
* The arguments are given in the surface-local coordinate space of
* the wl_surface associated with this xdg_surface.
* the wl_surface associated with this xdg_surface, and may extend outside
* of the wl_surface itself to mark parts of the subsurface tree as part of
* the window geometry.
*
* The width and height must be greater than zero. Setting an invalid size
* will raise an error. When applied, the effective window geometry will be
* the set window geometry clamped to the bounding rectangle of the
* combined geometry of the surface of the xdg_surface and the associated
* When applied, the effective window geometry will be the set window
* geometry clamped to the bounding rectangle of the combined
* geometry of the surface of the xdg_surface and the associated
* subsurfaces.
*
* The effective geometry will not be recalculated unless a new call to
* set_window_geometry is done and the new pending surface state is
* subsequently applied.
*
* The width and height of the effective window geometry must be
* greater than zero. Setting an invalid size will raise an
* invalid_size error.
*/
static inline void
xdg_surface_set_window_geometry(struct xdg_surface *xdg_surface, int32_t x, int32_t y, int32_t width, int32_t height)
@ -1161,6 +1199,8 @@ xdg_surface_set_window_geometry(struct xdg_surface *xdg_surface, int32_t x, int3
*
* If the client receives multiple configure events before it
* can respond to one, it only has to ack the last configure event.
* Acking a configure event that was never sent raises an invalid_serial
* error.
*
* A client is not required to commit immediately after sending
* an ack_configure request - it may even ack_configure several times
@ -1199,6 +1239,10 @@ enum xdg_toplevel_error {
* invalid parent toplevel
*/
XDG_TOPLEVEL_ERROR_INVALID_PARENT = 1,
/**
* client provided an invalid min or max size
*/
XDG_TOPLEVEL_ERROR_INVALID_SIZE = 2,
};
#endif /* XDG_TOPLEVEL_ERROR_ENUM */
@ -1244,7 +1288,8 @@ enum xdg_toplevel_state {
* the surface is maximized
*
* The surface is maximized. The window geometry specified in the
* configure event must be obeyed by the client.
* configure event must be obeyed by the client, or the
* xdg_wm_base.invalid_surface_state error is raised.
*
* The client should draw without shadow or other decoration
* outside of the window geometry.
@ -1666,7 +1711,7 @@ xdg_toplevel_set_title(struct xdg_toplevel *xdg_toplevel, const char *title)
* application identifiers and how they relate to well-known D-Bus
* names and .desktop files.
*
* [0] http://standards.freedesktop.org/desktop-entry-spec/
* [0] https://standards.freedesktop.org/desktop-entry-spec/
*/
static inline void
xdg_toplevel_set_app_id(struct xdg_toplevel *xdg_toplevel, const char *app_id)
@ -1685,7 +1730,8 @@ xdg_toplevel_set_app_id(struct xdg_toplevel *xdg_toplevel, const char *app_id)
* This request asks the compositor to pop up such a window menu at
* the given position, relative to the local surface coordinates of
* the parent surface. There are no guarantees as to what menu items
* the window menu contains.
* the window menu contains, or even if a window menu will be drawn
* at all.
*
* This request must be used in response to some sort of user action
* like a button press, key press, or touch down event.
@ -1753,10 +1799,10 @@ xdg_toplevel_move(struct xdg_toplevel *xdg_toplevel, struct wl_seat *seat, uint3
*
* The edges parameter specifies how the surface should be resized, and
* is one of the values of the resize_edge enum. Values not matching
* a variant of the enum will cause a protocol error. The compositor
* may use this information to update the surface position for example
* when dragging the top left corner. The compositor may also use
* this information to adapt its behavior, e.g. choose an appropriate
* a variant of the enum will cause the invalid_resize_edge protocol error.
* The compositor may use this information to update the surface position
* for example when dragging the top left corner. The compositor may also
* use this information to adapt its behavior, e.g. choose an appropriate
* cursor image.
*/
static inline void
@ -1798,11 +1844,11 @@ xdg_toplevel_resize(struct xdg_toplevel *xdg_toplevel, struct wl_seat *seat, uin
* request.
*
* Requesting a maximum size to be smaller than the minimum size of
* a surface is illegal and will result in a protocol error.
* a surface is illegal and will result in an invalid_size error.
*
* The width and height must be greater than or equal to zero. Using
* strictly negative values for width and height will result in a
* protocol error.
* strictly negative values for width or height will result in a
* invalid_size error.
*/
static inline void
xdg_toplevel_set_max_size(struct xdg_toplevel *xdg_toplevel, int32_t width, int32_t height)
@ -1843,11 +1889,11 @@ xdg_toplevel_set_max_size(struct xdg_toplevel *xdg_toplevel, int32_t width, int3
* request.
*
* Requesting a minimum size to be larger than the maximum size of
* a surface is illegal and will result in a protocol error.
* a surface is illegal and will result in an invalid_size error.
*
* The width and height must be greater than or equal to zero. Using
* strictly negative values for width and height will result in a
* protocol error.
* invalid_size error.
*/
static inline void
xdg_toplevel_set_min_size(struct xdg_toplevel *xdg_toplevel, int32_t width, int32_t height)
@ -2145,8 +2191,8 @@ xdg_popup_get_version(struct xdg_popup *xdg_popup)
* This destroys the popup. Explicitly destroying the xdg_popup
* object will also dismiss the popup, and unmap the surface.
*
* If this xdg_popup is not the "topmost" popup, a protocol error
* will be sent.
* If this xdg_popup is not the "topmost" popup, the
* xdg_wm_base.not_the_topmost_popup protocol error will be sent.
*/
static inline void
xdg_popup_destroy(struct xdg_popup *xdg_popup)

View file

@ -4,37 +4,48 @@ TMPDIR="/tmp"
GLGLFW_PATH="`pwd`/../glfw/src"
cd $TMPDIR
git clone https://github.com/wayland-project/wayland-protocols
git clone --depth 1 https://gitlab.freedesktop.org/wayland/wayland.git
git clone --depth 1 https://gitlab.freedesktop.org/wayland/wayland-protocols.git
cd $TMPDIR
cd wayland
rm -f "$GLGLFW_PATH"/wayland-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-client-protocol-code.h
wayland-scanner private-code ./protocol/wayland.xml "$GLGLFW_PATH"/wayland-client-protocol-code.h
wayland-scanner client-header ./protocol/wayland.xml "$GLGLFW_PATH"/wayland-client-protocol.h
cd $TMPDIR
cd wayland-protocols
rm -f "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol.{h,c}
rm -f "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol.{h,c}
rm -f "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol.{h,c}
rm -f "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol.{h,c}
rm -f "$GLGLFW_PATH"/wayland-xdg-decoration-client-protocol.{h,c}
rm -f "$GLGLFW_PATH"/wayland-viewporter-client-protocol.{h,c}
rm -f "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol-code.h
rm -f "$GLGLFW_PATH"/wayland-xdg-decoration-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-xdg-decoration-client-protocol-code.h
rm -f "$GLGLFW_PATH"/wayland-viewporter-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-viewporter-client-protocol-code.h
rm -f "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol-code.h
rm -f "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol-code.h
rm -f "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol.c
rm -f "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol-code.h
wayland-scanner code ./unstable/pointer-constraints/pointer-constraints-unstable-v1.xml "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol.c
wayland-scanner client-header ./unstable/pointer-constraints/pointer-constraints-unstable-v1.xml "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol.h
wayland-scanner code ./unstable/relative-pointer/relative-pointer-unstable-v1.xml "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol.c
wayland-scanner client-header ./unstable/relative-pointer/relative-pointer-unstable-v1.xml "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol.h
wayland-scanner code ./unstable/idle-inhibit/idle-inhibit-unstable-v1.xml "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol.c
wayland-scanner client-header ./unstable/idle-inhibit/idle-inhibit-unstable-v1.xml "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol.h
wayland-scanner code ./stable/xdg-shell/xdg-shell.xml "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol.c
wayland-scanner private-code ./stable/xdg-shell/xdg-shell.xml "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol-code.h
wayland-scanner client-header ./stable/xdg-shell/xdg-shell.xml "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol.h
wayland-scanner code ./unstable/xdg-decoration/xdg-decoration-unstable-v1.xml "$GLGLFW_PATH"/wayland-xdg-decoration-client-protocol.c
wayland-scanner private-code ./unstable/xdg-decoration/xdg-decoration-unstable-v1.xml "$GLGLFW_PATH"/wayland-xdg-decoration-client-protocol-code.h
wayland-scanner client-header ./unstable/xdg-decoration/xdg-decoration-unstable-v1.xml "$GLGLFW_PATH"/wayland-xdg-decoration-client-protocol.h
wayland-scanner code ./stable/viewporter/viewporter.xml "$GLGLFW_PATH"/wayland-viewporter-client-protocol.c
wayland-scanner private-code ./stable/viewporter/viewporter.xml "$GLGLFW_PATH"/wayland-viewporter-client-protocol-code.h
wayland-scanner client-header ./stable/viewporter/viewporter.xml "$GLGLFW_PATH"/wayland-viewporter-client-protocol.h
# Patch for cgo
sed -i "s|types|wl_pc_types|g" "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol.c
sed -i "s|types|wl_rp_types|g" "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol.c
sed -i "s|types|wl_ii_types|g" "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol.c
sed -i "s|types|wl_xs_types|g" "$GLGLFW_PATH"/wayland-xdg-shell-client-protocol.c
sed -i "s|types|wl_v_types|g" "$GLGLFW_PATH"/wayland-viewporter-client-protocol.c
wayland-scanner private-code ./unstable/relative-pointer/relative-pointer-unstable-v1.xml "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol-code.h
wayland-scanner client-header ./unstable/relative-pointer/relative-pointer-unstable-v1.xml "$GLGLFW_PATH"/wayland-relative-pointer-unstable-v1-client-protocol.h
wayland-scanner private-code ./unstable/pointer-constraints/pointer-constraints-unstable-v1.xml "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol-code.h
wayland-scanner client-header ./unstable/pointer-constraints/pointer-constraints-unstable-v1.xml "$GLGLFW_PATH"/wayland-pointer-constraints-unstable-v1-client-protocol.h
wayland-scanner private-code ./unstable/idle-inhibit/idle-inhibit-unstable-v1.xml "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol-code.h
wayland-scanner client-header ./unstable/idle-inhibit/idle-inhibit-unstable-v1.xml "$GLGLFW_PATH"/wayland-idle-inhibit-unstable-v1-client-protocol.h