From ebac46345c4f5381f50f891e70178ca535d68786 Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Wed, 21 Jun 2023 13:05:08 +0200 Subject: [PATCH] Update Wayland --- .../glfw/src/wayland-client-protocol-code.h | 21 +- .../glfw/src/wayland-client-protocol.h | 303 +++++++++++++++--- ...inhibit-unstable-v1-client-protocol-code.h | 2 +- ...idle-inhibit-unstable-v1-client-protocol.h | 2 +- ...traints-unstable-v1-client-protocol-code.h | 2 +- ...-constraints-unstable-v1-client-protocol.h | 2 +- ...pointer-unstable-v1-client-protocol-code.h | 2 +- ...tive-pointer-unstable-v1-client-protocol.h | 2 +- .../wayland-viewporter-client-protocol-code.h | 2 +- .../src/wayland-viewporter-client-protocol.h | 2 +- ...land-xdg-decoration-client-protocol-code.h | 2 +- .../wayland-xdg-decoration-client-protocol.h | 2 +- .../wayland-xdg-shell-client-protocol-code.h | 2 +- .../src/wayland-xdg-shell-client-protocol.h | 102 ++++-- .../external/scripts/glfw-generate-wayland.sh | 61 ++-- 15 files changed, 392 insertions(+), 117 deletions(-) diff --git a/raylib/external/glfw/src/wayland-client-protocol-code.h b/raylib/external/glfw/src/wayland-client-protocol-code.h index 20ba1f1..5098871 100644 --- a/raylib/external/glfw/src/wayland-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-client-protocol-code.h @@ -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, }; diff --git a/raylib/external/glfw/src/wayland-client-protocol.h b/raylib/external/glfw/src/wayland-client-protocol.h index 1f3481c..0ae8ea1 100644 --- a/raylib/external/glfw/src/wayland-client-protocol.h +++ b/raylib/external/glfw/src/wayland-client-protocol.h @@ -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) diff --git a/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol-code.h b/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol-code.h index a4950bd..76ef732 100644 --- a/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol-code.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.21.0 */ +/* Generated by wayland-scanner 1.22.0 */ /* * Copyright © 2015 Samsung Electronics Co., Ltd diff --git a/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol.h b/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol.h index 8fd7f8a..a033a11 100644 --- a/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol.h +++ b/raylib/external/glfw/src/wayland-idle-inhibit-unstable-v1-client-protocol.h @@ -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 diff --git a/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol-code.h b/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol-code.h index d487ae7..5935c0b 100644 --- a/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol-code.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.21.0 */ +/* Generated by wayland-scanner 1.22.0 */ /* * Copyright © 2014 Jonas Ådahl diff --git a/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol.h b/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol.h index f3d7a4a..5ff3867 100644 --- a/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol.h +++ b/raylib/external/glfw/src/wayland-pointer-constraints-unstable-v1-client-protocol.h @@ -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 diff --git a/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol-code.h b/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol-code.h index 3787001..e650496 100644 --- a/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol-code.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.21.0 */ +/* Generated by wayland-scanner 1.22.0 */ /* * Copyright © 2014 Jonas Ådahl diff --git a/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol.h b/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol.h index 19812c5..5aa213e 100644 --- a/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol.h +++ b/raylib/external/glfw/src/wayland-relative-pointer-unstable-v1-client-protocol.h @@ -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 diff --git a/raylib/external/glfw/src/wayland-viewporter-client-protocol-code.h b/raylib/external/glfw/src/wayland-viewporter-client-protocol-code.h index 04fbc1e..fa70d5d 100644 --- a/raylib/external/glfw/src/wayland-viewporter-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-viewporter-client-protocol-code.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.21.0 */ +/* Generated by wayland-scanner 1.22.0 */ /* * Copyright © 2013-2016 Collabora, Ltd. diff --git a/raylib/external/glfw/src/wayland-viewporter-client-protocol.h b/raylib/external/glfw/src/wayland-viewporter-client-protocol.h index 10d2da9..e1295d4 100644 --- a/raylib/external/glfw/src/wayland-viewporter-client-protocol.h +++ b/raylib/external/glfw/src/wayland-viewporter-client-protocol.h @@ -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 diff --git a/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol-code.h b/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol-code.h index 59c1b46..9389145 100644 --- a/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol-code.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.21.0 */ +/* Generated by wayland-scanner 1.22.0 */ /* * Copyright © 2018 Simon Ser diff --git a/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol.h b/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol.h index 286c236..71cc22c 100644 --- a/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol.h +++ b/raylib/external/glfw/src/wayland-xdg-decoration-client-protocol.h @@ -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 diff --git a/raylib/external/glfw/src/wayland-xdg-shell-client-protocol-code.h b/raylib/external/glfw/src/wayland-xdg-shell-client-protocol-code.h index d2fde49..8c460de 100644 --- a/raylib/external/glfw/src/wayland-xdg-shell-client-protocol-code.h +++ b/raylib/external/glfw/src/wayland-xdg-shell-client-protocol-code.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.21.0 */ +/* Generated by wayland-scanner 1.22.0 */ /* * Copyright © 2008-2013 Kristian Høgsberg diff --git a/raylib/external/glfw/src/wayland-xdg-shell-client-protocol.h b/raylib/external/glfw/src/wayland-xdg-shell-client-protocol.h index 719b951..fb2629a 100644 --- a/raylib/external/glfw/src/wayland-xdg-shell-client-protocol.h +++ b/raylib/external/glfw/src/wayland-xdg-shell-client-protocol.h @@ -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 didn’t 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) diff --git a/raylib/external/scripts/glfw-generate-wayland.sh b/raylib/external/scripts/glfw-generate-wayland.sh index 26cd10e..f8edd97 100755 --- a/raylib/external/scripts/glfw-generate-wayland.sh +++ b/raylib/external/scripts/glfw-generate-wayland.sh @@ -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