summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/wayland/dynwrappers
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linuxbsd/wayland/dynwrappers')
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.c453
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.h175
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c607
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h231
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c89
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h42
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c67
-rw-r--r--platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h34
8 files changed, 1698 insertions, 0 deletions
diff --git a/platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.c b/platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.c
new file mode 100644
index 0000000000..eaf43215ce
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.c
@@ -0,0 +1,453 @@
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ./generate-wrapper.py 0.3 on 2022-12-12 10:55:19
+// flags: ./generate-wrapper.py --include /usr/include/libdecor-0/libdecor.h --sys-include <libdecor-0/libdecor.h> --soname libdecor-0.so.0 --init-name libdecor --output-header libdecor-so_wrap.h --output-implementation libdecor-so_wrap.c --omit-prefix wl_
+//
+// EDIT: This has been handpatched to properly report the pointer type of the window_state argument of libdecor_configuration_get_window_state.
+#include <stdint.h>
+
+#define libdecor_unref libdecor_unref_dylibloader_orig_libdecor
+#define libdecor_new libdecor_new_dylibloader_orig_libdecor
+#define libdecor_get_fd libdecor_get_fd_dylibloader_orig_libdecor
+#define libdecor_dispatch libdecor_dispatch_dylibloader_orig_libdecor
+#define libdecor_decorate libdecor_decorate_dylibloader_orig_libdecor
+#define libdecor_frame_ref libdecor_frame_ref_dylibloader_orig_libdecor
+#define libdecor_frame_unref libdecor_frame_unref_dylibloader_orig_libdecor
+#define libdecor_frame_set_visibility libdecor_frame_set_visibility_dylibloader_orig_libdecor
+#define libdecor_frame_is_visible libdecor_frame_is_visible_dylibloader_orig_libdecor
+#define libdecor_frame_set_parent libdecor_frame_set_parent_dylibloader_orig_libdecor
+#define libdecor_frame_set_title libdecor_frame_set_title_dylibloader_orig_libdecor
+#define libdecor_frame_get_title libdecor_frame_get_title_dylibloader_orig_libdecor
+#define libdecor_frame_set_app_id libdecor_frame_set_app_id_dylibloader_orig_libdecor
+#define libdecor_frame_set_capabilities libdecor_frame_set_capabilities_dylibloader_orig_libdecor
+#define libdecor_frame_unset_capabilities libdecor_frame_unset_capabilities_dylibloader_orig_libdecor
+#define libdecor_frame_has_capability libdecor_frame_has_capability_dylibloader_orig_libdecor
+#define libdecor_frame_show_window_menu libdecor_frame_show_window_menu_dylibloader_orig_libdecor
+#define libdecor_frame_popup_grab libdecor_frame_popup_grab_dylibloader_orig_libdecor
+#define libdecor_frame_popup_ungrab libdecor_frame_popup_ungrab_dylibloader_orig_libdecor
+#define libdecor_frame_translate_coordinate libdecor_frame_translate_coordinate_dylibloader_orig_libdecor
+#define libdecor_frame_set_min_content_size libdecor_frame_set_min_content_size_dylibloader_orig_libdecor
+#define libdecor_frame_set_max_content_size libdecor_frame_set_max_content_size_dylibloader_orig_libdecor
+#define libdecor_frame_resize libdecor_frame_resize_dylibloader_orig_libdecor
+#define libdecor_frame_move libdecor_frame_move_dylibloader_orig_libdecor
+#define libdecor_frame_commit libdecor_frame_commit_dylibloader_orig_libdecor
+#define libdecor_frame_set_minimized libdecor_frame_set_minimized_dylibloader_orig_libdecor
+#define libdecor_frame_set_maximized libdecor_frame_set_maximized_dylibloader_orig_libdecor
+#define libdecor_frame_unset_maximized libdecor_frame_unset_maximized_dylibloader_orig_libdecor
+#define libdecor_frame_set_fullscreen libdecor_frame_set_fullscreen_dylibloader_orig_libdecor
+#define libdecor_frame_unset_fullscreen libdecor_frame_unset_fullscreen_dylibloader_orig_libdecor
+#define libdecor_frame_is_floating libdecor_frame_is_floating_dylibloader_orig_libdecor
+#define libdecor_frame_close libdecor_frame_close_dylibloader_orig_libdecor
+#define libdecor_frame_map libdecor_frame_map_dylibloader_orig_libdecor
+#define libdecor_frame_get_xdg_surface libdecor_frame_get_xdg_surface_dylibloader_orig_libdecor
+#define libdecor_frame_get_xdg_toplevel libdecor_frame_get_xdg_toplevel_dylibloader_orig_libdecor
+#define libdecor_state_new libdecor_state_new_dylibloader_orig_libdecor
+#define libdecor_state_free libdecor_state_free_dylibloader_orig_libdecor
+#define libdecor_configuration_get_content_size libdecor_configuration_get_content_size_dylibloader_orig_libdecor
+#define libdecor_configuration_get_window_state libdecor_configuration_get_window_state_dylibloader_orig_libdecor
+#include <libdecor-0/libdecor.h>
+#undef libdecor_unref
+#undef libdecor_new
+#undef libdecor_get_fd
+#undef libdecor_dispatch
+#undef libdecor_decorate
+#undef libdecor_frame_ref
+#undef libdecor_frame_unref
+#undef libdecor_frame_set_visibility
+#undef libdecor_frame_is_visible
+#undef libdecor_frame_set_parent
+#undef libdecor_frame_set_title
+#undef libdecor_frame_get_title
+#undef libdecor_frame_set_app_id
+#undef libdecor_frame_set_capabilities
+#undef libdecor_frame_unset_capabilities
+#undef libdecor_frame_has_capability
+#undef libdecor_frame_show_window_menu
+#undef libdecor_frame_popup_grab
+#undef libdecor_frame_popup_ungrab
+#undef libdecor_frame_translate_coordinate
+#undef libdecor_frame_set_min_content_size
+#undef libdecor_frame_set_max_content_size
+#undef libdecor_frame_resize
+#undef libdecor_frame_move
+#undef libdecor_frame_commit
+#undef libdecor_frame_set_minimized
+#undef libdecor_frame_set_maximized
+#undef libdecor_frame_unset_maximized
+#undef libdecor_frame_set_fullscreen
+#undef libdecor_frame_unset_fullscreen
+#undef libdecor_frame_is_floating
+#undef libdecor_frame_close
+#undef libdecor_frame_map
+#undef libdecor_frame_get_xdg_surface
+#undef libdecor_frame_get_xdg_toplevel
+#undef libdecor_state_new
+#undef libdecor_state_free
+#undef libdecor_configuration_get_content_size
+#undef libdecor_configuration_get_window_state
+#include <dlfcn.h>
+#include <stdio.h>
+void (*libdecor_unref_dylibloader_wrapper_libdecor)(struct libdecor*);
+struct libdecor* (*libdecor_new_dylibloader_wrapper_libdecor)(struct wl_display*,struct libdecor_interface*);
+int (*libdecor_get_fd_dylibloader_wrapper_libdecor)(struct libdecor*);
+int (*libdecor_dispatch_dylibloader_wrapper_libdecor)(struct libdecor*, int);
+struct libdecor_frame* (*libdecor_decorate_dylibloader_wrapper_libdecor)(struct libdecor*,struct wl_surface*,struct libdecor_frame_interface*, void*);
+void (*libdecor_frame_ref_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_unref_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_set_visibility_dylibloader_wrapper_libdecor)(struct libdecor_frame*, bool);
+bool (*libdecor_frame_is_visible_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_set_parent_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct libdecor_frame*);
+void (*libdecor_frame_set_title_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+const char* (*libdecor_frame_get_title_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_set_app_id_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+void (*libdecor_frame_set_capabilities_dylibloader_wrapper_libdecor)(struct libdecor_frame*,enum libdecor_capabilities);
+void (*libdecor_frame_unset_capabilities_dylibloader_wrapper_libdecor)(struct libdecor_frame*,enum libdecor_capabilities);
+bool (*libdecor_frame_has_capability_dylibloader_wrapper_libdecor)(struct libdecor_frame*,enum libdecor_capabilities);
+void (*libdecor_frame_show_window_menu_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_seat*, uint32_t, int, int);
+void (*libdecor_frame_popup_grab_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+void (*libdecor_frame_popup_ungrab_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+void (*libdecor_frame_translate_coordinate_dylibloader_wrapper_libdecor)(struct libdecor_frame*, int, int, int*, int*);
+void (*libdecor_frame_set_min_content_size_dylibloader_wrapper_libdecor)(struct libdecor_frame*, int, int);
+void (*libdecor_frame_set_max_content_size_dylibloader_wrapper_libdecor)(struct libdecor_frame*, int, int);
+void (*libdecor_frame_resize_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_seat*, uint32_t,enum libdecor_resize_edge);
+void (*libdecor_frame_move_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_seat*, uint32_t);
+void (*libdecor_frame_commit_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct libdecor_state*,struct libdecor_configuration*);
+void (*libdecor_frame_set_minimized_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_set_maximized_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_unset_maximized_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_set_fullscreen_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_output*);
+void (*libdecor_frame_unset_fullscreen_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+bool (*libdecor_frame_is_floating_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_close_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+void (*libdecor_frame_map_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+struct xdg_surface* (*libdecor_frame_get_xdg_surface_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+struct xdg_toplevel* (*libdecor_frame_get_xdg_toplevel_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+struct libdecor_state* (*libdecor_state_new_dylibloader_wrapper_libdecor)( int, int);
+void (*libdecor_state_free_dylibloader_wrapper_libdecor)(struct libdecor_state*);
+bool (*libdecor_configuration_get_content_size_dylibloader_wrapper_libdecor)(struct libdecor_configuration*,struct libdecor_frame*, int*, int*);
+bool (*libdecor_configuration_get_window_state_dylibloader_wrapper_libdecor)(struct libdecor_configuration*,enum libdecor_window_state*);
+int initialize_libdecor(int verbose) {
+ void *handle;
+ char *error;
+ handle = dlopen("libdecor-0.so.0", RTLD_LAZY);
+ if (!handle) {
+ if (verbose) {
+ fprintf(stderr, "%s\n", dlerror());
+ }
+ return(1);
+ }
+ dlerror();
+// libdecor_unref
+ *(void **) (&libdecor_unref_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_unref");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_new
+ *(void **) (&libdecor_new_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_new");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_get_fd
+ *(void **) (&libdecor_get_fd_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_get_fd");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_dispatch
+ *(void **) (&libdecor_dispatch_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_dispatch");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_decorate
+ *(void **) (&libdecor_decorate_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_decorate");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_ref
+ *(void **) (&libdecor_frame_ref_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_ref");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_unref
+ *(void **) (&libdecor_frame_unref_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_unref");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_visibility
+ *(void **) (&libdecor_frame_set_visibility_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_visibility");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_is_visible
+ *(void **) (&libdecor_frame_is_visible_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_is_visible");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_parent
+ *(void **) (&libdecor_frame_set_parent_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_parent");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_title
+ *(void **) (&libdecor_frame_set_title_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_title");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_get_title
+ *(void **) (&libdecor_frame_get_title_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_get_title");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_app_id
+ *(void **) (&libdecor_frame_set_app_id_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_app_id");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_capabilities
+ *(void **) (&libdecor_frame_set_capabilities_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_capabilities");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_unset_capabilities
+ *(void **) (&libdecor_frame_unset_capabilities_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_unset_capabilities");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_has_capability
+ *(void **) (&libdecor_frame_has_capability_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_has_capability");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_show_window_menu
+ *(void **) (&libdecor_frame_show_window_menu_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_show_window_menu");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_popup_grab
+ *(void **) (&libdecor_frame_popup_grab_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_popup_grab");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_popup_ungrab
+ *(void **) (&libdecor_frame_popup_ungrab_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_popup_ungrab");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_translate_coordinate
+ *(void **) (&libdecor_frame_translate_coordinate_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_translate_coordinate");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_min_content_size
+ *(void **) (&libdecor_frame_set_min_content_size_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_min_content_size");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_max_content_size
+ *(void **) (&libdecor_frame_set_max_content_size_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_max_content_size");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_resize
+ *(void **) (&libdecor_frame_resize_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_resize");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_move
+ *(void **) (&libdecor_frame_move_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_move");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_commit
+ *(void **) (&libdecor_frame_commit_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_commit");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_minimized
+ *(void **) (&libdecor_frame_set_minimized_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_minimized");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_maximized
+ *(void **) (&libdecor_frame_set_maximized_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_maximized");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_unset_maximized
+ *(void **) (&libdecor_frame_unset_maximized_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_unset_maximized");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_set_fullscreen
+ *(void **) (&libdecor_frame_set_fullscreen_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_set_fullscreen");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_unset_fullscreen
+ *(void **) (&libdecor_frame_unset_fullscreen_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_unset_fullscreen");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_is_floating
+ *(void **) (&libdecor_frame_is_floating_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_is_floating");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_close
+ *(void **) (&libdecor_frame_close_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_close");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_map
+ *(void **) (&libdecor_frame_map_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_map");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_get_xdg_surface
+ *(void **) (&libdecor_frame_get_xdg_surface_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_get_xdg_surface");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_frame_get_xdg_toplevel
+ *(void **) (&libdecor_frame_get_xdg_toplevel_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_frame_get_xdg_toplevel");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_state_new
+ *(void **) (&libdecor_state_new_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_state_new");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_state_free
+ *(void **) (&libdecor_state_free_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_state_free");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_configuration_get_content_size
+ *(void **) (&libdecor_configuration_get_content_size_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_configuration_get_content_size");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// libdecor_configuration_get_window_state
+ *(void **) (&libdecor_configuration_get_window_state_dylibloader_wrapper_libdecor) = dlsym(handle, "libdecor_configuration_get_window_state");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+return 0;
+}
diff --git a/platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.h b/platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.h
new file mode 100644
index 0000000000..bf3f520008
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.h
@@ -0,0 +1,175 @@
+#ifndef DYLIBLOAD_WRAPPER_LIBDECOR
+#define DYLIBLOAD_WRAPPER_LIBDECOR
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ./generate-wrapper.py 0.3 on 2022-12-12 10:55:19
+// flags: ./generate-wrapper.py --include /usr/include/libdecor-0/libdecor.h --sys-include <libdecor-0/libdecor.h> --soname libdecor-0.so.0 --init-name libdecor --output-header libdecor-so_wrap.h --output-implementation libdecor-so_wrap.c --omit-prefix wl_
+//
+// EDIT: This has been handpatched to properly report the pointer type of the window_state argument of libdecor_configuration_get_window_state.
+#include <stdint.h>
+
+#define libdecor_unref libdecor_unref_dylibloader_orig_libdecor
+#define libdecor_new libdecor_new_dylibloader_orig_libdecor
+#define libdecor_get_fd libdecor_get_fd_dylibloader_orig_libdecor
+#define libdecor_dispatch libdecor_dispatch_dylibloader_orig_libdecor
+#define libdecor_decorate libdecor_decorate_dylibloader_orig_libdecor
+#define libdecor_frame_ref libdecor_frame_ref_dylibloader_orig_libdecor
+#define libdecor_frame_unref libdecor_frame_unref_dylibloader_orig_libdecor
+#define libdecor_frame_set_visibility libdecor_frame_set_visibility_dylibloader_orig_libdecor
+#define libdecor_frame_is_visible libdecor_frame_is_visible_dylibloader_orig_libdecor
+#define libdecor_frame_set_parent libdecor_frame_set_parent_dylibloader_orig_libdecor
+#define libdecor_frame_set_title libdecor_frame_set_title_dylibloader_orig_libdecor
+#define libdecor_frame_get_title libdecor_frame_get_title_dylibloader_orig_libdecor
+#define libdecor_frame_set_app_id libdecor_frame_set_app_id_dylibloader_orig_libdecor
+#define libdecor_frame_set_capabilities libdecor_frame_set_capabilities_dylibloader_orig_libdecor
+#define libdecor_frame_unset_capabilities libdecor_frame_unset_capabilities_dylibloader_orig_libdecor
+#define libdecor_frame_has_capability libdecor_frame_has_capability_dylibloader_orig_libdecor
+#define libdecor_frame_show_window_menu libdecor_frame_show_window_menu_dylibloader_orig_libdecor
+#define libdecor_frame_popup_grab libdecor_frame_popup_grab_dylibloader_orig_libdecor
+#define libdecor_frame_popup_ungrab libdecor_frame_popup_ungrab_dylibloader_orig_libdecor
+#define libdecor_frame_translate_coordinate libdecor_frame_translate_coordinate_dylibloader_orig_libdecor
+#define libdecor_frame_set_min_content_size libdecor_frame_set_min_content_size_dylibloader_orig_libdecor
+#define libdecor_frame_set_max_content_size libdecor_frame_set_max_content_size_dylibloader_orig_libdecor
+#define libdecor_frame_resize libdecor_frame_resize_dylibloader_orig_libdecor
+#define libdecor_frame_move libdecor_frame_move_dylibloader_orig_libdecor
+#define libdecor_frame_commit libdecor_frame_commit_dylibloader_orig_libdecor
+#define libdecor_frame_set_minimized libdecor_frame_set_minimized_dylibloader_orig_libdecor
+#define libdecor_frame_set_maximized libdecor_frame_set_maximized_dylibloader_orig_libdecor
+#define libdecor_frame_unset_maximized libdecor_frame_unset_maximized_dylibloader_orig_libdecor
+#define libdecor_frame_set_fullscreen libdecor_frame_set_fullscreen_dylibloader_orig_libdecor
+#define libdecor_frame_unset_fullscreen libdecor_frame_unset_fullscreen_dylibloader_orig_libdecor
+#define libdecor_frame_is_floating libdecor_frame_is_floating_dylibloader_orig_libdecor
+#define libdecor_frame_close libdecor_frame_close_dylibloader_orig_libdecor
+#define libdecor_frame_map libdecor_frame_map_dylibloader_orig_libdecor
+#define libdecor_frame_get_xdg_surface libdecor_frame_get_xdg_surface_dylibloader_orig_libdecor
+#define libdecor_frame_get_xdg_toplevel libdecor_frame_get_xdg_toplevel_dylibloader_orig_libdecor
+#define libdecor_state_new libdecor_state_new_dylibloader_orig_libdecor
+#define libdecor_state_free libdecor_state_free_dylibloader_orig_libdecor
+#define libdecor_configuration_get_content_size libdecor_configuration_get_content_size_dylibloader_orig_libdecor
+#define libdecor_configuration_get_window_state libdecor_configuration_get_window_state_dylibloader_orig_libdecor
+#include <libdecor-0/libdecor.h>
+#undef libdecor_unref
+#undef libdecor_new
+#undef libdecor_get_fd
+#undef libdecor_dispatch
+#undef libdecor_decorate
+#undef libdecor_frame_ref
+#undef libdecor_frame_unref
+#undef libdecor_frame_set_visibility
+#undef libdecor_frame_is_visible
+#undef libdecor_frame_set_parent
+#undef libdecor_frame_set_title
+#undef libdecor_frame_get_title
+#undef libdecor_frame_set_app_id
+#undef libdecor_frame_set_capabilities
+#undef libdecor_frame_unset_capabilities
+#undef libdecor_frame_has_capability
+#undef libdecor_frame_show_window_menu
+#undef libdecor_frame_popup_grab
+#undef libdecor_frame_popup_ungrab
+#undef libdecor_frame_translate_coordinate
+#undef libdecor_frame_set_min_content_size
+#undef libdecor_frame_set_max_content_size
+#undef libdecor_frame_resize
+#undef libdecor_frame_move
+#undef libdecor_frame_commit
+#undef libdecor_frame_set_minimized
+#undef libdecor_frame_set_maximized
+#undef libdecor_frame_unset_maximized
+#undef libdecor_frame_set_fullscreen
+#undef libdecor_frame_unset_fullscreen
+#undef libdecor_frame_is_floating
+#undef libdecor_frame_close
+#undef libdecor_frame_map
+#undef libdecor_frame_get_xdg_surface
+#undef libdecor_frame_get_xdg_toplevel
+#undef libdecor_state_new
+#undef libdecor_state_free
+#undef libdecor_configuration_get_content_size
+#undef libdecor_configuration_get_window_state
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define libdecor_unref libdecor_unref_dylibloader_wrapper_libdecor
+#define libdecor_new libdecor_new_dylibloader_wrapper_libdecor
+#define libdecor_get_fd libdecor_get_fd_dylibloader_wrapper_libdecor
+#define libdecor_dispatch libdecor_dispatch_dylibloader_wrapper_libdecor
+#define libdecor_decorate libdecor_decorate_dylibloader_wrapper_libdecor
+#define libdecor_frame_ref libdecor_frame_ref_dylibloader_wrapper_libdecor
+#define libdecor_frame_unref libdecor_frame_unref_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_visibility libdecor_frame_set_visibility_dylibloader_wrapper_libdecor
+#define libdecor_frame_is_visible libdecor_frame_is_visible_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_parent libdecor_frame_set_parent_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_title libdecor_frame_set_title_dylibloader_wrapper_libdecor
+#define libdecor_frame_get_title libdecor_frame_get_title_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_app_id libdecor_frame_set_app_id_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_capabilities libdecor_frame_set_capabilities_dylibloader_wrapper_libdecor
+#define libdecor_frame_unset_capabilities libdecor_frame_unset_capabilities_dylibloader_wrapper_libdecor
+#define libdecor_frame_has_capability libdecor_frame_has_capability_dylibloader_wrapper_libdecor
+#define libdecor_frame_show_window_menu libdecor_frame_show_window_menu_dylibloader_wrapper_libdecor
+#define libdecor_frame_popup_grab libdecor_frame_popup_grab_dylibloader_wrapper_libdecor
+#define libdecor_frame_popup_ungrab libdecor_frame_popup_ungrab_dylibloader_wrapper_libdecor
+#define libdecor_frame_translate_coordinate libdecor_frame_translate_coordinate_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_min_content_size libdecor_frame_set_min_content_size_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_max_content_size libdecor_frame_set_max_content_size_dylibloader_wrapper_libdecor
+#define libdecor_frame_resize libdecor_frame_resize_dylibloader_wrapper_libdecor
+#define libdecor_frame_move libdecor_frame_move_dylibloader_wrapper_libdecor
+#define libdecor_frame_commit libdecor_frame_commit_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_minimized libdecor_frame_set_minimized_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_maximized libdecor_frame_set_maximized_dylibloader_wrapper_libdecor
+#define libdecor_frame_unset_maximized libdecor_frame_unset_maximized_dylibloader_wrapper_libdecor
+#define libdecor_frame_set_fullscreen libdecor_frame_set_fullscreen_dylibloader_wrapper_libdecor
+#define libdecor_frame_unset_fullscreen libdecor_frame_unset_fullscreen_dylibloader_wrapper_libdecor
+#define libdecor_frame_is_floating libdecor_frame_is_floating_dylibloader_wrapper_libdecor
+#define libdecor_frame_close libdecor_frame_close_dylibloader_wrapper_libdecor
+#define libdecor_frame_map libdecor_frame_map_dylibloader_wrapper_libdecor
+#define libdecor_frame_get_xdg_surface libdecor_frame_get_xdg_surface_dylibloader_wrapper_libdecor
+#define libdecor_frame_get_xdg_toplevel libdecor_frame_get_xdg_toplevel_dylibloader_wrapper_libdecor
+#define libdecor_state_new libdecor_state_new_dylibloader_wrapper_libdecor
+#define libdecor_state_free libdecor_state_free_dylibloader_wrapper_libdecor
+#define libdecor_configuration_get_content_size libdecor_configuration_get_content_size_dylibloader_wrapper_libdecor
+#define libdecor_configuration_get_window_state libdecor_configuration_get_window_state_dylibloader_wrapper_libdecor
+extern void (*libdecor_unref_dylibloader_wrapper_libdecor)(struct libdecor*);
+extern struct libdecor* (*libdecor_new_dylibloader_wrapper_libdecor)(struct wl_display*,struct libdecor_interface*);
+extern int (*libdecor_get_fd_dylibloader_wrapper_libdecor)(struct libdecor*);
+extern int (*libdecor_dispatch_dylibloader_wrapper_libdecor)(struct libdecor*, int);
+extern struct libdecor_frame* (*libdecor_decorate_dylibloader_wrapper_libdecor)(struct libdecor*,struct wl_surface*,struct libdecor_frame_interface*, void*);
+extern void (*libdecor_frame_ref_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_unref_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_set_visibility_dylibloader_wrapper_libdecor)(struct libdecor_frame*, bool);
+extern bool (*libdecor_frame_is_visible_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_set_parent_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct libdecor_frame*);
+extern void (*libdecor_frame_set_title_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+extern const char* (*libdecor_frame_get_title_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_set_app_id_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+extern void (*libdecor_frame_set_capabilities_dylibloader_wrapper_libdecor)(struct libdecor_frame*,enum libdecor_capabilities);
+extern void (*libdecor_frame_unset_capabilities_dylibloader_wrapper_libdecor)(struct libdecor_frame*,enum libdecor_capabilities);
+extern bool (*libdecor_frame_has_capability_dylibloader_wrapper_libdecor)(struct libdecor_frame*,enum libdecor_capabilities);
+extern void (*libdecor_frame_show_window_menu_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_seat*, uint32_t, int, int);
+extern void (*libdecor_frame_popup_grab_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+extern void (*libdecor_frame_popup_ungrab_dylibloader_wrapper_libdecor)(struct libdecor_frame*,const char*);
+extern void (*libdecor_frame_translate_coordinate_dylibloader_wrapper_libdecor)(struct libdecor_frame*, int, int, int*, int*);
+extern void (*libdecor_frame_set_min_content_size_dylibloader_wrapper_libdecor)(struct libdecor_frame*, int, int);
+extern void (*libdecor_frame_set_max_content_size_dylibloader_wrapper_libdecor)(struct libdecor_frame*, int, int);
+extern void (*libdecor_frame_resize_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_seat*, uint32_t,enum libdecor_resize_edge);
+extern void (*libdecor_frame_move_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_seat*, uint32_t);
+extern void (*libdecor_frame_commit_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct libdecor_state*,struct libdecor_configuration*);
+extern void (*libdecor_frame_set_minimized_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_set_maximized_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_unset_maximized_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_set_fullscreen_dylibloader_wrapper_libdecor)(struct libdecor_frame*,struct wl_output*);
+extern void (*libdecor_frame_unset_fullscreen_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern bool (*libdecor_frame_is_floating_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_close_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern void (*libdecor_frame_map_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern struct xdg_surface* (*libdecor_frame_get_xdg_surface_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern struct xdg_toplevel* (*libdecor_frame_get_xdg_toplevel_dylibloader_wrapper_libdecor)(struct libdecor_frame*);
+extern struct libdecor_state* (*libdecor_state_new_dylibloader_wrapper_libdecor)( int, int);
+extern void (*libdecor_state_free_dylibloader_wrapper_libdecor)(struct libdecor_state*);
+extern bool (*libdecor_configuration_get_content_size_dylibloader_wrapper_libdecor)(struct libdecor_configuration*,struct libdecor_frame*, int*, int*);
+extern bool (*libdecor_configuration_get_window_state_dylibloader_wrapper_libdecor)(struct libdecor_configuration*,enum libdecor_window_state*);
+int initialize_libdecor(int verbose);
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c b/platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c
new file mode 100644
index 0000000000..0cd8e56a77
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c
@@ -0,0 +1,607 @@
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ../dynload-wrapper/generate-wrapper.py 0.3 on 2023-01-25 17:36:12
+// flags: ../dynload-wrapper/generate-wrapper.py --include ./thirdparty/linuxbsd_headers/wayland/wayland-client-core.h --sys-include "./thirdparty/linuxbsd_headers/wayland/wayland-client-core.h" --soname libwayland-client.so.0 --init-name wayland_client --output-header platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h --output-implementation platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c
+//
+// NOTE: This has been hand-patched to workaround some issues.
+#include <stdint.h>
+
+#define wl_list_init wl_list_init_dylibloader_orig_wayland_client
+#define wl_list_insert wl_list_insert_dylibloader_orig_wayland_client
+#define wl_list_remove wl_list_remove_dylibloader_orig_wayland_client
+#define wl_list_length wl_list_length_dylibloader_orig_wayland_client
+#define wl_list_empty wl_list_empty_dylibloader_orig_wayland_client
+#define wl_list_insert_list wl_list_insert_list_dylibloader_orig_wayland_client
+#define wl_array_init wl_array_init_dylibloader_orig_wayland_client
+#define wl_array_release wl_array_release_dylibloader_orig_wayland_client
+#define wl_array_add wl_array_add_dylibloader_orig_wayland_client
+#define wl_array_copy wl_array_copy_dylibloader_orig_wayland_client
+#define wl_event_queue_destroy wl_event_queue_destroy_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_flags wl_proxy_marshal_flags_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array_flags wl_proxy_marshal_array_flags_dylibloader_orig_wayland_client
+#define wl_proxy_marshal wl_proxy_marshal_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array wl_proxy_marshal_array_dylibloader_orig_wayland_client
+#define wl_proxy_create wl_proxy_create_dylibloader_orig_wayland_client
+#define wl_proxy_create_wrapper wl_proxy_create_wrapper_dylibloader_orig_wayland_client
+#define wl_proxy_wrapper_destroy wl_proxy_wrapper_destroy_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_constructor wl_proxy_marshal_constructor_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_constructor_versioned wl_proxy_marshal_constructor_versioned_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array_constructor wl_proxy_marshal_array_constructor_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array_constructor_versioned wl_proxy_marshal_array_constructor_versioned_dylibloader_orig_wayland_client
+#define wl_proxy_destroy wl_proxy_destroy_dylibloader_orig_wayland_client
+#define wl_proxy_add_listener wl_proxy_add_listener_dylibloader_orig_wayland_client
+#define wl_proxy_get_listener wl_proxy_get_listener_dylibloader_orig_wayland_client
+#define wl_proxy_add_dispatcher wl_proxy_add_dispatcher_dylibloader_orig_wayland_client
+#define wl_proxy_set_user_data wl_proxy_set_user_data_dylibloader_orig_wayland_client
+#define wl_proxy_get_user_data wl_proxy_get_user_data_dylibloader_orig_wayland_client
+#define wl_proxy_get_version wl_proxy_get_version_dylibloader_orig_wayland_client
+#define wl_proxy_get_id wl_proxy_get_id_dylibloader_orig_wayland_client
+#define wl_proxy_set_tag wl_proxy_set_tag_dylibloader_orig_wayland_client
+#define wl_proxy_get_tag wl_proxy_get_tag_dylibloader_orig_wayland_client
+#define wl_proxy_get_class wl_proxy_get_class_dylibloader_orig_wayland_client
+#define wl_proxy_set_queue wl_proxy_set_queue_dylibloader_orig_wayland_client
+#define wl_display_connect wl_display_connect_dylibloader_orig_wayland_client
+#define wl_display_connect_to_fd wl_display_connect_to_fd_dylibloader_orig_wayland_client
+#define wl_display_disconnect wl_display_disconnect_dylibloader_orig_wayland_client
+#define wl_display_get_fd wl_display_get_fd_dylibloader_orig_wayland_client
+#define wl_display_dispatch wl_display_dispatch_dylibloader_orig_wayland_client
+#define wl_display_dispatch_queue wl_display_dispatch_queue_dylibloader_orig_wayland_client
+#define wl_display_dispatch_queue_pending wl_display_dispatch_queue_pending_dylibloader_orig_wayland_client
+#define wl_display_dispatch_pending wl_display_dispatch_pending_dylibloader_orig_wayland_client
+#define wl_display_get_error wl_display_get_error_dylibloader_orig_wayland_client
+#define wl_display_get_protocol_error wl_display_get_protocol_error_dylibloader_orig_wayland_client
+#define wl_display_flush wl_display_flush_dylibloader_orig_wayland_client
+#define wl_display_roundtrip_queue wl_display_roundtrip_queue_dylibloader_orig_wayland_client
+#define wl_display_roundtrip wl_display_roundtrip_dylibloader_orig_wayland_client
+#define wl_display_create_queue wl_display_create_queue_dylibloader_orig_wayland_client
+#define wl_display_prepare_read_queue wl_display_prepare_read_queue_dylibloader_orig_wayland_client
+#define wl_display_prepare_read wl_display_prepare_read_dylibloader_orig_wayland_client
+#define wl_display_cancel_read wl_display_cancel_read_dylibloader_orig_wayland_client
+#define wl_display_read_events wl_display_read_events_dylibloader_orig_wayland_client
+#define wl_log_set_handler_client wl_log_set_handler_client_dylibloader_orig_wayland_client
+#include "./thirdparty/linuxbsd_headers/wayland/wayland-client-core.h"
+#undef wl_list_init
+#undef wl_list_insert
+#undef wl_list_remove
+#undef wl_list_length
+#undef wl_list_empty
+#undef wl_list_insert_list
+#undef wl_array_init
+#undef wl_array_release
+#undef wl_array_add
+#undef wl_array_copy
+#undef wl_event_queue_destroy
+#undef wl_proxy_marshal_flags
+#undef wl_proxy_marshal_array_flags
+#undef wl_proxy_marshal
+#undef wl_proxy_marshal_array
+#undef wl_proxy_create
+#undef wl_proxy_create_wrapper
+#undef wl_proxy_wrapper_destroy
+#undef wl_proxy_marshal_constructor
+#undef wl_proxy_marshal_constructor_versioned
+#undef wl_proxy_marshal_array_constructor
+#undef wl_proxy_marshal_array_constructor_versioned
+#undef wl_proxy_destroy
+#undef wl_proxy_add_listener
+#undef wl_proxy_get_listener
+#undef wl_proxy_add_dispatcher
+#undef wl_proxy_set_user_data
+#undef wl_proxy_get_user_data
+#undef wl_proxy_get_version
+#undef wl_proxy_get_id
+#undef wl_proxy_set_tag
+#undef wl_proxy_get_tag
+#undef wl_proxy_get_class
+#undef wl_proxy_set_queue
+#undef wl_display_connect
+#undef wl_display_connect_to_fd
+#undef wl_display_disconnect
+#undef wl_display_get_fd
+#undef wl_display_dispatch
+#undef wl_display_dispatch_queue
+#undef wl_display_dispatch_queue_pending
+#undef wl_display_dispatch_pending
+#undef wl_display_get_error
+#undef wl_display_get_protocol_error
+#undef wl_display_flush
+#undef wl_display_roundtrip_queue
+#undef wl_display_roundtrip
+#undef wl_display_create_queue
+#undef wl_display_prepare_read_queue
+#undef wl_display_prepare_read
+#undef wl_display_cancel_read
+#undef wl_display_read_events
+#undef wl_log_set_handler_client
+#include <dlfcn.h>
+#include <stdio.h>
+void (*wl_list_init_dylibloader_wrapper_wayland_client)(struct wl_list*);
+void (*wl_list_insert_dylibloader_wrapper_wayland_client)(struct wl_list*,struct wl_list*);
+void (*wl_list_remove_dylibloader_wrapper_wayland_client)(struct wl_list*);
+int (*wl_list_length_dylibloader_wrapper_wayland_client)(struct wl_list*);
+int (*wl_list_empty_dylibloader_wrapper_wayland_client)(struct wl_list*);
+void (*wl_list_insert_list_dylibloader_wrapper_wayland_client)(struct wl_list*,struct wl_list*);
+void (*wl_array_init_dylibloader_wrapper_wayland_client)(struct wl_array*);
+void (*wl_array_release_dylibloader_wrapper_wayland_client)(struct wl_array*);
+void* (*wl_array_add_dylibloader_wrapper_wayland_client)(struct wl_array*, size_t);
+int (*wl_array_copy_dylibloader_wrapper_wayland_client)(struct wl_array*,struct wl_array*);
+void (*wl_event_queue_destroy_dylibloader_wrapper_wayland_client)(struct wl_event_queue*);
+struct wl_proxy* (*wl_proxy_marshal_flags_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*, uint32_t, uint32_t,...);
+struct wl_proxy* (*wl_proxy_marshal_array_flags_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*, uint32_t, uint32_t,union wl_argument);
+void (*wl_proxy_marshal_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,...);
+void (*wl_proxy_marshal_array_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,union wl_argument);
+struct wl_proxy* (*wl_proxy_create_dylibloader_wrapper_wayland_client)(struct wl_proxy*,const struct wl_interface*);
+void* (*wl_proxy_create_wrapper_dylibloader_wrapper_wayland_client)( void*);
+void (*wl_proxy_wrapper_destroy_dylibloader_wrapper_wayland_client)( void*);
+struct wl_proxy* (*wl_proxy_marshal_constructor_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*,...);
+struct wl_proxy* (*wl_proxy_marshal_constructor_versioned_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*, uint32_t,...);
+struct wl_proxy* (*wl_proxy_marshal_array_constructor_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,union wl_argument,const struct wl_interface*);
+struct wl_proxy* (*wl_proxy_marshal_array_constructor_versioned_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,union wl_argument,const struct wl_interface*, uint32_t);
+void (*wl_proxy_destroy_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+int (*wl_proxy_add_listener_dylibloader_wrapper_wayland_client)(struct wl_proxy*, void(**)(void), void*);
+const void* (*wl_proxy_get_listener_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+int (*wl_proxy_add_dispatcher_dylibloader_wrapper_wayland_client)(struct wl_proxy*, wl_dispatcher_func_t,const void*, void*);
+void (*wl_proxy_set_user_data_dylibloader_wrapper_wayland_client)(struct wl_proxy*, void*);
+void* (*wl_proxy_get_user_data_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+uint32_t (*wl_proxy_get_version_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+uint32_t (*wl_proxy_get_id_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+void (*wl_proxy_set_tag_dylibloader_wrapper_wayland_client)(struct wl_proxy*,const char**);
+const char** (*wl_proxy_get_tag_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+const char* (*wl_proxy_get_class_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+void (*wl_proxy_set_queue_dylibloader_wrapper_wayland_client)(struct wl_proxy*,struct wl_event_queue*);
+struct wl_display* (*wl_display_connect_dylibloader_wrapper_wayland_client)(const char*);
+struct wl_display* (*wl_display_connect_to_fd_dylibloader_wrapper_wayland_client)( int);
+void (*wl_display_disconnect_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_get_fd_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_dispatch_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_dispatch_queue_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+int (*wl_display_dispatch_queue_pending_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+int (*wl_display_dispatch_pending_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_get_error_dylibloader_wrapper_wayland_client)(struct wl_display*);
+uint32_t (*wl_display_get_protocol_error_dylibloader_wrapper_wayland_client)(struct wl_display*,const struct wl_interface**, uint32_t*);
+int (*wl_display_flush_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_roundtrip_queue_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+int (*wl_display_roundtrip_dylibloader_wrapper_wayland_client)(struct wl_display*);
+struct wl_event_queue* (*wl_display_create_queue_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_prepare_read_queue_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+int (*wl_display_prepare_read_dylibloader_wrapper_wayland_client)(struct wl_display*);
+void (*wl_display_cancel_read_dylibloader_wrapper_wayland_client)(struct wl_display*);
+int (*wl_display_read_events_dylibloader_wrapper_wayland_client)(struct wl_display*);
+void (*wl_log_set_handler_client_dylibloader_wrapper_wayland_client)( wl_log_func_t);
+int initialize_wayland_client(int verbose) {
+ void *handle;
+ char *error;
+ handle = dlopen("libwayland-client.so.0", RTLD_LAZY);
+ if (!handle) {
+ if (verbose) {
+ fprintf(stderr, "%s\n", dlerror());
+ }
+ return(1);
+ }
+ dlerror();
+// wl_list_init
+ *(void **) (&wl_list_init_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_list_init");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_list_insert
+ *(void **) (&wl_list_insert_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_list_insert");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_list_remove
+ *(void **) (&wl_list_remove_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_list_remove");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_list_length
+ *(void **) (&wl_list_length_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_list_length");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_list_empty
+ *(void **) (&wl_list_empty_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_list_empty");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_list_insert_list
+ *(void **) (&wl_list_insert_list_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_list_insert_list");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_array_init
+ *(void **) (&wl_array_init_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_array_init");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_array_release
+ *(void **) (&wl_array_release_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_array_release");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_array_add
+ *(void **) (&wl_array_add_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_array_add");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_array_copy
+ *(void **) (&wl_array_copy_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_array_copy");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_event_queue_destroy
+ *(void **) (&wl_event_queue_destroy_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_event_queue_destroy");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_flags
+ *(void **) (&wl_proxy_marshal_flags_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_flags");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_array_flags
+ *(void **) (&wl_proxy_marshal_array_flags_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_array_flags");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal
+ *(void **) (&wl_proxy_marshal_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_array
+ *(void **) (&wl_proxy_marshal_array_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_array");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_create
+ *(void **) (&wl_proxy_create_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_create");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_create_wrapper
+ *(void **) (&wl_proxy_create_wrapper_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_create_wrapper");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_wrapper_destroy
+ *(void **) (&wl_proxy_wrapper_destroy_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_wrapper_destroy");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_constructor
+ *(void **) (&wl_proxy_marshal_constructor_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_constructor");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_constructor_versioned
+ *(void **) (&wl_proxy_marshal_constructor_versioned_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_constructor_versioned");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_array_constructor
+ *(void **) (&wl_proxy_marshal_array_constructor_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_array_constructor");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_marshal_array_constructor_versioned
+ *(void **) (&wl_proxy_marshal_array_constructor_versioned_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_marshal_array_constructor_versioned");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_destroy
+ *(void **) (&wl_proxy_destroy_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_destroy");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_add_listener
+ *(void **) (&wl_proxy_add_listener_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_add_listener");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_get_listener
+ *(void **) (&wl_proxy_get_listener_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_get_listener");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_add_dispatcher
+ *(void **) (&wl_proxy_add_dispatcher_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_add_dispatcher");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_set_user_data
+ *(void **) (&wl_proxy_set_user_data_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_set_user_data");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_get_user_data
+ *(void **) (&wl_proxy_get_user_data_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_get_user_data");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_get_version
+ *(void **) (&wl_proxy_get_version_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_get_version");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_get_id
+ *(void **) (&wl_proxy_get_id_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_get_id");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_set_tag
+ *(void **) (&wl_proxy_set_tag_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_set_tag");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_get_tag
+ *(void **) (&wl_proxy_get_tag_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_get_tag");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_get_class
+ *(void **) (&wl_proxy_get_class_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_get_class");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_proxy_set_queue
+ *(void **) (&wl_proxy_set_queue_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_proxy_set_queue");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_connect
+ *(void **) (&wl_display_connect_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_connect");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_connect_to_fd
+ *(void **) (&wl_display_connect_to_fd_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_connect_to_fd");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_disconnect
+ *(void **) (&wl_display_disconnect_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_disconnect");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_get_fd
+ *(void **) (&wl_display_get_fd_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_get_fd");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_dispatch
+ *(void **) (&wl_display_dispatch_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_dispatch");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_dispatch_queue
+ *(void **) (&wl_display_dispatch_queue_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_dispatch_queue");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_dispatch_queue_pending
+ *(void **) (&wl_display_dispatch_queue_pending_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_dispatch_queue_pending");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_dispatch_pending
+ *(void **) (&wl_display_dispatch_pending_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_dispatch_pending");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_get_error
+ *(void **) (&wl_display_get_error_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_get_error");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_get_protocol_error
+ *(void **) (&wl_display_get_protocol_error_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_get_protocol_error");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_flush
+ *(void **) (&wl_display_flush_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_flush");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_roundtrip_queue
+ *(void **) (&wl_display_roundtrip_queue_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_roundtrip_queue");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_roundtrip
+ *(void **) (&wl_display_roundtrip_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_roundtrip");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_create_queue
+ *(void **) (&wl_display_create_queue_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_create_queue");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_prepare_read_queue
+ *(void **) (&wl_display_prepare_read_queue_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_prepare_read_queue");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_prepare_read
+ *(void **) (&wl_display_prepare_read_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_prepare_read");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_cancel_read
+ *(void **) (&wl_display_cancel_read_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_cancel_read");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_display_read_events
+ *(void **) (&wl_display_read_events_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_display_read_events");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_log_set_handler_client
+ *(void **) (&wl_log_set_handler_client_dylibloader_wrapper_wayland_client) = dlsym(handle, "wl_log_set_handler_client");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+return 0;
+}
diff --git a/platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h b/platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h
new file mode 100644
index 0000000000..86c51573a5
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h
@@ -0,0 +1,231 @@
+#ifndef DYLIBLOAD_WRAPPER_WAYLAND_CLIENT
+#define DYLIBLOAD_WRAPPER_WAYLAND_CLIENT
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ../dynload-wrapper/generate-wrapper.py 0.3 on 2023-01-25 17:36:12
+// flags: ../dynload-wrapper/generate-wrapper.py --include ./thirdparty/linuxbsd_headers/wayland/wayland-client-core.h --sys-include "./thirdparty/linuxbsd_headers/wayland/wayland-client-core.h" --soname libwayland-client.so.0 --init-name wayland_client --output-header platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.h --output-implementation platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c
+//
+// NOTE: This has been hand-patched to workaround some issues.
+#include <stdint.h>
+
+#define wl_list_init wl_list_init_dylibloader_orig_wayland_client
+#define wl_list_insert wl_list_insert_dylibloader_orig_wayland_client
+#define wl_list_remove wl_list_remove_dylibloader_orig_wayland_client
+#define wl_list_length wl_list_length_dylibloader_orig_wayland_client
+#define wl_list_empty wl_list_empty_dylibloader_orig_wayland_client
+#define wl_list_insert_list wl_list_insert_list_dylibloader_orig_wayland_client
+#define wl_array_init wl_array_init_dylibloader_orig_wayland_client
+#define wl_array_release wl_array_release_dylibloader_orig_wayland_client
+#define wl_array_add wl_array_add_dylibloader_orig_wayland_client
+#define wl_array_copy wl_array_copy_dylibloader_orig_wayland_client
+#define wl_event_queue_destroy wl_event_queue_destroy_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_flags wl_proxy_marshal_flags_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array_flags wl_proxy_marshal_array_flags_dylibloader_orig_wayland_client
+#define wl_proxy_marshal wl_proxy_marshal_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array wl_proxy_marshal_array_dylibloader_orig_wayland_client
+#define wl_proxy_create wl_proxy_create_dylibloader_orig_wayland_client
+#define wl_proxy_create_wrapper wl_proxy_create_wrapper_dylibloader_orig_wayland_client
+#define wl_proxy_wrapper_destroy wl_proxy_wrapper_destroy_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_constructor wl_proxy_marshal_constructor_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_constructor_versioned wl_proxy_marshal_constructor_versioned_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array_constructor wl_proxy_marshal_array_constructor_dylibloader_orig_wayland_client
+#define wl_proxy_marshal_array_constructor_versioned wl_proxy_marshal_array_constructor_versioned_dylibloader_orig_wayland_client
+#define wl_proxy_destroy wl_proxy_destroy_dylibloader_orig_wayland_client
+#define wl_proxy_add_listener wl_proxy_add_listener_dylibloader_orig_wayland_client
+#define wl_proxy_get_listener wl_proxy_get_listener_dylibloader_orig_wayland_client
+#define wl_proxy_add_dispatcher wl_proxy_add_dispatcher_dylibloader_orig_wayland_client
+#define wl_proxy_set_user_data wl_proxy_set_user_data_dylibloader_orig_wayland_client
+#define wl_proxy_get_user_data wl_proxy_get_user_data_dylibloader_orig_wayland_client
+#define wl_proxy_get_version wl_proxy_get_version_dylibloader_orig_wayland_client
+#define wl_proxy_get_id wl_proxy_get_id_dylibloader_orig_wayland_client
+#define wl_proxy_set_tag wl_proxy_set_tag_dylibloader_orig_wayland_client
+#define wl_proxy_get_tag wl_proxy_get_tag_dylibloader_orig_wayland_client
+#define wl_proxy_get_class wl_proxy_get_class_dylibloader_orig_wayland_client
+#define wl_proxy_set_queue wl_proxy_set_queue_dylibloader_orig_wayland_client
+#define wl_display_connect wl_display_connect_dylibloader_orig_wayland_client
+#define wl_display_connect_to_fd wl_display_connect_to_fd_dylibloader_orig_wayland_client
+#define wl_display_disconnect wl_display_disconnect_dylibloader_orig_wayland_client
+#define wl_display_get_fd wl_display_get_fd_dylibloader_orig_wayland_client
+#define wl_display_dispatch wl_display_dispatch_dylibloader_orig_wayland_client
+#define wl_display_dispatch_queue wl_display_dispatch_queue_dylibloader_orig_wayland_client
+#define wl_display_dispatch_queue_pending wl_display_dispatch_queue_pending_dylibloader_orig_wayland_client
+#define wl_display_dispatch_pending wl_display_dispatch_pending_dylibloader_orig_wayland_client
+#define wl_display_get_error wl_display_get_error_dylibloader_orig_wayland_client
+#define wl_display_get_protocol_error wl_display_get_protocol_error_dylibloader_orig_wayland_client
+#define wl_display_flush wl_display_flush_dylibloader_orig_wayland_client
+#define wl_display_roundtrip_queue wl_display_roundtrip_queue_dylibloader_orig_wayland_client
+#define wl_display_roundtrip wl_display_roundtrip_dylibloader_orig_wayland_client
+#define wl_display_create_queue wl_display_create_queue_dylibloader_orig_wayland_client
+#define wl_display_prepare_read_queue wl_display_prepare_read_queue_dylibloader_orig_wayland_client
+#define wl_display_prepare_read wl_display_prepare_read_dylibloader_orig_wayland_client
+#define wl_display_cancel_read wl_display_cancel_read_dylibloader_orig_wayland_client
+#define wl_display_read_events wl_display_read_events_dylibloader_orig_wayland_client
+#define wl_log_set_handler_client wl_log_set_handler_client_dylibloader_orig_wayland_client
+#include "./thirdparty/linuxbsd_headers/wayland/wayland-client-core.h"
+#undef wl_list_init
+#undef wl_list_insert
+#undef wl_list_remove
+#undef wl_list_length
+#undef wl_list_empty
+#undef wl_list_insert_list
+#undef wl_array_init
+#undef wl_array_release
+#undef wl_array_add
+#undef wl_array_copy
+#undef wl_event_queue_destroy
+#undef wl_proxy_marshal_flags
+#undef wl_proxy_marshal_array_flags
+#undef wl_proxy_marshal
+#undef wl_proxy_marshal_array
+#undef wl_proxy_create
+#undef wl_proxy_create_wrapper
+#undef wl_proxy_wrapper_destroy
+#undef wl_proxy_marshal_constructor
+#undef wl_proxy_marshal_constructor_versioned
+#undef wl_proxy_marshal_array_constructor
+#undef wl_proxy_marshal_array_constructor_versioned
+#undef wl_proxy_destroy
+#undef wl_proxy_add_listener
+#undef wl_proxy_get_listener
+#undef wl_proxy_add_dispatcher
+#undef wl_proxy_set_user_data
+#undef wl_proxy_get_user_data
+#undef wl_proxy_get_version
+#undef wl_proxy_get_id
+#undef wl_proxy_set_tag
+#undef wl_proxy_get_tag
+#undef wl_proxy_get_class
+#undef wl_proxy_set_queue
+#undef wl_display_connect
+#undef wl_display_connect_to_fd
+#undef wl_display_disconnect
+#undef wl_display_get_fd
+#undef wl_display_dispatch
+#undef wl_display_dispatch_queue
+#undef wl_display_dispatch_queue_pending
+#undef wl_display_dispatch_pending
+#undef wl_display_get_error
+#undef wl_display_get_protocol_error
+#undef wl_display_flush
+#undef wl_display_roundtrip_queue
+#undef wl_display_roundtrip
+#undef wl_display_create_queue
+#undef wl_display_prepare_read_queue
+#undef wl_display_prepare_read
+#undef wl_display_cancel_read
+#undef wl_display_read_events
+#undef wl_log_set_handler_client
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define wl_list_init wl_list_init_dylibloader_wrapper_wayland_client
+#define wl_list_insert wl_list_insert_dylibloader_wrapper_wayland_client
+#define wl_list_remove wl_list_remove_dylibloader_wrapper_wayland_client
+#define wl_list_length wl_list_length_dylibloader_wrapper_wayland_client
+#define wl_list_empty wl_list_empty_dylibloader_wrapper_wayland_client
+#define wl_list_insert_list wl_list_insert_list_dylibloader_wrapper_wayland_client
+#define wl_array_init wl_array_init_dylibloader_wrapper_wayland_client
+#define wl_array_release wl_array_release_dylibloader_wrapper_wayland_client
+#define wl_array_add wl_array_add_dylibloader_wrapper_wayland_client
+#define wl_array_copy wl_array_copy_dylibloader_wrapper_wayland_client
+#define wl_event_queue_destroy wl_event_queue_destroy_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_flags wl_proxy_marshal_flags_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_array_flags wl_proxy_marshal_array_flags_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal wl_proxy_marshal_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_array wl_proxy_marshal_array_dylibloader_wrapper_wayland_client
+#define wl_proxy_create wl_proxy_create_dylibloader_wrapper_wayland_client
+#define wl_proxy_create_wrapper wl_proxy_create_wrapper_dylibloader_wrapper_wayland_client
+#define wl_proxy_wrapper_destroy wl_proxy_wrapper_destroy_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_constructor wl_proxy_marshal_constructor_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_constructor_versioned wl_proxy_marshal_constructor_versioned_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_array_constructor wl_proxy_marshal_array_constructor_dylibloader_wrapper_wayland_client
+#define wl_proxy_marshal_array_constructor_versioned wl_proxy_marshal_array_constructor_versioned_dylibloader_wrapper_wayland_client
+#define wl_proxy_destroy wl_proxy_destroy_dylibloader_wrapper_wayland_client
+#define wl_proxy_add_listener wl_proxy_add_listener_dylibloader_wrapper_wayland_client
+#define wl_proxy_get_listener wl_proxy_get_listener_dylibloader_wrapper_wayland_client
+#define wl_proxy_add_dispatcher wl_proxy_add_dispatcher_dylibloader_wrapper_wayland_client
+#define wl_proxy_set_user_data wl_proxy_set_user_data_dylibloader_wrapper_wayland_client
+#define wl_proxy_get_user_data wl_proxy_get_user_data_dylibloader_wrapper_wayland_client
+#define wl_proxy_get_version wl_proxy_get_version_dylibloader_wrapper_wayland_client
+#define wl_proxy_get_id wl_proxy_get_id_dylibloader_wrapper_wayland_client
+#define wl_proxy_set_tag wl_proxy_set_tag_dylibloader_wrapper_wayland_client
+#define wl_proxy_get_tag wl_proxy_get_tag_dylibloader_wrapper_wayland_client
+#define wl_proxy_get_class wl_proxy_get_class_dylibloader_wrapper_wayland_client
+#define wl_proxy_set_queue wl_proxy_set_queue_dylibloader_wrapper_wayland_client
+#define wl_display_connect wl_display_connect_dylibloader_wrapper_wayland_client
+#define wl_display_connect_to_fd wl_display_connect_to_fd_dylibloader_wrapper_wayland_client
+#define wl_display_disconnect wl_display_disconnect_dylibloader_wrapper_wayland_client
+#define wl_display_get_fd wl_display_get_fd_dylibloader_wrapper_wayland_client
+#define wl_display_dispatch wl_display_dispatch_dylibloader_wrapper_wayland_client
+#define wl_display_dispatch_queue wl_display_dispatch_queue_dylibloader_wrapper_wayland_client
+#define wl_display_dispatch_queue_pending wl_display_dispatch_queue_pending_dylibloader_wrapper_wayland_client
+#define wl_display_dispatch_pending wl_display_dispatch_pending_dylibloader_wrapper_wayland_client
+#define wl_display_get_error wl_display_get_error_dylibloader_wrapper_wayland_client
+#define wl_display_get_protocol_error wl_display_get_protocol_error_dylibloader_wrapper_wayland_client
+#define wl_display_flush wl_display_flush_dylibloader_wrapper_wayland_client
+#define wl_display_roundtrip_queue wl_display_roundtrip_queue_dylibloader_wrapper_wayland_client
+#define wl_display_roundtrip wl_display_roundtrip_dylibloader_wrapper_wayland_client
+#define wl_display_create_queue wl_display_create_queue_dylibloader_wrapper_wayland_client
+#define wl_display_prepare_read_queue wl_display_prepare_read_queue_dylibloader_wrapper_wayland_client
+#define wl_display_prepare_read wl_display_prepare_read_dylibloader_wrapper_wayland_client
+#define wl_display_cancel_read wl_display_cancel_read_dylibloader_wrapper_wayland_client
+#define wl_display_read_events wl_display_read_events_dylibloader_wrapper_wayland_client
+#define wl_log_set_handler_client wl_log_set_handler_client_dylibloader_wrapper_wayland_client
+extern void (*wl_list_init_dylibloader_wrapper_wayland_client)(struct wl_list*);
+extern void (*wl_list_insert_dylibloader_wrapper_wayland_client)(struct wl_list*,struct wl_list*);
+extern void (*wl_list_remove_dylibloader_wrapper_wayland_client)(struct wl_list*);
+extern int (*wl_list_length_dylibloader_wrapper_wayland_client)(struct wl_list*);
+extern int (*wl_list_empty_dylibloader_wrapper_wayland_client)(struct wl_list*);
+extern void (*wl_list_insert_list_dylibloader_wrapper_wayland_client)(struct wl_list*,struct wl_list*);
+extern void (*wl_array_init_dylibloader_wrapper_wayland_client)(struct wl_array*);
+extern void (*wl_array_release_dylibloader_wrapper_wayland_client)(struct wl_array*);
+extern void* (*wl_array_add_dylibloader_wrapper_wayland_client)(struct wl_array*, size_t);
+extern int (*wl_array_copy_dylibloader_wrapper_wayland_client)(struct wl_array*,struct wl_array*);
+extern void (*wl_event_queue_destroy_dylibloader_wrapper_wayland_client)(struct wl_event_queue*);
+extern struct wl_proxy* (*wl_proxy_marshal_flags_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*, uint32_t, uint32_t,...);
+extern struct wl_proxy* (*wl_proxy_marshal_array_flags_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*, uint32_t, uint32_t,union wl_argument);
+extern void (*wl_proxy_marshal_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,...);
+extern void (*wl_proxy_marshal_array_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,union wl_argument);
+extern struct wl_proxy* (*wl_proxy_create_dylibloader_wrapper_wayland_client)(struct wl_proxy*,const struct wl_interface*);
+extern void* (*wl_proxy_create_wrapper_dylibloader_wrapper_wayland_client)( void*);
+extern void (*wl_proxy_wrapper_destroy_dylibloader_wrapper_wayland_client)( void*);
+extern struct wl_proxy* (*wl_proxy_marshal_constructor_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*,...);
+extern struct wl_proxy* (*wl_proxy_marshal_constructor_versioned_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,const struct wl_interface*, uint32_t,...);
+extern struct wl_proxy* (*wl_proxy_marshal_array_constructor_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,union wl_argument,const struct wl_interface*);
+extern struct wl_proxy* (*wl_proxy_marshal_array_constructor_versioned_dylibloader_wrapper_wayland_client)(struct wl_proxy*, uint32_t,union wl_argument,const struct wl_interface*, uint32_t);
+extern void (*wl_proxy_destroy_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern int (*wl_proxy_add_listener_dylibloader_wrapper_wayland_client)(struct wl_proxy*, void(**)(void), void*);
+extern const void* (*wl_proxy_get_listener_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern int (*wl_proxy_add_dispatcher_dylibloader_wrapper_wayland_client)(struct wl_proxy*, wl_dispatcher_func_t,const void*, void*);
+extern void (*wl_proxy_set_user_data_dylibloader_wrapper_wayland_client)(struct wl_proxy*, void*);
+extern void* (*wl_proxy_get_user_data_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern uint32_t (*wl_proxy_get_version_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern uint32_t (*wl_proxy_get_id_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern void (*wl_proxy_set_tag_dylibloader_wrapper_wayland_client)(struct wl_proxy*,const char**);
+extern const char** (*wl_proxy_get_tag_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern const char* (*wl_proxy_get_class_dylibloader_wrapper_wayland_client)(struct wl_proxy*);
+extern void (*wl_proxy_set_queue_dylibloader_wrapper_wayland_client)(struct wl_proxy*,struct wl_event_queue*);
+extern struct wl_display* (*wl_display_connect_dylibloader_wrapper_wayland_client)(const char*);
+extern struct wl_display* (*wl_display_connect_to_fd_dylibloader_wrapper_wayland_client)( int);
+extern void (*wl_display_disconnect_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_get_fd_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_dispatch_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_dispatch_queue_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+extern int (*wl_display_dispatch_queue_pending_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+extern int (*wl_display_dispatch_pending_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_get_error_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern uint32_t (*wl_display_get_protocol_error_dylibloader_wrapper_wayland_client)(struct wl_display*,const struct wl_interface**, uint32_t*);
+extern int (*wl_display_flush_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_roundtrip_queue_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+extern int (*wl_display_roundtrip_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern struct wl_event_queue* (*wl_display_create_queue_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_prepare_read_queue_dylibloader_wrapper_wayland_client)(struct wl_display*,struct wl_event_queue*);
+extern int (*wl_display_prepare_read_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern void (*wl_display_cancel_read_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern int (*wl_display_read_events_dylibloader_wrapper_wayland_client)(struct wl_display*);
+extern void (*wl_log_set_handler_client_dylibloader_wrapper_wayland_client)( wl_log_func_t);
+int initialize_wayland_client(int verbose);
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c b/platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c
new file mode 100644
index 0000000000..61ccfbf4f9
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c
@@ -0,0 +1,89 @@
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ../dynload-wrapper/generate-wrapper.py 0.3 on 2023-01-25 17:46:12
+// flags: ../dynload-wrapper/generate-wrapper.py --include ./thirdparty/linuxbsd_headers/wayland/wayland-cursor.h --sys-include "./thirdparty/linuxbsd_headers/wayland/wayland-cursor.h" --soname libwayland-cursor.so.0 --init-name wayland_cursor --output-header platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h --output-implementation platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c
+//
+#include <stdint.h>
+
+#define wl_cursor_theme_load wl_cursor_theme_load_dylibloader_orig_wayland_cursor
+#define wl_cursor_theme_destroy wl_cursor_theme_destroy_dylibloader_orig_wayland_cursor
+#define wl_cursor_theme_get_cursor wl_cursor_theme_get_cursor_dylibloader_orig_wayland_cursor
+#define wl_cursor_image_get_buffer wl_cursor_image_get_buffer_dylibloader_orig_wayland_cursor
+#define wl_cursor_frame wl_cursor_frame_dylibloader_orig_wayland_cursor
+#define wl_cursor_frame_and_duration wl_cursor_frame_and_duration_dylibloader_orig_wayland_cursor
+#include "./thirdparty/linuxbsd_headers/wayland/wayland-cursor.h"
+#undef wl_cursor_theme_load
+#undef wl_cursor_theme_destroy
+#undef wl_cursor_theme_get_cursor
+#undef wl_cursor_image_get_buffer
+#undef wl_cursor_frame
+#undef wl_cursor_frame_and_duration
+#include <dlfcn.h>
+#include <stdio.h>
+struct wl_cursor_theme* (*wl_cursor_theme_load_dylibloader_wrapper_wayland_cursor)(const char*, int,struct wl_shm*);
+void (*wl_cursor_theme_destroy_dylibloader_wrapper_wayland_cursor)(struct wl_cursor_theme*);
+struct wl_cursor* (*wl_cursor_theme_get_cursor_dylibloader_wrapper_wayland_cursor)(struct wl_cursor_theme*,const char*);
+struct wl_buffer* (*wl_cursor_image_get_buffer_dylibloader_wrapper_wayland_cursor)(struct wl_cursor_image*);
+int (*wl_cursor_frame_dylibloader_wrapper_wayland_cursor)(struct wl_cursor*, uint32_t);
+int (*wl_cursor_frame_and_duration_dylibloader_wrapper_wayland_cursor)(struct wl_cursor*, uint32_t, uint32_t*);
+int initialize_wayland_cursor(int verbose) {
+ void *handle;
+ char *error;
+ handle = dlopen("libwayland-cursor.so.0", RTLD_LAZY);
+ if (!handle) {
+ if (verbose) {
+ fprintf(stderr, "%s\n", dlerror());
+ }
+ return(1);
+ }
+ dlerror();
+// wl_cursor_theme_load
+ *(void **) (&wl_cursor_theme_load_dylibloader_wrapper_wayland_cursor) = dlsym(handle, "wl_cursor_theme_load");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_cursor_theme_destroy
+ *(void **) (&wl_cursor_theme_destroy_dylibloader_wrapper_wayland_cursor) = dlsym(handle, "wl_cursor_theme_destroy");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_cursor_theme_get_cursor
+ *(void **) (&wl_cursor_theme_get_cursor_dylibloader_wrapper_wayland_cursor) = dlsym(handle, "wl_cursor_theme_get_cursor");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_cursor_image_get_buffer
+ *(void **) (&wl_cursor_image_get_buffer_dylibloader_wrapper_wayland_cursor) = dlsym(handle, "wl_cursor_image_get_buffer");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_cursor_frame
+ *(void **) (&wl_cursor_frame_dylibloader_wrapper_wayland_cursor) = dlsym(handle, "wl_cursor_frame");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_cursor_frame_and_duration
+ *(void **) (&wl_cursor_frame_and_duration_dylibloader_wrapper_wayland_cursor) = dlsym(handle, "wl_cursor_frame_and_duration");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+return 0;
+}
diff --git a/platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h b/platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h
new file mode 100644
index 0000000000..43520e74a1
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h
@@ -0,0 +1,42 @@
+#ifndef DYLIBLOAD_WRAPPER_WAYLAND_CURSOR
+#define DYLIBLOAD_WRAPPER_WAYLAND_CURSOR
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ../dynload-wrapper/generate-wrapper.py 0.3 on 2023-01-25 17:46:12
+// flags: ../dynload-wrapper/generate-wrapper.py --include ./thirdparty/linuxbsd_headers/wayland/wayland-cursor.h --sys-include "./thirdparty/linuxbsd_headers/wayland/wayland-cursor.h" --soname libwayland-cursor.so.0 --init-name wayland_cursor --output-header platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.h --output-implementation platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c
+//
+#include <stdint.h>
+
+#define wl_cursor_theme_load wl_cursor_theme_load_dylibloader_orig_wayland_cursor
+#define wl_cursor_theme_destroy wl_cursor_theme_destroy_dylibloader_orig_wayland_cursor
+#define wl_cursor_theme_get_cursor wl_cursor_theme_get_cursor_dylibloader_orig_wayland_cursor
+#define wl_cursor_image_get_buffer wl_cursor_image_get_buffer_dylibloader_orig_wayland_cursor
+#define wl_cursor_frame wl_cursor_frame_dylibloader_orig_wayland_cursor
+#define wl_cursor_frame_and_duration wl_cursor_frame_and_duration_dylibloader_orig_wayland_cursor
+#include "./thirdparty/linuxbsd_headers/wayland/wayland-cursor.h"
+#undef wl_cursor_theme_load
+#undef wl_cursor_theme_destroy
+#undef wl_cursor_theme_get_cursor
+#undef wl_cursor_image_get_buffer
+#undef wl_cursor_frame
+#undef wl_cursor_frame_and_duration
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define wl_cursor_theme_load wl_cursor_theme_load_dylibloader_wrapper_wayland_cursor
+#define wl_cursor_theme_destroy wl_cursor_theme_destroy_dylibloader_wrapper_wayland_cursor
+#define wl_cursor_theme_get_cursor wl_cursor_theme_get_cursor_dylibloader_wrapper_wayland_cursor
+#define wl_cursor_image_get_buffer wl_cursor_image_get_buffer_dylibloader_wrapper_wayland_cursor
+#define wl_cursor_frame wl_cursor_frame_dylibloader_wrapper_wayland_cursor
+#define wl_cursor_frame_and_duration wl_cursor_frame_and_duration_dylibloader_wrapper_wayland_cursor
+extern struct wl_cursor_theme* (*wl_cursor_theme_load_dylibloader_wrapper_wayland_cursor)(const char*, int,struct wl_shm*);
+extern void (*wl_cursor_theme_destroy_dylibloader_wrapper_wayland_cursor)(struct wl_cursor_theme*);
+extern struct wl_cursor* (*wl_cursor_theme_get_cursor_dylibloader_wrapper_wayland_cursor)(struct wl_cursor_theme*,const char*);
+extern struct wl_buffer* (*wl_cursor_image_get_buffer_dylibloader_wrapper_wayland_cursor)(struct wl_cursor_image*);
+extern int (*wl_cursor_frame_dylibloader_wrapper_wayland_cursor)(struct wl_cursor*, uint32_t);
+extern int (*wl_cursor_frame_and_duration_dylibloader_wrapper_wayland_cursor)(struct wl_cursor*, uint32_t, uint32_t*);
+int initialize_wayland_cursor(int verbose);
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c b/platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c
new file mode 100644
index 0000000000..122241d241
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c
@@ -0,0 +1,67 @@
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ../dynload-wrapper/generate-wrapper.py 0.3 on 2023-01-25 17:49:37
+// flags: ../dynload-wrapper/generate-wrapper.py --include ./thirdparty/linuxbsd_headers/wayland/wayland-egl-core.h --sys-include "./thirdparty/linuxbsd_headers/wayland/wayland-egl-core.h" --soname libwayland-egl.so.1 --init-name wayland_egl --output-header platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h --output-implementation platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c
+//
+#include <stdint.h>
+
+#define wl_egl_window_create wl_egl_window_create_dylibloader_orig_wayland_egl
+#define wl_egl_window_destroy wl_egl_window_destroy_dylibloader_orig_wayland_egl
+#define wl_egl_window_resize wl_egl_window_resize_dylibloader_orig_wayland_egl
+#define wl_egl_window_get_attached_size wl_egl_window_get_attached_size_dylibloader_orig_wayland_egl
+#include "./thirdparty/linuxbsd_headers/wayland/wayland-egl-core.h"
+#undef wl_egl_window_create
+#undef wl_egl_window_destroy
+#undef wl_egl_window_resize
+#undef wl_egl_window_get_attached_size
+#include <dlfcn.h>
+#include <stdio.h>
+struct wl_egl_window* (*wl_egl_window_create_dylibloader_wrapper_wayland_egl)(struct wl_surface*, int, int);
+void (*wl_egl_window_destroy_dylibloader_wrapper_wayland_egl)(struct wl_egl_window*);
+void (*wl_egl_window_resize_dylibloader_wrapper_wayland_egl)(struct wl_egl_window*, int, int, int, int);
+void (*wl_egl_window_get_attached_size_dylibloader_wrapper_wayland_egl)(struct wl_egl_window*, int*, int*);
+int initialize_wayland_egl(int verbose) {
+ void *handle;
+ char *error;
+ handle = dlopen("libwayland-egl.so.1", RTLD_LAZY);
+ if (!handle) {
+ if (verbose) {
+ fprintf(stderr, "%s\n", dlerror());
+ }
+ return(1);
+ }
+ dlerror();
+// wl_egl_window_create
+ *(void **) (&wl_egl_window_create_dylibloader_wrapper_wayland_egl) = dlsym(handle, "wl_egl_window_create");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_egl_window_destroy
+ *(void **) (&wl_egl_window_destroy_dylibloader_wrapper_wayland_egl) = dlsym(handle, "wl_egl_window_destroy");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_egl_window_resize
+ *(void **) (&wl_egl_window_resize_dylibloader_wrapper_wayland_egl) = dlsym(handle, "wl_egl_window_resize");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+// wl_egl_window_get_attached_size
+ *(void **) (&wl_egl_window_get_attached_size_dylibloader_wrapper_wayland_egl) = dlsym(handle, "wl_egl_window_get_attached_size");
+ if (verbose) {
+ error = dlerror();
+ if (error != NULL) {
+ fprintf(stderr, "%s\n", error);
+ }
+ }
+return 0;
+}
diff --git a/platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h b/platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h
new file mode 100644
index 0000000000..c2643f973f
--- /dev/null
+++ b/platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h
@@ -0,0 +1,34 @@
+#ifndef DYLIBLOAD_WRAPPER_WAYLAND_EGL
+#define DYLIBLOAD_WRAPPER_WAYLAND_EGL
+// This file is generated. Do not edit!
+// see https://github.com/hpvb/dynload-wrapper for details
+// generated by ../dynload-wrapper/generate-wrapper.py 0.3 on 2023-01-25 17:49:37
+// flags: ../dynload-wrapper/generate-wrapper.py --include ./thirdparty/linuxbsd_headers/wayland/wayland-egl-core.h --sys-include "./thirdparty/linuxbsd_headers/wayland/wayland-egl-core.h" --soname libwayland-egl.so.1 --init-name wayland_egl --output-header platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.h --output-implementation platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c
+//
+#include <stdint.h>
+
+#define wl_egl_window_create wl_egl_window_create_dylibloader_orig_wayland_egl
+#define wl_egl_window_destroy wl_egl_window_destroy_dylibloader_orig_wayland_egl
+#define wl_egl_window_resize wl_egl_window_resize_dylibloader_orig_wayland_egl
+#define wl_egl_window_get_attached_size wl_egl_window_get_attached_size_dylibloader_orig_wayland_egl
+#include "./thirdparty/linuxbsd_headers/wayland/wayland-egl-core.h"
+#undef wl_egl_window_create
+#undef wl_egl_window_destroy
+#undef wl_egl_window_resize
+#undef wl_egl_window_get_attached_size
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define wl_egl_window_create wl_egl_window_create_dylibloader_wrapper_wayland_egl
+#define wl_egl_window_destroy wl_egl_window_destroy_dylibloader_wrapper_wayland_egl
+#define wl_egl_window_resize wl_egl_window_resize_dylibloader_wrapper_wayland_egl
+#define wl_egl_window_get_attached_size wl_egl_window_get_attached_size_dylibloader_wrapper_wayland_egl
+extern struct wl_egl_window* (*wl_egl_window_create_dylibloader_wrapper_wayland_egl)(struct wl_surface*, int, int);
+extern void (*wl_egl_window_destroy_dylibloader_wrapper_wayland_egl)(struct wl_egl_window*);
+extern void (*wl_egl_window_resize_dylibloader_wrapper_wayland_egl)(struct wl_egl_window*, int, int, int, int);
+extern void (*wl_egl_window_get_attached_size_dylibloader_wrapper_wayland_egl)(struct wl_egl_window*, int*, int*);
+int initialize_wayland_egl(int verbose);
+#ifdef __cplusplus
+}
+#endif
+#endif