48#if !defined(SDL_DISABLE_SYSWM_PLATFORMS)
50#ifndef SDL_DISABLE_SYSWM_ANDROID
52#define SDL_ENABLE_SYSWM_ANDROID
56#ifndef SDL_DISABLE_SYSWM_COCOA
58#define SDL_ENABLE_SYSWM_COCOA
62#ifndef SDL_DISABLE_SYSWM_HAIKU
64#define SDL_ENABLE_SYSWM_HAIKU
68#ifndef SDL_DISABLE_SYSWM_KMSDRM
69#if defined(__LINUX__) || defined(__FREEBSD__) || defined(__OPENBSD__)
70#define SDL_ENABLE_SYSWM_KMSDRM
74#ifndef SDL_DISABLE_SYSWM_RISCOS
76#define SDL_ENABLE_SYSWM_RISCOS
80#ifndef SDL_DISABLE_SYSWM_UIKIT
81#if defined(__IOS__) || defined(__TVOS__)
82#define SDL_ENABLE_SYSWM_UIKIT
86#ifndef SDL_DISABLE_SYSWM_VIVANTE
90#ifndef SDL_DISABLE_SYSWM_WAYLAND
91#if defined(__LINUX__) || defined(__FREEBSD__)
92#define SDL_ENABLE_SYSWM_WAYLAND
96#ifndef SDL_DISABLE_SYSWM_WINDOWS
98#define SDL_ENABLE_SYSWM_WINDOWS
102#ifndef SDL_DISABLE_SYSWM_WINRT
104#define SDL_ENABLE_SYSWM_WINRT
108#ifndef SDL_DISABLE_SYSWM_X11
109#if defined(__unix__) && !defined(__WIN32__) && !defined(__ANDROID__)
110#define SDL_ENABLE_SYSWM_X11
119#ifndef SDL_DISABLE_SYSWM_TYPES
121#if defined(SDL_ENABLE_SYSWM_ANDROID) && !defined(SDL_DISABLE_SYSWM_ANDROID_TYPES)
122typedef struct ANativeWindow ANativeWindow;
123typedef void *EGLSurface;
126#if defined(SDL_ENABLE_SYSWM_COCOA) && !defined(SDL_DISABLE_SYSWM_COCOA_TYPES)
130typedef struct _NSWindow NSWindow;
134#if defined(SDL_ENABLE_SYSWM_KMSDRM) && !defined(SDL_DISABLE_SYSWM_KMSDRM_TYPES)
138#if defined(SDL_ENABLE_SYSWM_UIKIT) && !defined(SDL_DISABLE_SYSWM_UIKIT_TYPES)
140#include <UIKit/UIKit.h>
142typedef struct _UIWindow UIWindow;
143typedef struct _UIViewController UIViewController;
148#if defined(SDL_ENABLE_SYSWM_VIVANTE) && !defined(SDL_DISABLE_SYSWM_VIVANTE_TYPES)
152#if defined(SDL_ENABLE_SYSWM_WAYLAND) && !defined(SDL_DISABLE_SYSWM_WAYLAND_TYPES)
157struct xdg_positioner;
162#if defined(SDL_ENABLE_SYSWM_WINDOWS) && !defined(SDL_DISABLE_SYSWM_WINDOWS_TYPES)
163#ifndef WIN32_LEAN_AND_MEAN
164#define WIN32_LEAN_AND_MEAN
172#if defined(SDL_ENABLE_SYSWM_WINRT) && !defined(SDL_DISABLE_SYSWM_WINRT_TYPES)
173#include <Inspectable.h>
176#if defined(SDL_ENABLE_SYSWM_X11) && !defined(SDL_DISABLE_SYSWM_X11_TYPES)
178#include <X11/Xatom.h>
191#define SDL_SYSWM_CURRENT_VERSION 1
192#define SDL_SYSWM_INFO_SIZE_V1 (16 * (sizeof (void *) >= 8 ? sizeof (void *) : sizeof(Uint64)))
193#define SDL_SYSWM_CURRENT_INFO_SIZE SDL_SYSWM_INFO_SIZE_V1
196#define SDL_METALVIEW_TAG 255
230#if defined(SDL_ENABLE_SYSWM_WINDOWS)
238#if defined(SDL_ENABLE_SYSWM_X11)
263#if defined(SDL_ENABLE_SYSWM_WINDOWS)
271#if defined(SDL_ENABLE_SYSWM_WINRT)
274 IInspectable * window;
277#if defined(SDL_ENABLE_SYSWM_X11)
285#if defined(SDL_ENABLE_SYSWM_COCOA)
288#if defined(__OBJC__) && defined(__has_feature)
289 #if __has_feature(objc_arc)
290 NSWindow __unsafe_unretained *window;
299#if defined(SDL_ENABLE_SYSWM_UIKIT)
302#if defined(__OBJC__) && defined(__has_feature)
303 #if __has_feature(objc_arc)
304 UIWindow __unsafe_unretained *window;
313 GLuint resolveFramebuffer;
316#if defined(SDL_ENABLE_SYSWM_WAYLAND)
319 struct wl_display *display;
320 struct wl_surface *surface;
321 struct wl_egl_window *egl_window;
322 struct xdg_surface *xdg_surface;
323 struct xdg_toplevel *xdg_toplevel;
324 struct xdg_popup *xdg_popup;
325 struct xdg_positioner *xdg_positioner;
329#if defined(SDL_ENABLE_SYSWM_ANDROID)
332 ANativeWindow *window;
337#if defined(SDL_ENABLE_SYSWM_VIVANTE)
340 EGLNativeDisplayType display;
341 EGLNativeWindowType window;
345#if defined(SDL_ENABLE_SYSWM_KMSDRM)
350 struct gbm_device *gbm_dev;
#define SDL_SYSWM_CURRENT_INFO_SIZE
SDL_COMPILE_TIME_ASSERT(SDL_SysWMinfo_size, sizeof(struct SDL_SysWMinfo)==SDL_SYSWM_CURRENT_INFO_SIZE)
int SDL_GetWindowWMInfo(SDL_Window *window, SDL_SysWMinfo *info, Uint32 version)
struct SDL_Window SDL_Window
The type used to identify a window.
Uint32 padding[(2 *(sizeof(void *) >=8 ? sizeof(void *) :sizeof(Uint64)) - 2 *sizeof(Uint32))/sizeof(Uint32)]
union SDL_SysWMinfo::@7 info
union SDL_SysWMmsg::@6 msg
Uint32 padding[(2 *(sizeof(void *) >=8 ? sizeof(void *) :sizeof(Uint64)) - 2 *sizeof(Uint32))/sizeof(Uint32)]