wayland: Use the built-in names of interfaces to enable protocols

This commit is contained in:
Frank Praznik
2026-03-06 11:07:32 -05:00
parent 7605f192d5
commit 89393c5519

View File

@@ -499,7 +499,7 @@ static void wayland_preferred_check_handle_global(void *data, struct wl_registry
d->has_fifo_v1 = true;
}
#ifdef SDL_WL_FIXES_VERSION
else if (SDL_strcmp(interface, "wl_fixes") == 0) {
else if (SDL_strcmp(interface, wl_fixes_interface.name) == 0) {
d->wl_fixes = wl_registry_bind(registry, id, &wl_fixes_interface, SDL_min(SDL_WL_FIXES_VERSION, version));
}
#endif
@@ -1279,83 +1279,81 @@ static void handle_registry_global(void *data, struct wl_registry *registry, uin
{
SDL_VideoData *d = data;
// printf("WAYLAND INTERFACE: %s\n", interface);
if (SDL_strcmp(interface, "wl_compositor") == 0) {
if (SDL_strcmp(interface, wl_compositor_interface.name) == 0) {
d->compositor = wl_registry_bind(d->registry, id, &wl_compositor_interface, SDL_min(SDL_WL_COMPOSITOR_VERSION, version));
} else if (SDL_strcmp(interface, "wl_subcompositor") == 0) {
} else if (SDL_strcmp(interface, wl_subcompositor_interface.name) == 0) {
d->subcompositor = wl_registry_bind(d->registry, id, &wl_subcompositor_interface, 1);
} else if (SDL_strcmp(interface, "wl_output") == 0) {
} else if (SDL_strcmp(interface, wl_output_interface.name) == 0) {
Wayland_add_display(d, id, SDL_min(version, SDL_WL_OUTPUT_VERSION));
} else if (SDL_strcmp(interface, "wl_seat") == 0) {
} else if (SDL_strcmp(interface, wl_seat_interface.name) == 0) {
struct wl_seat *seat = wl_registry_bind(d->registry, id, &wl_seat_interface, SDL_min(SDL_WL_SEAT_VERSION, version));
Wayland_DisplayCreateSeat(d, seat, id);
} else if (SDL_strcmp(interface, "xdg_wm_base") == 0) {
} else if (SDL_strcmp(interface, xdg_wm_base_interface.name) == 0) {
d->shell.xdg = wl_registry_bind(d->registry, id, &xdg_wm_base_interface, SDL_min(version, 7));
xdg_wm_base_add_listener(d->shell.xdg, &_xdg_wm_base_listener, NULL);
} else if (SDL_strcmp(interface, "wl_shm") == 0) {
} else if (SDL_strcmp(interface, wl_shm_interface.name) == 0) {
d->shm = wl_registry_bind(registry, id, &wl_shm_interface, SDL_min(SDL_WL_SHM_VERSION, version));
} else if (SDL_strcmp(interface, "zwp_relative_pointer_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_relative_pointer_manager_v1_interface.name) == 0) {
d->relative_pointer_manager = wl_registry_bind(d->registry, id, &zwp_relative_pointer_manager_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_pointer_constraints_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_pointer_constraints_v1_interface.name) == 0) {
d->pointer_constraints = wl_registry_bind(d->registry, id, &zwp_pointer_constraints_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_keyboard_shortcuts_inhibit_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_keyboard_shortcuts_inhibit_manager_v1_interface.name) == 0) {
d->key_inhibitor_manager = wl_registry_bind(d->registry, id, &zwp_keyboard_shortcuts_inhibit_manager_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_idle_inhibit_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_idle_inhibit_manager_v1_interface.name) == 0) {
d->idle_inhibit_manager = wl_registry_bind(d->registry, id, &zwp_idle_inhibit_manager_v1_interface, 1);
} else if (SDL_strcmp(interface, "xdg_activation_v1") == 0) {
} else if (SDL_strcmp(interface, xdg_activation_v1_interface.name) == 0) {
d->activation_manager = wl_registry_bind(d->registry, id, &xdg_activation_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_text_input_manager_v3") == 0) {
} else if (SDL_strcmp(interface, zwp_text_input_manager_v3_interface.name) == 0) {
d->text_input_manager = wl_registry_bind(d->registry, id, &zwp_text_input_manager_v3_interface, 1);
Wayland_DisplayInitTextInputManager(d, id);
} else if (SDL_strcmp(interface, "wl_data_device_manager") == 0) {
} else if (SDL_strcmp(interface, wl_data_device_manager_interface.name) == 0) {
d->data_device_manager = wl_registry_bind(d->registry, id, &wl_data_device_manager_interface, SDL_min(3, version));
Wayland_DisplayInitDataDeviceManager(d);
} else if (SDL_strcmp(interface, "zwp_primary_selection_device_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_primary_selection_device_manager_v1_interface.name) == 0) {
d->primary_selection_device_manager = wl_registry_bind(d->registry, id, &zwp_primary_selection_device_manager_v1_interface, 1);
Wayland_DisplayInitPrimarySelectionDeviceManager(d);
} else if (SDL_strcmp(interface, "zxdg_decoration_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zxdg_decoration_manager_v1_interface.name) == 0) {
d->decoration_manager = wl_registry_bind(d->registry, id, &zxdg_decoration_manager_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_tablet_manager_v2") == 0) {
} else if (SDL_strcmp(interface, zwp_tablet_manager_v2_interface.name) == 0) {
d->tablet_manager = wl_registry_bind(d->registry, id, &zwp_tablet_manager_v2_interface, 1);
Wayland_DisplayInitTabletManager(d);
} else if (SDL_strcmp(interface, "zxdg_output_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zxdg_output_manager_v1_interface.name) == 0) {
version = SDL_min(version, 3); // Versions 1 through 3 are supported.
d->xdg_output_manager = wl_registry_bind(d->registry, id, &zxdg_output_manager_v1_interface, version);
Wayland_init_xdg_output(d);
} else if (SDL_strcmp(interface, "wp_viewporter") == 0) {
} else if (SDL_strcmp(interface, wp_viewporter_interface.name) == 0) {
d->viewporter = wl_registry_bind(d->registry, id, &wp_viewporter_interface, 1);
} else if (SDL_strcmp(interface, "wp_fractional_scale_manager_v1") == 0) {
} else if (SDL_strcmp(interface, wp_fractional_scale_manager_v1_interface.name) == 0) {
d->fractional_scale_manager = wl_registry_bind(d->registry, id, &wp_fractional_scale_manager_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_input_timestamps_manager_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_input_timestamps_manager_v1_interface.name) == 0) {
d->input_timestamps_manager = wl_registry_bind(d->registry, id, &zwp_input_timestamps_manager_v1_interface, 1);
Wayland_DisplayInitInputTimestampManager(d);
} else if (SDL_strcmp(interface, "wp_cursor_shape_manager_v1") == 0) {
} else if (SDL_strcmp(interface, wp_cursor_shape_manager_v1_interface.name) == 0) {
d->cursor_shape_manager = wl_registry_bind(d->registry, id, &wp_cursor_shape_manager_v1_interface, 1);
Wayland_DisplayInitCursorShapeManager(d);
} else if (SDL_strcmp(interface, "zxdg_exporter_v2") == 0) {
} else if (SDL_strcmp(interface, zxdg_exporter_v2_interface.name) == 0) {
d->zxdg_exporter_v2 = wl_registry_bind(d->registry, id, &zxdg_exporter_v2_interface, 1);
} else if (SDL_strcmp(interface, "xdg_wm_dialog_v1") == 0) {
} else if (SDL_strcmp(interface, xdg_wm_dialog_v1_interface.name) == 0) {
d->xdg_wm_dialog_v1 = wl_registry_bind(d->registry, id, &xdg_wm_dialog_v1_interface, 1);
} else if (SDL_strcmp(interface, "wp_alpha_modifier_v1") == 0) {
} else if (SDL_strcmp(interface, wp_alpha_modifier_v1_interface.name) == 0) {
d->wp_alpha_modifier_v1 = wl_registry_bind(d->registry, id, &wp_alpha_modifier_v1_interface, 1);
} else if (SDL_strcmp(interface, "xdg_toplevel_icon_manager_v1") == 0) {
} else if (SDL_strcmp(interface, xdg_toplevel_icon_manager_v1_interface.name) == 0) {
d->xdg_toplevel_icon_manager_v1 = wl_registry_bind(d->registry, id, &xdg_toplevel_icon_manager_v1_interface, 1);
} else if (SDL_strcmp(interface, "frog_color_management_factory_v1") == 0) {
} else if (SDL_strcmp(interface, frog_color_management_factory_v1_interface.name) == 0) {
d->frog_color_management_factory_v1 = wl_registry_bind(d->registry, id, &frog_color_management_factory_v1_interface, 1);
} else if (SDL_strcmp(interface, "wp_color_manager_v1") == 0) {
} else if (SDL_strcmp(interface, wp_color_manager_v1_interface.name) == 0) {
d->wp_color_manager_v1 = wl_registry_bind(d->registry, id, &wp_color_manager_v1_interface, SDL_min(version, 2));
Wayland_InitColorManager(d);
} else if (SDL_strcmp(interface, "wp_pointer_warp_v1") == 0) {
} else if (SDL_strcmp(interface, wp_pointer_warp_v1_interface.name) == 0) {
d->wp_pointer_warp_v1 = wl_registry_bind(d->registry, id, &wp_pointer_warp_v1_interface, 1);
} else if (SDL_strcmp(interface, "zwp_pointer_gestures_v1") == 0) {
} else if (SDL_strcmp(interface, zwp_pointer_gestures_v1_interface.name) == 0) {
d->zwp_pointer_gestures = wl_registry_bind(d->registry, id, &zwp_pointer_gestures_v1_interface, SDL_min(version, 3));
Wayland_DisplayInitPointerGestureManager(d);
} else if (SDL_strcmp(interface, "wp_single_pixel_buffer_manager_v1") == 0) {
} else if (SDL_strcmp(interface, wp_single_pixel_buffer_manager_v1_interface.name) == 0) {
d->single_pixel_buffer_manager = wl_registry_bind(d->registry, id, &wp_single_pixel_buffer_manager_v1_interface, 1);
}
#ifdef SDL_WL_FIXES_VERSION
else if (SDL_strcmp(interface, "wl_fixes") == 0) {
else if (SDL_strcmp(interface, wl_fixes_interface.name) == 0) {
d->wl_fixes = wl_registry_bind(d->registry, id, &wl_fixes_interface, SDL_min(SDL_WL_FIXES_VERSION, version));
}
#endif