Expand Up @@ -33,10 +33,10 @@
/**
* \name The two types of endianness
*/
/*@{*/
/* @{ */
#define SDL_LIL_ENDIAN 1234
#define SDL_BIG_ENDIAN 4321
/*@}*/
/* @} */

#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */
#ifdef __linux__
Expand Down Expand Up @@ -206,7 +206,7 @@ SDL_SwapFloat(float x)
* \name Swap to native
* Byteswap item from the specified endianness to the native endianness.
*/
/*@{*/
/* @{ */
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
#define SDL_SwapLE16(X) (X)
#define SDL_SwapLE32(X) (X)
Expand All @@ -226,7 +226,7 @@ SDL_SwapFloat(float x)
#define SDL_SwapBE64(X) (X)
#define SDL_SwapFloatBE(X) (X)
#endif
/*@}*//*Swap to native*/
/* @} *//* Swap to native */

/* Ends C function definitions when using C++ */
#ifdef __cplusplus
Expand Down
Expand Up @@ -48,7 +48,7 @@ extern DECLSPEC void SDLCALL SDL_ClearError(void);
* \internal
* Private error reporting function - used internally.
*/
/*@{*/
/* @{ */
#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM)
#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED)
#define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param))
Expand All @@ -63,7 +63,7 @@ typedef enum
} SDL_errorcode;
/* SDL_Error() unconditionally returns -1. */
extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code);
/*@}*//*Internal error functions*/
/* @} *//* Internal error functions */

/* Ends C function definitions when using C++ */
#ifdef __cplusplus
Expand Down
Expand Up @@ -541,7 +541,7 @@ typedef union SDL_Event
*/
extern DECLSPEC void SDLCALL SDL_PumpEvents(void);

/*@{*/
/* @{ */
typedef enum
{
SDL_ADDEVENT,
Expand Down Expand Up @@ -570,7 +570,7 @@ typedef enum
extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents,
SDL_eventaction action,
Uint32 minType, Uint32 maxType);
/*@}*/
/* @} */

/**
* Checks to see if certain event types are in the event queue.
Expand Down Expand Up @@ -681,7 +681,7 @@ extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter,
extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter,
void *userdata);

/*@{*/
/* @{ */
#define SDL_QUERY -1
#define SDL_IGNORE 0
#define SDL_DISABLE 0
Expand All @@ -697,7 +697,7 @@ extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter,
* current processing state of the specified event.
*/
extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state);
/*@}*/
/* @} */
#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY)

/**
Expand Down
136 changes: 136 additions & 0 deletions Externals/SDL2-2.0.1/include/SDL_filesystem.h
@@ -0,0 +1,136 @@
/*
Simple DirectMedia Layer
Copyright (C) 1997-2013 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
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/

/**
* \file SDL_filesystem.h
*
* \brief Include file for filesystem SDL API functions
*/

#ifndef _SDL_filesystem_h
#define _SDL_filesystem_h

#include "SDL_stdinc.h"

#include "begin_code.h"

/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
extern "C" {
#endif

/**
* \brief Get the path where the application resides.
*
* Get the "base path". This is the directory where the application was run
* from, which is probably the installation directory, and may or may not
* be the process's current working directory.
*
* This returns an absolute path in UTF-8 encoding, and is guaranteed to
* end with a path separator ('\\' on Windows, '/' most other places).
*
* The pointer returned by this function is owned by you. Please call
* SDL_free() on the pointer when you are done with it, or it will be a
* memory leak. This is not necessarily a fast call, though, so you should
* call this once near startup and save the string if you need it.
*
* Some platforms can't determine the application's path, and on other
* platforms, this might be meaningless. In such cases, this function will
* return NULL.
*
* \return String of base dir in UTF-8 encoding, or NULL on error.
*
* \sa SDL_GetPrefPath
*/
extern DECLSPEC char *SDLCALL SDL_GetBasePath(void);

/**
* \brief Get the user-and-app-specific path where files can be written.
*
* Get the "pref dir". This is meant to be where users can write personal
* files (preferences and save games, etc) that are specific to your
* application. This directory is unique per user, per application.
*
* This function will decide the appropriate location in the native filesystem,
* create the directory if necessary, and return a string of the absolute
* path to the directory in UTF-8 encoding.
*
* On Windows, the string might look like:
* "C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\"
*
* On Linux, the string might look like:
* "/home/bob/.local/share/My Program Name/"
*
* On Mac OS X, the string might look like:
* "/Users/bob/Library/Application Support/My Program Name/"
*
* (etc.)
*
* You specify the name of your organization (if it's not a real organization,
* your name or an Internet domain you own might do) and the name of your
* application. These should be untranslated proper names.
*
* Both the org and app strings may become part of a directory name, so
* please follow these rules:
*
* - Try to use the same org string (including case-sensitivity) for
* all your applications that use this function.
* - Always use a unique app string for each one, and make sure it never
* changes for an app once you've decided on it.
* - Unicode characters are legal, as long as it's UTF-8 encoded, but...
* - ...only use letters, numbers, and spaces. Avoid punctuation like
* "Game Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient.
*
* This returns an absolute path in UTF-8 encoding, and is guaranteed to
* end with a path separator ('\\' on Windows, '/' most other places).
*
* The pointer returned by this function is owned by you. Please call
* SDL_free() on the pointer when you are done with it, or it will be a
* memory leak. This is not necessarily a fast call, though, so you should
* call this once near startup and save the string if you need it.
*
* You should assume the path returned by this function is the only safe
* place to write files (and that SDL_GetBasePath(), while it might be
* writable, or even the parent of the returned path, aren't where you
* should be writing things).
*
* Some platforms can't determine the pref path, and on other
* platforms, this might be meaningless. In such cases, this function will
* return NULL.
*
* \param org The name of your organization.
* \param app The name of your application.
* \return UTF-8 string of user dir in platform-dependent notation. NULL
* if there's a problem (creating directory failed, etc).
*
* \sa SDL_GetBasePath
*/
extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app);

/* Ends C function definitions when using C++ */
#ifdef __cplusplus
}
#endif
#include "close_code.h"

#endif /* _SDL_system_h */

/* vi: set ts=4 sw=4 expandtab: */
File renamed without changes.
File renamed without changes.
Expand Up @@ -140,12 +140,12 @@ typedef struct _SDL_Haptic SDL_Haptic;
*
* Different haptic features a device can have.
*/
/*@{*/
/* @{ */

/**
* \name Haptic effects
*/
/*@{*/
/* @{ */

/**
* \brief Constant effect supported.
Expand Down Expand Up @@ -177,7 +177,7 @@ typedef struct _SDL_Haptic SDL_Haptic;
#define SDL_HAPTIC_LEFTRIGHT (1<<2)

/* !!! FIXME: put this back when we have more bits in 2.1 */
/*#define SDL_HAPTIC_SQUARE (1<<2)*/
/* #define SDL_HAPTIC_SQUARE (1<<2) */

/**
* \brief Triangle wave effect supported.
Expand Down Expand Up @@ -262,7 +262,7 @@ typedef struct _SDL_Haptic SDL_Haptic;
*/
#define SDL_HAPTIC_CUSTOM (1<<11)

/*@}*//*Haptic effects*/
/* @} *//* Haptic effects */

/* These last few are features the device has, not effects */

Expand Down Expand Up @@ -305,7 +305,7 @@ typedef struct _SDL_Haptic SDL_Haptic;
/**
* \name Direction encodings
*/
/*@{*/
/* @{ */

/**
* \brief Uses polar coordinates for the direction.
Expand All @@ -328,9 +328,9 @@ typedef struct _SDL_Haptic SDL_Haptic;
*/
#define SDL_HAPTIC_SPHERICAL 2

/*@}*//*Direction encodings*/
/* @} *//* Direction encodings */

/*@}*//*Haptic features*/
/* @} *//* Haptic features */

/*
* Misc defines.
Expand Down
Expand Up @@ -94,6 +94,17 @@ extern "C" {
*/
#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS"

/**
* \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations.
*
* This variable can be set to the following values:
* "0" - Thread-safety is not enabled (faster)
* "1" - Thread-safety is enabled
*
* By default the Direct3D device is created with thread-safety disabled.
*/
#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE"

/**
* \brief A variable controlling the scaling quality
*
Expand Down Expand Up @@ -257,6 +268,11 @@ extern "C" {
#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION"


/**
* \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac)
*/
#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED"


/**
* \brief An enumeration of hint priorities
Expand Down
Expand Up @@ -187,7 +187,7 @@ extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick,
/**
* \name Hat positions
*/
/*@{*/
/* @{ */
#define SDL_HAT_CENTERED 0x00
#define SDL_HAT_UP 0x01
#define SDL_HAT_RIGHT 0x02
Expand All @@ -197,7 +197,7 @@ extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick,
#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)
#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)
#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)
/*@}*/
/* @} */

/**
* Get the current state of a POV hat on a joystick.
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Expand Up @@ -94,7 +94,7 @@ extern C_LINKAGE int SDL_main(int argc, char *argv[]);
extern "C" {
#endif

/*
/**
* This is called by the real SDL main function to let the rest of the
* library know that initialization was done properly.
*
Expand Down
File renamed without changes.
File renamed without changes.
Expand Up @@ -52,9 +52,9 @@ extern "C" {
/**
* \name Mutex functions
*/
/*@{*/
/* @{ */

/* The SDL mutex structure, defined in SDL_mutex.c */
/* The SDL mutex structure, defined in SDL_sysmutex.c */
struct SDL_mutex;
typedef struct SDL_mutex SDL_mutex;

Expand Down Expand Up @@ -94,15 +94,15 @@ extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex);
*/
extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex);

/*@}*//*Mutex functions*/
/* @} *//* Mutex functions */


/**
* \name Semaphore functions
*/
/*@{*/
/* @{ */

/* The SDL semaphore structure, defined in SDL_sem.c */
/* The SDL semaphore structure, defined in SDL_syssem.c */
struct SDL_semaphore;
typedef struct SDL_semaphore SDL_sem;

Expand Down Expand Up @@ -154,15 +154,15 @@ extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem);
*/
extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem);

/*@}*//*Semaphore functions*/
/* @} *//* Semaphore functions */


/**
* \name Condition variable functions
*/
/*@{*/
/* @{ */

/* The SDL condition variable structure, defined in SDL_cond.c */
/* The SDL condition variable structure, defined in SDL_syscond.c */
struct SDL_cond;
typedef struct SDL_cond SDL_cond;

Expand Down Expand Up @@ -237,7 +237,7 @@ extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex);
extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond,
SDL_mutex * mutex, Uint32 ms);

/*@}*//*Condition variable functions*/
/* @} *//* Condition variable functions */


/* Ends C function definitions when using C++ */
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Expand Up @@ -39,10 +39,10 @@ extern "C" {
*
* These define alpha as the opacity of a surface.
*/
/*@{*/
/* @{ */
#define SDL_ALPHA_OPAQUE 255
#define SDL_ALPHA_TRANSPARENT 0
/*@}*/
/* @} */

/** Pixel type. */
enum
Expand Down
Expand Up @@ -66,7 +66,7 @@
#endif
#if defined(ANDROID)
#undef __ANDROID__
#undef __LINUX__ /*do we need to do this?*/
#undef __LINUX__ /* do we need to do this? */
#define __ANDROID__ 1
#endif

Expand Down Expand Up @@ -121,8 +121,12 @@
#define __SOLARIS__ 1
#endif
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
#undef __WINDOWS__
#define __WINDOWS__ 1
#endif
#if defined(__WINDOWS__)
#undef __WIN32__
#define __WIN32__ 1
#define __WIN32__ 1
#endif
#if defined(__PSP__)
#undef __PSP__
Expand Down
File renamed without changes.
File renamed without changes.
Expand Up @@ -44,7 +44,7 @@ extern "C" {
*
* \sa SDL_EnclosePoints
*/
typedef struct
typedef struct SDL_Point
{
int x;
int y;
Expand Down
Expand Up @@ -381,6 +381,31 @@ extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture,
const SDL_Rect * rect,
const void *pixels, int pitch);

/**
* \brief Update a rectangle within a planar YV12 or IYUV texture with new pixel data.
*
* \param texture The texture to update
* \param rect A pointer to the rectangle of pixels to update, or NULL to
* update the entire texture.
* \param Yplane The raw pixel data for the Y plane.
* \param Ypitch The number of bytes between rows of pixel data for the Y plane.
* \param Uplane The raw pixel data for the U plane.
* \param Upitch The number of bytes between rows of pixel data for the U plane.
* \param Vplane The raw pixel data for the V plane.
* \param Vpitch The number of bytes between rows of pixel data for the V plane.
*
* \return 0 on success, or -1 if the texture is not valid.
*
* \note You can use SDL_UpdateTexture() as long as your pixel data is
* a contiguous block of Y and U/V planes in the proper order, but
* this function is available if your pixel data is not contiguous.
*/
extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture,
const SDL_Rect * rect,
const Uint8 *Yplane, int Ypitch,
const Uint8 *Uplane, int Upitch,
const Uint8 *Vplane, int Vpitch);

/**
* \brief Lock a portion of the texture for write-only pixel access.
*
Expand Down
2 changes: 2 additions & 0 deletions Externals/SDL2-2.0.1/include/SDL_revision.h
@@ -0,0 +1,2 @@
#define SDL_REVISION "hg-7890:c031abe0b287"
#define SDL_REVISION_NUMBER 7890
Expand Up @@ -148,7 +148,7 @@ typedef struct SDL_RWops
*
* Functions to create SDL_RWops structures from various data streams.
*/
/*@{*/
/* @{ */

extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file,
const char *mode);
Expand All @@ -165,7 +165,7 @@ extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size);
extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem,
int size);

/*@}*//*RWFrom functions*/
/* @} *//* RWFrom functions */


extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void);
Expand All @@ -180,45 +180,45 @@ extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area);
*
* Macros to easily read and write from an SDL_RWops structure.
*/
/*@{*/
/* @{ */
#define SDL_RWsize(ctx) (ctx)->size(ctx)
#define SDL_RWseek(ctx, offset, whence) (ctx)->seek(ctx, offset, whence)
#define SDL_RWtell(ctx) (ctx)->seek(ctx, 0, RW_SEEK_CUR)
#define SDL_RWread(ctx, ptr, size, n) (ctx)->read(ctx, ptr, size, n)
#define SDL_RWwrite(ctx, ptr, size, n) (ctx)->write(ctx, ptr, size, n)
#define SDL_RWclose(ctx) (ctx)->close(ctx)
/*@}*//*Read/write macros*/
/* @} *//* Read/write macros */


/**
* \name Read endian functions
*
* Read an item of the specified endianness and return in native format.
*/
/*@{*/
/* @{ */
extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src);
extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src);
extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src);
extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src);
extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src);
extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src);
extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src);
/*@}*//*Read endian functions*/
/* @} *//* Read endian functions */

/**
* \name Write endian functions
*
* Write an item of native format to the specified endianness.
*/
/*@{*/
/* @{ */
extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value);
extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value);
extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value);
extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value);
extern DECLSPEC size_t SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value);
extern DECLSPEC size_t SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value);
extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value);
/*@}*//*Write endian functions*/
/* @} *//* Write endian functions */


/* Ends C function definitions when using C++ */
Expand Down
Expand Up @@ -49,7 +49,7 @@ typedef enum
*
* These values are from usage page 0x07 (USB keyboard page).
*/
/*@{*/
/* @{ */

SDL_SCANCODE_A = 4,
SDL_SCANCODE_B = 5,
Expand Down Expand Up @@ -339,14 +339,14 @@ typedef enum
* special KMOD_MODE for it I'm adding it here
*/

/*@}*//*Usage page 0x07*/
/* @} *//* Usage page 0x07 */

/**
* \name Usage page 0x0C
*
* These values are mapped from usage page 0x0C (USB consumer page).
*/
/*@{*/
/* @{ */

SDL_SCANCODE_AUDIONEXT = 258,
SDL_SCANCODE_AUDIOPREV = 259,
Expand All @@ -366,14 +366,14 @@ typedef enum
SDL_SCANCODE_AC_REFRESH = 273,
SDL_SCANCODE_AC_BOOKMARKS = 274,

/*@}*//*Usage page 0x0C*/
/* @} *//* Usage page 0x0C */

/**
* \name Walther keys
*
* These are values that Christian Walther added (for mac keyboard?).
*/
/*@{*/
/* @{ */

SDL_SCANCODE_BRIGHTNESSDOWN = 275,
SDL_SCANCODE_BRIGHTNESSUP = 276,
Expand All @@ -388,7 +388,7 @@ typedef enum
SDL_SCANCODE_APP1 = 283,
SDL_SCANCODE_APP2 = 284,

/*@}*//*Walther keys*/
/* @} *//* Walther keys */

/* Add any other keys here. */

Expand Down
File renamed without changes.
Expand Up @@ -89,7 +89,7 @@
* Use proper C++ casts when compiled as C++ to be compatible with the option
* -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above).
*/
/*@{*/
/* @{ */
#ifdef __cplusplus
#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
#define SDL_static_cast(type, expression) static_cast<type>(expression)
Expand All @@ -99,7 +99,7 @@
#define SDL_static_cast(type, expression) ((type)(expression))
#define SDL_const_cast(type, expression) ((type)(expression))
#endif
/*@}*//*Cast operators*/
/* @} *//* Cast operators */

/* Define a four character code as a Uint32 */
#define SDL_FOURCC(A, B, C, D) \
Expand All @@ -111,7 +111,7 @@
/**
* \name Basic data types
*/
/*@{*/
/* @{ */

typedef enum
{
Expand Down Expand Up @@ -153,7 +153,7 @@ typedef int64_t Sint64;
*/
typedef uint64_t Uint64;

/*@}*//*Basic data types*/
/* @} *//* Basic data types */


#define SDL_COMPILE_TIME_ASSERT(name, x) \
Expand Down
Expand Up @@ -48,12 +48,12 @@ extern "C" {
* \internal
* Used internally (read-only).
*/
/*@{*/
/* @{ */
#define SDL_SWSURFACE 0 /**< Just here for compatibility */
#define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */
#define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */
#define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */
/*@}*//*Surface flags*/
/* @} *//* Surface flags */

/**
* Evaluates to true if the surface needs to be locked before access.
Expand Down Expand Up @@ -357,7 +357,7 @@ extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface,
* surface.
*/
extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface
(SDL_Surface * src, SDL_PixelFormat * fmt, Uint32 flags);
(SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags);
extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat
(SDL_Surface * src, Uint32 pixel_format, Uint32 flags);

Expand Down
Expand Up @@ -29,18 +29,35 @@
#define _SDL_system_h

#include "SDL_stdinc.h"

#if defined(__IPHONEOS__) && __IPHONEOS__
#include "SDL_video.h"
#include "SDL_keyboard.h"
#endif
#include "SDL_render.h"
#include "SDL_video.h"

#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
extern "C" {
#endif


/* Platform specific functions for Windows */
#ifdef __WIN32__

/* Returns the D3D9 adapter index that matches the specified display index.
This adapter index can be passed to IDirect3D9::CreateDevice and controls
on which monitor a full screen application will appear.
*/
extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex );

/* Returns the D3D device associated with a renderer, or NULL if it's not a D3D renderer.
Once you are done using the device, you should release it to avoid a resource leak.
*/
typedef struct IDirect3DDevice9 IDirect3DDevice9;
extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer);

#endif /* __WIN32__ */


/* Platform specific functions for iOS */
#if defined(__IPHONEOS__) && __IPHONEOS__

Expand Down Expand Up @@ -93,7 +110,6 @@ extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath();

#endif /* __ANDROID__ */


/* Ends C function definitions when using C++ */
#ifdef __cplusplus
}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Expand Up @@ -108,6 +108,7 @@ typedef struct
int gl_major_version;
int gl_minor_version;
int gl_debug;
int gl_profile_mask;
} SDLTest_CommonState;

#include "begin_code.h"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Expand Up @@ -43,57 +43,57 @@ extern "C" {
#endif


//! Definitions for test case structures
/* ! Definitions for test case structures */
#define TEST_ENABLED 1
#define TEST_DISABLED 0

//! Definition of all the possible test return values of the test case method
/* ! Definition of all the possible test return values of the test case method */
#define TEST_ABORTED -1
#define TEST_STARTED 0
#define TEST_COMPLETED 1
#define TEST_SKIPPED 2

//! Definition of all the possible test results for the harness
/* ! Definition of all the possible test results for the harness */
#define TEST_RESULT_PASSED 0
#define TEST_RESULT_FAILED 1
#define TEST_RESULT_NO_ASSERT 2
#define TEST_RESULT_SKIPPED 3
#define TEST_RESULT_SETUP_FAILURE 4

//!< Function pointer to a test case setup function (run before every test)
/* !< Function pointer to a test case setup function (run before every test) */
typedef void (*SDLTest_TestCaseSetUpFp)(void *arg);

//!< Function pointer to a test case function
/* !< Function pointer to a test case function */
typedef int (*SDLTest_TestCaseFp)(void *arg);

//!< Function pointer to a test case teardown function (run after every test)
/* !< Function pointer to a test case teardown function (run after every test) */
typedef void (*SDLTest_TestCaseTearDownFp)(void *arg);

/**
* Holds information about a single test case.
*/
typedef struct SDLTest_TestCaseReference {
/*!< Func2Stress */
/* !< Func2Stress */
SDLTest_TestCaseFp testCase;
/*!< Short name (or function name) "Func2Stress" */
/* !< Short name (or function name) "Func2Stress" */
char *name;
/*!< Long name or full description "This test pushes func2() to the limit." */
/* !< Long name or full description "This test pushes func2() to the limit." */
char *description;
/*!< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */
/* !< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */
int enabled;
} SDLTest_TestCaseReference;

/**
* Holds information about a test suite (multiple test cases).
*/
typedef struct SDLTest_TestSuiteReference {
/*!< "PlatformSuite" */
/* !< "PlatformSuite" */
char *name;
/*!< The function that is run before each test. NULL skips. */
/* !< The function that is run before each test. NULL skips. */
SDLTest_TestCaseSetUpFp testSetUp;
/*!< The test cases that are run as part of the suite. Last item should be NULL. */
/* !< The test cases that are run as part of the suite. Last item should be NULL. */
const SDLTest_TestCaseReference **testCases;
/*!< The function that is run after each test. NULL skips. */
/* !< The function that is run after each test. NULL skips. */
SDLTest_TestCaseTearDownFp testTearDown;
} SDLTest_TestSuiteReference;

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Expand Up @@ -51,18 +51,20 @@ typedef unsigned long SDL_threadID;
/* Thread local storage ID, 0 is the invalid ID */
typedef unsigned int SDL_TLSID;

/* The SDL thread priority
/**
* The SDL thread priority.
*
* Note: On many systems you require special privileges to set high priority.
* \note On many systems you require special privileges to set high priority.
*/
typedef enum {
SDL_THREAD_PRIORITY_LOW,
SDL_THREAD_PRIORITY_NORMAL,
SDL_THREAD_PRIORITY_HIGH
} SDL_ThreadPriority;

/* The function passed to SDL_CreateThread()
It is passed a void* user context parameter and returns an int.
/**
* The function passed to SDL_CreateThread().
* It is passed a void* user context parameter and returns an int.
*/
typedef int (SDLCALL * SDL_ThreadFunction) (void *data);

Expand Down
Expand Up @@ -44,6 +44,17 @@ extern "C" {
*/
extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void);

/**
* \brief Compare SDL ticks values, and return true if A has passed B
*
* e.g. if you want to wait 100 ms, you could do this:
* Uint32 timeout = SDL_GetTicks() + 100;
* while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) {
* ... do work until timeout has elapsed
* }
*/
#define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0)

/**
* \brief Get the current value of the high resolution counter
*/
Expand Down
File renamed without changes.
File renamed without changes.
Expand Up @@ -59,7 +59,7 @@ typedef struct SDL_version
*/
#define SDL_MAJOR_VERSION 2
#define SDL_MINOR_VERSION 0
#define SDL_PATCHLEVEL 0
#define SDL_PATCHLEVEL 1

/**
* \brief Macro to determine SDL version program was compiled against.
Expand Down
Expand Up @@ -107,7 +107,8 @@ typedef enum
SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */
SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */
SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ),
SDL_WINDOW_FOREIGN = 0x00000800 /**< window not created by SDL */
SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */
SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000 /**< window should be created in high-DPI mode if supported */
} SDL_WindowFlags;

/**
Expand Down Expand Up @@ -186,14 +187,15 @@ typedef enum
SDL_GL_CONTEXT_EGL,
SDL_GL_CONTEXT_FLAGS,
SDL_GL_CONTEXT_PROFILE_MASK,
SDL_GL_SHARE_WITH_CURRENT_CONTEXT
SDL_GL_SHARE_WITH_CURRENT_CONTEXT,
SDL_GL_FRAMEBUFFER_SRGB_CAPABLE
} SDL_GLattr;

typedef enum
{
SDL_GL_CONTEXT_PROFILE_CORE = 0x0001,
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002,
SDL_GL_CONTEXT_PROFILE_ES = 0x0004
SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /* GLX_CONTEXT_ES2_PROFILE_BIT_EXT */
} SDL_GLprofile;

typedef enum
Expand Down Expand Up @@ -393,10 +395,11 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window);
* \param w The width of the window.
* \param h The height of the window.
* \param flags The flags for the window, a mask of any of the following:
* ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL,
* ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS,
* ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED,
* ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED.
* ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL,
* ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS,
* ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED,
* ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED,
* ::SDL_WINDOW_ALLOW_HIGHDPI.
*
* \return The id of the window created, or zero if window creation failed.
*
Expand Down Expand Up @@ -821,7 +824,7 @@ extern DECLSPEC void SDLCALL SDL_DisableScreenSaver(void);
/**
* \name OpenGL support functions
*/
/*@{*/
/* @{ */

/**
* \brief Dynamically load an OpenGL library.
Expand Down Expand Up @@ -899,6 +902,24 @@ extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void);
*/
extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void);

/**
* \brief Get the size of a window's underlying drawable (for use with glViewport).
*
* \param window Window from which the drawable size should be queried
* \param w Pointer to variable for storing the width, may be NULL
* \param h Pointer to variable for storing the height, may be NULL
*
* This may differ from SDL_GetWindowSize if we're rendering to a high-DPI
* drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a
* platform with high-DPI support (Apple calls this "Retina"), and not disabled
* by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint.
*
* \sa SDL_GetWindowSize()
* \sa SDL_CreateWindow()
*/
extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w,
int *h);

/**
* \brief Set the swap interval for the current OpenGL context.
*
Expand Down Expand Up @@ -939,7 +960,7 @@ extern DECLSPEC void SDLCALL SDL_GL_SwapWindow(SDL_Window * window);
*/
extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context);

/*@}*//*OpenGL support functions*/
/* @} *//* OpenGL support functions */


/* Ends C function definitions when using C++ */
Expand Down
Expand Up @@ -33,15 +33,17 @@
#endif
#define _begin_code_h

/* Some compilers use a special export keyword */
#ifndef DECLSPEC
# if defined(__BEOS__) || defined(__HAIKU__)
# if defined(__GNUC__)
# define DECLSPEC __declspec(dllexport)
#ifndef SDL_DEPRECATED
# if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */
# define SDL_DEPRECATED __attribute__((deprecated))
# else
# define DECLSPEC __declspec(export)
# define SDL_DEPRECATED
# endif
# elif defined(__WIN32__)
#endif

/* Some compilers use a special export keyword */
#ifndef DECLSPEC
# if defined(__WIN32__)
# ifdef __BORLANDC__
# ifdef BUILD_SDL
# define DECLSPEC
Expand All @@ -54,6 +56,8 @@
# else
# if defined(__GNUC__) && __GNUC__ >= 4
# define DECLSPEC __attribute__ ((visibility("default")))
# elif defined(__GNUC__) && __GNUC__ >= 2
# define DECLSPEC __declspec(dllexport)
# else
# define DECLSPEC
# endif
Expand Down Expand Up @@ -95,48 +99,34 @@
#endif
#endif /* Compiler needs structure packing set */

/* Set up compiler-specific options for inlining functions */
#ifndef SDL_INLINE_OKAY
#ifdef __GNUC__
#define SDL_INLINE_OKAY
#else
/* Add any special compiler-specific cases here */
#if defined(_MSC_VER) || defined(__BORLANDC__) || \
defined(__DMC__) || defined(__SC__) || \
defined(__WATCOMC__) || defined(__LCC__) || \
defined(__DECC)
#ifndef SDL_INLINE
#if defined(__GNUC__)
#define SDL_INLINE __inline__
#elif defined(_MSC_VER) || defined(__BORLANDC__) || \
defined(__DMC__) || defined(__SC__) || \
defined(__WATCOMC__) || defined(__LCC__) || \
defined(__DECC)
#define SDL_INLINE __inline
#ifndef __inline__
#define __inline__ __inline
#define __inline__ __inline
#endif
#define SDL_INLINE_OKAY
#else
#if !defined(__MRC__) && !defined(_SGI_SOURCE)
#define SDL_INLINE inline
#ifndef __inline__
#define __inline__ inline
#endif
#define SDL_INLINE_OKAY
#endif /* Not a funky compiler */
#endif /* Visual C++ */
#endif /* GNU C */
#endif /* SDL_INLINE_OKAY */

/* If inlining isn't supported, remove "__inline__", turning static
inlined functions into static functions (resulting in code bloat
in all files which include the offending header files)
*/
#ifndef SDL_INLINE_OKAY
#define __inline__
#endif
#endif /* SDL_INLINE not defined */

#ifndef SDL_FORCE_INLINE
#if defined(_MSC_VER)
#define SDL_FORCE_INLINE __forceinline
#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
#define SDL_FORCE_INLINE __attribute__((always_inline)) static inline
#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
#else
#define SDL_FORCE_INLINE static __inline__
#endif
#define SDL_FORCE_INLINE static SDL_INLINE
#endif
#endif /* SDL_FORCE_INLINE not defined */

/* Apparently this is needed by several Windows compilers */
#if !defined(__MACH__)
Expand Down
File renamed without changes.
Binary file not shown.
Binary file added Externals/SDL2-2.0.1/lib/Win32/SDL2.lib
Binary file not shown.
Binary file not shown.
Binary file added Externals/SDL2-2.0.1/lib/x64/SDL2.lib
Binary file not shown.
4 changes: 2 additions & 2 deletions Source/Core/DolphinWX/DolphinWX.vcxproj
Expand Up @@ -48,7 +48,7 @@
<BaseAddress>0x00400000</BaseAddress>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<FixedBaseAddress>true</FixedBaseAddress>
<AdditionalLibraryDirectories>..\..\..\Externals\SDL2-2.0.0\lib\$(PlatformName);..\..\..\Externals\OpenAL\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>..\..\..\Externals\SDL2-2.0.1\lib\$(PlatformName);..\..\..\Externals\OpenAL\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>dsound.lib;iphlpapi.lib;winmm.lib;setupapi.lib;vfw32.lib;opengl32.lib;glu32.lib;rpcrt4.lib;comctl32.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<ResourceCompile>
Expand Down Expand Up @@ -229,7 +229,7 @@
<!--Copy Exe, Data directory and DLLs which should be located in the executable directory-->
<ItemGroup>
<DataDirFiles Include="$(SolutionDir)..\Data\**\*.*" />
<ExternalDlls Include="$(ExternalsDir)OpenAL\$(PlatformName)\*.dll;$(ExternalsDir)SDL2-2.0.0\lib\$(PlatformName)\*.dll;$(ExternalsDir)msvcrt\$(PlatformName)\*.dll" />
<ExternalDlls Include="$(ExternalsDir)OpenAL\$(PlatformName)\*.dll;$(ExternalsDir)SDL2-2.0.1\lib\$(PlatformName)\*.dll;$(ExternalsDir)msvcrt\$(PlatformName)\*.dll" />
<BinaryFiles Include="$(TargetPath)" />
<AllInputFiles Include="@(DataDirFiles);@(ExternalDlls);@(BinaryFiles)" />
</ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion Source/VSProps/Base.props
Expand Up @@ -49,7 +49,7 @@
<AdditionalIncludeDirectories>$(ExternalsDir)miniupnpc\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)polarssl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)portaudio\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)SDL2-2.0.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)SDL2-2.0.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)SFML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)SOIL;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)wxWidgets3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
Expand Down