/*
Simple DirectMedia Layer
- Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
+ Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
#else
#if defined(SDL_VIDEO_DRIVER_WINDOWS)
+#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
+#endif
#include <windows.h>
#endif
#if defined(SDL_VIDEO_DRIVER_COCOA)
#ifdef __OBJC__
-#include <Cocoa/Cocoa.h>
+@class NSWindow;
#else
typedef struct _NSWindow NSWindow;
#endif
typedef struct _UIWindow UIWindow;
typedef struct _UIViewController UIViewController;
#endif
+typedef Uint32 GLuint;
#endif
-#if defined(SDL_VIDEO_DRIVER_MIR)
-#include <mir_toolkit/mir_client_library.h>
+#if defined(SDL_VIDEO_DRIVER_ANDROID)
+typedef struct ANativeWindow ANativeWindow;
+typedef void *EGLSurface;
#endif
-
/**
* These are the various supported windowing subsystems
*/
SDL_SYSWM_WAYLAND,
SDL_SYSWM_MIR,
SDL_SYSWM_WINRT,
+ SDL_SYSWM_ANDROID
} SDL_SYSWM_TYPE;
/**
#if defined(SDL_VIDEO_DRIVER_COCOA)
struct
{
+ /* Latest version of Xcode clang complains about empty structs in C v. C++:
+ error: empty struct has size 0 in C, size 1 in C++
+ */
+ int dummy;
/* No Cocoa window events yet */
} cocoa;
#endif
#if defined(SDL_VIDEO_DRIVER_UIKIT)
struct
{
+ int dummy;
/* No UIKit window events yet */
} uikit;
#endif
struct
{
HWND window; /**< The window handle */
+ HDC hdc; /**< The window device context */
} win;
#endif
#if defined(SDL_VIDEO_DRIVER_WINRT)
#if defined(SDL_VIDEO_DRIVER_COCOA)
struct
{
- NSWindow *window; /* The Cocoa window */
+#if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc)
+ NSWindow __unsafe_unretained *window; /* The Cocoa window */
+#else
+ NSWindow *window; /* The Cocoa window */
+#endif
} cocoa;
#endif
#if defined(SDL_VIDEO_DRIVER_UIKIT)
struct
{
- UIWindow *window; /* The UIKit window */
+#if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc)
+ UIWindow __unsafe_unretained *window; /* The UIKit window */
+#else
+ UIWindow *window; /* The UIKit window */
+#endif
+ GLuint framebuffer; /* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */
+ GLuint colorbuffer; /* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */
+ GLuint resolveFramebuffer; /* The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */
} uikit;
#endif
#if defined(SDL_VIDEO_DRIVER_WAYLAND)
#if defined(SDL_VIDEO_DRIVER_MIR)
struct
{
- MirConnection *connection; /**< Mir display server connection */
- MirSurface *surface; /**< Mir surface */
+ struct MirConnection *connection; /**< Mir display server connection */
+ struct MirSurface *surface; /**< Mir surface */
} mir;
#endif
+#if defined(SDL_VIDEO_DRIVER_ANDROID)
+ struct
+ {
+ ANativeWindow *window;
+ EGLSurface surface;
+ } android;
+#endif
+
/* Can't have an empty union */
int dummy;
} info;