diff options
author | Peter Kim <pk15950@gmail.com> | 2022-09-08 07:00:12 +0300 |
---|---|---|
committer | Peter Kim <pk15950@gmail.com> | 2022-09-08 07:00:12 +0300 |
commit | 00dcfdf916c69672210b006e62d966f1bc2fbeb7 (patch) | |
tree | 0cbb1b91fe26c750197126085b74224a795a103c /intern/wayland_dynload/extern/wayland_dynload_egl.h | |
parent | a39532670f6b668da7be5810fb1f844b82feeba3 (diff) | |
parent | d5934974219135102f364f57c45a8b1465e2b8d9 (diff) |
Merge branch 'master' into xr-devxr-dev
Diffstat (limited to 'intern/wayland_dynload/extern/wayland_dynload_egl.h')
-rw-r--r-- | intern/wayland_dynload/extern/wayland_dynload_egl.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/intern/wayland_dynload/extern/wayland_dynload_egl.h b/intern/wayland_dynload/extern/wayland_dynload_egl.h new file mode 100644 index 00000000000..3829ac83301 --- /dev/null +++ b/intern/wayland_dynload/extern/wayland_dynload_egl.h @@ -0,0 +1,68 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/** \file + * \ingroup intern_wayland_dynload + * + * Wrapper functions for `<wayland-egl.h>`. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef WAYLAND_DYNLOAD_FN +WAYLAND_DYNLOAD_FN(wl_egl_window_create) +WAYLAND_DYNLOAD_FN(wl_egl_window_destroy) +WAYLAND_DYNLOAD_FN(wl_egl_window_resize) +WAYLAND_DYNLOAD_FN(wl_egl_window_get_attached_size) +#elif defined(WAYLAND_DYNLOAD_IFACE) +/* No interfaces. */ +#else + +/* Header guard. */ +# if !defined(__WAYLAND_DYNLOAD_EGL_H__) && !defined(WAYLAND_DYNLOAD_VALIDATE) +# define __WAYLAND_DYNLOAD_EGL_H__ + +# include <wayland-egl-core.h> +extern struct WaylandDynload_EGL wayland_dynload_egl; + +/* Support validating declarations against the header. */ +# ifndef WAYLAND_DYNLOAD_VALIDATE +# define WL_DYN_FN(a) (*a) +# else +# define WL_DYN_FN(a) (a) +# endif + +# ifndef WAYLAND_DYNLOAD_VALIDATE +struct WaylandDynload_EGL { +# endif + + struct wl_egl_window *WL_DYN_FN(wl_egl_window_create)(struct wl_surface *surface, + int width, + int height); + void WL_DYN_FN(wl_egl_window_destroy)(struct wl_egl_window *egl_window); + void WL_DYN_FN(wl_egl_window_resize)( + struct wl_egl_window *egl_window, int width, int height, int dx, int dy); + void WL_DYN_FN(wl_egl_window_get_attached_size)(struct wl_egl_window *egl_window, + int *width, + int *height); + +# ifndef WAYLAND_DYNLOAD_VALIDATE +}; +# endif +# undef WL_DYN_FN + +# ifndef WAYLAND_DYNLOAD_VALIDATE +# define wl_egl_window_create(...) (*wayland_dynload_egl.wl_egl_window_create)(__VA_ARGS__) +# define wl_egl_window_destroy(...) (*wayland_dynload_egl.wl_egl_window_destroy)(__VA_ARGS__) +# define wl_egl_window_resize(...) (*wayland_dynload_egl.wl_egl_window_resize)(__VA_ARGS__) +# define wl_egl_window_get_attached_size(...) \ + (*wayland_dynload_egl.wl_egl_window_get_attached_size)(__VA_ARGS__) + +# endif /* !WAYLAND_DYNLOAD_VALIDATE */ +# endif /* !defined(WAYLAND_DYNLOAD_FN) && !defined(WAYLAND_DYNLOAD_IFACE) */ +#endif /* !defined(__WAYLAND_DYNLOAD_EGL_H__) && !defined(WAYLAND_DYNLOAD_VALIDATE) */ + +#ifdef __cplusplus +} +#endif |