1555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/*
2555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Simple DirectMedia Layer
3555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
5555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  This software is provided 'as-is', without any express or implied
6555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  warranty.  In no event will the authors be held liable for any damages
7555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  arising from the use of this software.
8555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
9555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Permission is granted to anyone to use this software for any purpose,
10555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  including commercial applications, and to alter it and redistribute it
11555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  freely, subject to the following restrictions:
12555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
13555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  1. The origin of this software must not be misrepresented; you must not
14555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     claim that you wrote the original software. If you use this software
15555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     in a product, an acknowledgment in the product documentation would be
16555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     appreciated but is not required.
17555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  2. Altered source versions must be plainly marked as such, and must not be
18555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     misrepresented as being the original software.
19555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  3. This notice may not be removed or altered from any source distribution.
20555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot*/
21555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
22555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
23555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \file SDL_syswm.h
24555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
25555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Include file for SDL custom system window manager hooks.
26555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
27555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
28555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef _SDL_syswm_h
29555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define _SDL_syswm_h
30555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
31555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_stdinc.h"
32555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_error.h"
33555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_video.h"
34555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_version.h"
35555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
36555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "begin_code.h"
37555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Set up for C function definitions, even when using C++ */
38555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
39555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern "C" {
40555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
41555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
42555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
43555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \file SDL_syswm.h
44555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
45555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Your application has access to a special type of event ::SDL_SYSWMEVENT,
46555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  which contains window-manager specific information and arrives whenever
47555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  an unhandled window event occurs.  This event is ignored by default, but
48555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  you can enable it with SDL_EventState().
49555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
50555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef SDL_PROTOTYPES_ONLY
51555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotstruct SDL_SysWMinfo;
52555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
53555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
54555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_WINDOWS)
55555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define WIN32_LEAN_AND_MEAN
56555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <windows.h>
57555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
58555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
59555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_WINRT)
60555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <Inspectable.h>
61555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
62555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
63555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* This is the structure for custom window manager events */
64555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_X11)
65555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(__APPLE__) && defined(__MACH__)
66555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* conflicts with Quickdraw.h */
67555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define Cursor X11Cursor
68555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
69555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
70555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <X11/Xlib.h>
71555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <X11/Xatom.h>
72555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
73555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(__APPLE__) && defined(__MACH__)
74555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* matches the re-define above */
75555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#undef Cursor
76555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
77555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
78555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* defined(SDL_VIDEO_DRIVER_X11) */
79555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
80555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
81555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <directfb.h>
82555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
83555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
84555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_COCOA)
85555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __OBJC__
86555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <Cocoa/Cocoa.h>
87555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
88555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct _NSWindow NSWindow;
89555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
90555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
91555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
92555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_UIKIT)
93555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __OBJC__
94555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <UIKit/UIKit.h>
95555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
96555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct _UIWindow UIWindow;
97555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct _UIViewController UIViewController;
98555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
99555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
100555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
101555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_MIR)
102555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <mir_toolkit/mir_client_library.h>
103555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
104555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
105555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
106555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
107555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  These are the various supported windowing subsystems
108555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
109555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef enum
110555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
111555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_UNKNOWN,
112555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_WINDOWS,
113555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_X11,
114555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_DIRECTFB,
115555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_COCOA,
116555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_UIKIT,
117555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_WAYLAND,
118555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_MIR,
119555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_WINRT,
120555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot} SDL_SYSWM_TYPE;
121555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
122555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
123555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The custom event structure.
124555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
125555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotstruct SDL_SysWMmsg
126555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
127555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_version version;
128555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_TYPE subsystem;
129555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    union
130555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    {
131555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_WINDOWS)
132555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct {
133555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            HWND hwnd;                  /**< The window for the message */
134555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            UINT msg;                   /**< The type of message */
135555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            WPARAM wParam;              /**< WORD message parameter */
136555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            LPARAM lParam;              /**< LONG message parameter */
137555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } win;
138555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
139555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_X11)
140555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct {
141555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            XEvent event;
142555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } x11;
143555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
144555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
145555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct {
146555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            DFBEvent event;
147555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } dfb;
148555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
149555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_COCOA)
150555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
151555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
152555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            /* No Cocoa window events yet */
153555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } cocoa;
154555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
155555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_UIKIT)
156555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
157555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
158555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            /* No UIKit window events yet */
159555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } uikit;
160555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
161555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        /* Can't have an empty union */
162555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        int dummy;
163555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    } msg;
164555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot};
165555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
166555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
167555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The custom window manager information structure.
168555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
169555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  When this structure is returned, it holds information about which
170555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  low level system it is using, and will be one of SDL_SYSWM_TYPE.
171555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
172555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotstruct SDL_SysWMinfo
173555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
174555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_version version;
175555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_SYSWM_TYPE subsystem;
176555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    union
177555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    {
178555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_WINDOWS)
179555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
180555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
181555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            HWND window;                /**< The window handle */
182555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } win;
183555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
184555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_WINRT)
185555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
186555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
187555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            IInspectable * window;      /**< The WinRT CoreWindow */
188555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } winrt;
189555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
190555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_X11)
191555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
192555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
193555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            Display *display;           /**< The X11 display */
194555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            Window window;              /**< The X11 window */
195555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } x11;
196555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
197555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
198555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
199555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
200555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            IDirectFB *dfb;             /**< The directfb main interface */
201555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            IDirectFBWindow *window;    /**< The directfb window handle */
202555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            IDirectFBSurface *surface;  /**< The directfb client surface */
203555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } dfb;
204555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
205555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_COCOA)
206555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
207555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
208555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            NSWindow *window;           /* The Cocoa window */
209555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } cocoa;
210555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
211555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_UIKIT)
212555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
213555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
214555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            UIWindow *window;           /* The UIKit window */
215555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } uikit;
216555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
217555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_WAYLAND)
218555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
219555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
220555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            struct wl_display *display;            /**< Wayland display */
221555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            struct wl_surface *surface;            /**< Wayland surface */
222555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            struct wl_shell_surface *shell_surface; /**< Wayland shell_surface (window manager handle) */
223555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } wl;
224555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
225555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(SDL_VIDEO_DRIVER_MIR)
226555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        struct
227555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        {
228555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            MirConnection *connection;  /**< Mir display server connection */
229555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot            MirSurface *surface;  /**< Mir surface */
230555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } mir;
231555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
232555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
233555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        /* Can't have an empty union */
234555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        int dummy;
235555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    } info;
236555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot};
237555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
238555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* SDL_PROTOTYPES_ONLY */
239555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
240555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct SDL_SysWMinfo SDL_SysWMinfo;
241555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
242555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Function prototypes */
243555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
244555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \brief This function allows access to driver-dependent window information.
245555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
246555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \param window The window about which information is being requested
247555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \param info This structure must be initialized with the SDL version, and is
248555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *              then filled in with information about the given window.
249555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
250555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \return SDL_TRUE if the function is implemented and the version member of
251555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *          the \c info struct is valid, SDL_FALSE otherwise.
252555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
253555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  You typically use this function like this:
254555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \code
255555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  SDL_SysWMinfo info;
256555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  SDL_VERSION(&info.version);
257555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  if ( SDL_GetWindowWMInfo(window, &info) ) { ... }
258555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \endcode
259555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
260555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window,
261555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                                     SDL_SysWMinfo * info);
262555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
263555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
264555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Ends C function definitions when using C++ */
265555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
266555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot}
267555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
268555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "close_code.h"
269555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
270555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* _SDL_syswm_h */
271555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
272555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* vi: set ts=4 sw=4 expandtab: */
273