Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/sdlew/src/sdlew.c')
-rw-r--r--extern/sdlew/src/sdlew.c1095
1 files changed, 1095 insertions, 0 deletions
diff --git a/extern/sdlew/src/sdlew.c b/extern/sdlew/src/sdlew.c
new file mode 100644
index 00000000000..6444e6b6081
--- /dev/null
+++ b/extern/sdlew/src/sdlew.c
@@ -0,0 +1,1095 @@
+/*
+ * Copyright 2014 Blender Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+#ifdef _MSC_VER
+# define snprintf _snprintf
+# define popen _popen
+# define pclose _pclose
+# define _CRT_SECURE_NO_WARNINGS
+#endif
+
+#include "sdlew.h"
+
+#include "SDL2/SDL.h"
+#include "SDL2/SDL_syswm.h"
+
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#ifdef _WIN32
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# include <windows.h>
+
+/* Utility macros. */
+
+typedef HMODULE DynamicLibrary;
+
+# define dynamic_library_open(path) LoadLibrary(path)
+# define dynamic_library_close(lib) FreeLibrary(lib)
+# define dynamic_library_find(lib, symbol) GetProcAddress(lib, symbol)
+#else
+# include <dlfcn.h>
+
+typedef void* DynamicLibrary;
+
+# define dynamic_library_open(path) dlopen(path, RTLD_NOW)
+# define dynamic_library_close(lib) dlclose(lib)
+# define dynamic_library_find(lib, symbol) dlsym(lib, symbol)
+#endif
+
+#define SDL_LIBRARY_FIND_CHECKED(name) name = (t##name *)dynamic_library_find(lib, #name); assert(name);
+
+#define SDL_LIBRARY_FIND(name) name = (t##name *)dynamic_library_find(lib, #name);
+
+static DynamicLibrary lib;
+
+tSDL_GetPlatform *SDL_GetPlatform;
+tSDL_memcpy *SDL_memcpy;
+#ifndef HAVE_ALLOCA
+tSDL_malloc *SDL_malloc;
+#endif
+tSDL_calloc *SDL_calloc;
+tSDL_realloc *SDL_realloc;
+tSDL_free *SDL_free;
+tSDL_getenv *SDL_getenv;
+tSDL_setenv *SDL_setenv;
+tSDL_qsort *SDL_qsort;
+tSDL_abs *SDL_abs;
+tSDL_isdigit *SDL_isdigit;
+tSDL_isspace *SDL_isspace;
+tSDL_toupper *SDL_toupper;
+tSDL_tolower *SDL_tolower;
+tSDL_memset *SDL_memset;
+tSDL_memmove *SDL_memmove;
+tSDL_memcmp *SDL_memcmp;
+tSDL_wcslen *SDL_wcslen;
+tSDL_wcslcpy *SDL_wcslcpy;
+tSDL_wcslcat *SDL_wcslcat;
+tSDL_strlen *SDL_strlen;
+tSDL_strlcpy *SDL_strlcpy;
+tSDL_utf8strlcpy *SDL_utf8strlcpy;
+tSDL_strlcat *SDL_strlcat;
+tSDL_strdup *SDL_strdup;
+tSDL_strrev *SDL_strrev;
+tSDL_strupr *SDL_strupr;
+tSDL_strlwr *SDL_strlwr;
+tSDL_strchr *SDL_strchr;
+tSDL_strrchr *SDL_strrchr;
+tSDL_strstr *SDL_strstr;
+tSDL_itoa *SDL_itoa;
+tSDL_uitoa *SDL_uitoa;
+tSDL_ltoa *SDL_ltoa;
+tSDL_ultoa *SDL_ultoa;
+tSDL_lltoa *SDL_lltoa;
+tSDL_ulltoa *SDL_ulltoa;
+tSDL_atoi *SDL_atoi;
+tSDL_atof *SDL_atof;
+tSDL_strtol *SDL_strtol;
+tSDL_strtoll *SDL_strtoll;
+tSDL_strtoull *SDL_strtoull;
+tSDL_strtod *SDL_strtod;
+tSDL_strcmp *SDL_strcmp;
+tSDL_strncmp *SDL_strncmp;
+tSDL_strcasecmp *SDL_strcasecmp;
+tSDL_strncasecmp *SDL_strncasecmp;
+tSDL_sscanf *SDL_sscanf;
+tSDL_snprintf *SDL_snprintf;
+tSDL_vsnprintf *SDL_vsnprintf;
+tSDL_atan *SDL_atan;
+tSDL_atan2 *SDL_atan2;
+tSDL_ceil *SDL_ceil;
+tSDL_copysign *SDL_copysign;
+tSDL_cos *SDL_cos;
+tSDL_cosf *SDL_cosf;
+tSDL_fabs *SDL_fabs;
+tSDL_floor *SDL_floor;
+tSDL_log *SDL_log;
+tSDL_pow *SDL_pow;
+tSDL_scalbn *SDL_scalbn;
+tSDL_sin *SDL_sin;
+tSDL_sinf *SDL_sinf;
+tSDL_sqrt *SDL_sqrt;
+tSDL_iconv_open *SDL_iconv_open;
+tSDL_iconv_close *SDL_iconv_close;
+tSDL_iconv *SDL_iconv;
+tSDL_iconv_string *SDL_iconv_string;
+tSDL_GetNumRenderDrivers *SDL_GetNumRenderDrivers;
+tSDL_GetRenderDriverInfo *SDL_GetRenderDriverInfo;
+tSDL_CreateWindowAndRenderer *SDL_CreateWindowAndRenderer;
+tSDL_CreateRenderer *SDL_CreateRenderer;
+tSDL_CreateSoftwareRenderer *SDL_CreateSoftwareRenderer;
+tSDL_GetRenderer *SDL_GetRenderer;
+tSDL_GetRendererInfo *SDL_GetRendererInfo;
+tSDL_GetRendererOutputSize *SDL_GetRendererOutputSize;
+tSDL_CreateTexture *SDL_CreateTexture;
+tSDL_CreateTextureFromSurface *SDL_CreateTextureFromSurface;
+tSDL_QueryTexture *SDL_QueryTexture;
+tSDL_SetTextureColorMod *SDL_SetTextureColorMod;
+tSDL_GetTextureColorMod *SDL_GetTextureColorMod;
+tSDL_SetTextureAlphaMod *SDL_SetTextureAlphaMod;
+tSDL_GetTextureAlphaMod *SDL_GetTextureAlphaMod;
+tSDL_SetTextureBlendMode *SDL_SetTextureBlendMode;
+tSDL_GetTextureBlendMode *SDL_GetTextureBlendMode;
+tSDL_UpdateTexture *SDL_UpdateTexture;
+tSDL_LockTexture *SDL_LockTexture;
+tSDL_UnlockTexture *SDL_UnlockTexture;
+tSDL_RenderTargetSupported *SDL_RenderTargetSupported;
+tSDL_SetRenderTarget *SDL_SetRenderTarget;
+tSDL_GetRenderTarget *SDL_GetRenderTarget;
+tSDL_RenderSetLogicalSize *SDL_RenderSetLogicalSize;
+tSDL_RenderGetLogicalSize *SDL_RenderGetLogicalSize;
+tSDL_RenderSetViewport *SDL_RenderSetViewport;
+tSDL_RenderGetViewport *SDL_RenderGetViewport;
+tSDL_RenderSetClipRect *SDL_RenderSetClipRect;
+tSDL_RenderGetClipRect *SDL_RenderGetClipRect;
+tSDL_RenderSetScale *SDL_RenderSetScale;
+tSDL_RenderGetScale *SDL_RenderGetScale;
+tSDL_SetRenderDrawBlendMode *SDL_SetRenderDrawBlendMode;
+tSDL_GetRenderDrawBlendMode *SDL_GetRenderDrawBlendMode;
+tSDL_RenderClear *SDL_RenderClear;
+tSDL_RenderDrawPoint *SDL_RenderDrawPoint;
+tSDL_RenderDrawPoints *SDL_RenderDrawPoints;
+tSDL_RenderDrawLine *SDL_RenderDrawLine;
+tSDL_RenderDrawLines *SDL_RenderDrawLines;
+tSDL_RenderDrawRect *SDL_RenderDrawRect;
+tSDL_RenderDrawRects *SDL_RenderDrawRects;
+tSDL_RenderFillRect *SDL_RenderFillRect;
+tSDL_RenderFillRects *SDL_RenderFillRects;
+tSDL_RenderCopy *SDL_RenderCopy;
+tSDL_RenderCopyEx *SDL_RenderCopyEx;
+tSDL_RenderReadPixels *SDL_RenderReadPixels;
+tSDL_RenderPresent *SDL_RenderPresent;
+tSDL_DestroyTexture *SDL_DestroyTexture;
+tSDL_DestroyRenderer *SDL_DestroyRenderer;
+tSDL_GL_BindTexture *SDL_GL_BindTexture;
+tSDL_GL_UnbindTexture *SDL_GL_UnbindTexture;
+tSDL_LoadObject *SDL_LoadObject;
+tSDL_LoadFunction *SDL_LoadFunction;
+tSDL_UnloadObject *SDL_UnloadObject;
+tSDL_ReportAssertion *SDL_ReportAssertion;
+tSDL_SetAssertionHandler *SDL_SetAssertionHandler;
+tSDL_GetAssertionReport *SDL_GetAssertionReport;
+tSDL_ResetAssertionReport *SDL_ResetAssertionReport;
+tSDL_AtomicTryLock *SDL_AtomicTryLock;
+tSDL_AtomicLock *SDL_AtomicLock;
+tSDL_AtomicUnlock *SDL_AtomicUnlock;
+tSDL_HasIntersection *SDL_HasIntersection;
+tSDL_IntersectRect *SDL_IntersectRect;
+tSDL_UnionRect *SDL_UnionRect;
+tSDL_EnclosePoints *SDL_EnclosePoints;
+tSDL_IntersectRectAndLine *SDL_IntersectRectAndLine;
+tSDL_LogSetAllPriority *SDL_LogSetAllPriority;
+tSDL_LogSetPriority *SDL_LogSetPriority;
+tSDL_LogGetPriority *SDL_LogGetPriority;
+tSDL_LogResetPriorities *SDL_LogResetPriorities;
+tSDL_Log *SDL_Log;
+tSDL_LogVerbose *SDL_LogVerbose;
+tSDL_LogDebug *SDL_LogDebug;
+tSDL_LogInfo *SDL_LogInfo;
+tSDL_LogWarn *SDL_LogWarn;
+tSDL_LogError *SDL_LogError;
+tSDL_LogCritical *SDL_LogCritical;
+tSDL_LogMessage *SDL_LogMessage;
+tSDL_LogMessageV *SDL_LogMessageV;
+tSDL_LogGetOutputFunction *SDL_LogGetOutputFunction;
+tSDL_LogSetOutputFunction *SDL_LogSetOutputFunction;
+tSDL_CreateMutex *SDL_CreateMutex;
+tSDL_LockMutex *SDL_LockMutex;
+tSDL_TryLockMutex *SDL_TryLockMutex;
+tSDL_UnlockMutex *SDL_UnlockMutex;
+tSDL_DestroyMutex *SDL_DestroyMutex;
+tSDL_CreateSemaphore *SDL_CreateSemaphore;
+tSDL_DestroySemaphore *SDL_DestroySemaphore;
+tSDL_SemWait *SDL_SemWait;
+tSDL_SemTryWait *SDL_SemTryWait;
+tSDL_SemWaitTimeout *SDL_SemWaitTimeout;
+tSDL_SemPost *SDL_SemPost;
+tSDL_SemValue *SDL_SemValue;
+tSDL_CreateCond *SDL_CreateCond;
+tSDL_DestroyCond *SDL_DestroyCond;
+tSDL_CondSignal *SDL_CondSignal;
+tSDL_CondBroadcast *SDL_CondBroadcast;
+tSDL_CondWait *SDL_CondWait;
+tSDL_CondWaitTimeout *SDL_CondWaitTimeout;
+tSDL_CreateRGBSurface *SDL_CreateRGBSurface;
+tSDL_CreateRGBSurfaceFrom *SDL_CreateRGBSurfaceFrom;
+tSDL_FreeSurface *SDL_FreeSurface;
+tSDL_SetSurfacePalette *SDL_SetSurfacePalette;
+tSDL_LockSurface *SDL_LockSurface;
+tSDL_UnlockSurface *SDL_UnlockSurface;
+tSDL_LoadBMP_RW *SDL_LoadBMP_RW;
+tSDL_SaveBMP_RW *SDL_SaveBMP_RW;
+tSDL_SetSurfaceRLE *SDL_SetSurfaceRLE;
+tSDL_SetColorKey *SDL_SetColorKey;
+tSDL_GetColorKey *SDL_GetColorKey;
+tSDL_SetSurfaceColorMod *SDL_SetSurfaceColorMod;
+tSDL_GetSurfaceColorMod *SDL_GetSurfaceColorMod;
+tSDL_SetSurfaceAlphaMod *SDL_SetSurfaceAlphaMod;
+tSDL_GetSurfaceAlphaMod *SDL_GetSurfaceAlphaMod;
+tSDL_SetSurfaceBlendMode *SDL_SetSurfaceBlendMode;
+tSDL_GetSurfaceBlendMode *SDL_GetSurfaceBlendMode;
+tSDL_SetClipRect *SDL_SetClipRect;
+tSDL_GetClipRect *SDL_GetClipRect;
+tSDL_ConvertSurface *SDL_ConvertSurface;
+tSDL_ConvertSurfaceFormat *SDL_ConvertSurfaceFormat;
+tSDL_ConvertPixels *SDL_ConvertPixels;
+tSDL_FillRect *SDL_FillRect;
+tSDL_FillRects *SDL_FillRects;
+tSDL_UpperBlit *SDL_UpperBlit;
+tSDL_LowerBlit *SDL_LowerBlit;
+tSDL_SoftStretch *SDL_SoftStretch;
+tSDL_UpperBlitScaled *SDL_UpperBlitScaled;
+tSDL_LowerBlitScaled *SDL_LowerBlitScaled;
+tSDL_PumpEvents *SDL_PumpEvents;
+tSDL_PeepEvents *SDL_PeepEvents;
+tSDL_HasEvent *SDL_HasEvent;
+tSDL_HasEvents *SDL_HasEvents;
+tSDL_FlushEvent *SDL_FlushEvent;
+tSDL_FlushEvents *SDL_FlushEvents;
+tSDL_PollEvent *SDL_PollEvent;
+tSDL_WaitEvent *SDL_WaitEvent;
+tSDL_WaitEventTimeout *SDL_WaitEventTimeout;
+tSDL_PushEvent *SDL_PushEvent;
+tSDL_SetEventFilter *SDL_SetEventFilter;
+tSDL_GetEventFilter *SDL_GetEventFilter;
+tSDL_AddEventWatch *SDL_AddEventWatch;
+tSDL_DelEventWatch *SDL_DelEventWatch;
+tSDL_FilterEvents *SDL_FilterEvents;
+tSDL_EventState *SDL_EventState;
+tSDL_RegisterEvents *SDL_RegisterEvents;
+tSDL_GetMouseFocus *SDL_GetMouseFocus;
+tSDL_GetMouseState *SDL_GetMouseState;
+tSDL_GetRelativeMouseState *SDL_GetRelativeMouseState;
+tSDL_WarpMouseInWindow *SDL_WarpMouseInWindow;
+tSDL_SetRelativeMouseMode *SDL_SetRelativeMouseMode;
+tSDL_GetRelativeMouseMode *SDL_GetRelativeMouseMode;
+tSDL_CreateCursor *SDL_CreateCursor;
+tSDL_CreateColorCursor *SDL_CreateColorCursor;
+tSDL_CreateSystemCursor *SDL_CreateSystemCursor;
+tSDL_SetCursor *SDL_SetCursor;
+tSDL_GetCursor *SDL_GetCursor;
+tSDL_GetDefaultCursor *SDL_GetDefaultCursor;
+tSDL_FreeCursor *SDL_FreeCursor;
+tSDL_ShowCursor *SDL_ShowCursor;
+tSDL_GetThreadName *SDL_GetThreadName;
+tSDL_ThreadID *SDL_ThreadID;
+tSDL_GetThreadID *SDL_GetThreadID;
+tSDL_SetThreadPriority *SDL_SetThreadPriority;
+tSDL_WaitThread *SDL_WaitThread;
+tSDL_TLSCreate *SDL_TLSCreate;
+tSDL_TLSGet *SDL_TLSGet;
+tSDL_TLSSet *SDL_TLSSet;
+tSDL_GetKeyboardFocus *SDL_GetKeyboardFocus;
+tSDL_GetKeyboardState *SDL_GetKeyboardState;
+tSDL_GetModState *SDL_GetModState;
+tSDL_SetModState *SDL_SetModState;
+tSDL_GetKeyFromScancode *SDL_GetKeyFromScancode;
+tSDL_GetScancodeFromKey *SDL_GetScancodeFromKey;
+tSDL_GetScancodeName *SDL_GetScancodeName;
+tSDL_GetScancodeFromName *SDL_GetScancodeFromName;
+tSDL_GetKeyName *SDL_GetKeyName;
+tSDL_GetKeyFromName *SDL_GetKeyFromName;
+tSDL_StartTextInput *SDL_StartTextInput;
+tSDL_IsTextInputActive *SDL_IsTextInputActive;
+tSDL_StopTextInput *SDL_StopTextInput;
+tSDL_SetTextInputRect *SDL_SetTextInputRect;
+tSDL_HasScreenKeyboardSupport *SDL_HasScreenKeyboardSupport;
+tSDL_IsScreenKeyboardShown *SDL_IsScreenKeyboardShown;
+tSDL_GameControllerAddMapping *SDL_GameControllerAddMapping;
+tSDL_GameControllerMappingForGUID *SDL_GameControllerMappingForGUID;
+tSDL_GameControllerMapping *SDL_GameControllerMapping;
+tSDL_IsGameController *SDL_IsGameController;
+tSDL_GameControllerNameForIndex *SDL_GameControllerNameForIndex;
+tSDL_GameControllerOpen *SDL_GameControllerOpen;
+tSDL_GameControllerName *SDL_GameControllerName;
+tSDL_GameControllerGetAttached *SDL_GameControllerGetAttached;
+tSDL_GameControllerGetJoystick *SDL_GameControllerGetJoystick;
+tSDL_GameControllerEventState *SDL_GameControllerEventState;
+tSDL_GameControllerUpdate *SDL_GameControllerUpdate;
+tSDL_GameControllerGetAxisFromString *SDL_GameControllerGetAxisFromString;
+tSDL_GameControllerGetButtonFromString *SDL_GameControllerGetButtonFromString;
+tSDL_GameControllerGetButton *SDL_GameControllerGetButton;
+tSDL_GameControllerClose *SDL_GameControllerClose;
+tSDL_GetNumAudioDrivers *SDL_GetNumAudioDrivers;
+tSDL_GetAudioDriver *SDL_GetAudioDriver;
+tSDL_AudioInit *SDL_AudioInit;
+tSDL_AudioQuit *SDL_AudioQuit;
+tSDL_GetCurrentAudioDriver *SDL_GetCurrentAudioDriver;
+tSDL_OpenAudio *SDL_OpenAudio;
+tSDL_GetNumAudioDevices *SDL_GetNumAudioDevices;
+tSDL_GetAudioDeviceName *SDL_GetAudioDeviceName;
+tSDL_OpenAudioDevice *SDL_OpenAudioDevice;
+tSDL_GetAudioStatus *SDL_GetAudioStatus;
+tSDL_PauseAudio *SDL_PauseAudio;
+tSDL_PauseAudioDevice *SDL_PauseAudioDevice;
+tSDL_LoadWAV_RW *SDL_LoadWAV_RW;
+tSDL_FreeWAV *SDL_FreeWAV;
+tSDL_BuildAudioCVT *SDL_BuildAudioCVT;
+tSDL_ConvertAudio *SDL_ConvertAudio;
+tSDL_MixAudio *SDL_MixAudio;
+tSDL_MixAudioFormat *SDL_MixAudioFormat;
+tSDL_LockAudio *SDL_LockAudio;
+tSDL_LockAudioDevice *SDL_LockAudioDevice;
+tSDL_UnlockAudio *SDL_UnlockAudio;
+tSDL_UnlockAudioDevice *SDL_UnlockAudioDevice;
+tSDL_CloseAudio *SDL_CloseAudio;
+tSDL_CloseAudioDevice *SDL_CloseAudioDevice;
+tSDL_GetNumVideoDrivers *SDL_GetNumVideoDrivers;
+tSDL_GetVideoDriver *SDL_GetVideoDriver;
+tSDL_VideoInit *SDL_VideoInit;
+tSDL_VideoQuit *SDL_VideoQuit;
+tSDL_GetCurrentVideoDriver *SDL_GetCurrentVideoDriver;
+tSDL_GetNumVideoDisplays *SDL_GetNumVideoDisplays;
+tSDL_GetDisplayName *SDL_GetDisplayName;
+tSDL_GetDisplayBounds *SDL_GetDisplayBounds;
+tSDL_GetNumDisplayModes *SDL_GetNumDisplayModes;
+tSDL_GetDisplayMode *SDL_GetDisplayMode;
+tSDL_GetDesktopDisplayMode *SDL_GetDesktopDisplayMode;
+tSDL_GetCurrentDisplayMode *SDL_GetCurrentDisplayMode;
+tSDL_GetClosestDisplayMode *SDL_GetClosestDisplayMode;
+tSDL_GetWindowDisplayIndex *SDL_GetWindowDisplayIndex;
+tSDL_SetWindowDisplayMode *SDL_SetWindowDisplayMode;
+tSDL_GetWindowDisplayMode *SDL_GetWindowDisplayMode;
+tSDL_GetWindowPixelFormat *SDL_GetWindowPixelFormat;
+tSDL_CreateWindow *SDL_CreateWindow;
+tSDL_CreateWindowFrom *SDL_CreateWindowFrom;
+tSDL_GetWindowID *SDL_GetWindowID;
+tSDL_GetWindowFromID *SDL_GetWindowFromID;
+tSDL_GetWindowFlags *SDL_GetWindowFlags;
+tSDL_SetWindowTitle *SDL_SetWindowTitle;
+tSDL_GetWindowTitle *SDL_GetWindowTitle;
+tSDL_SetWindowIcon *SDL_SetWindowIcon;
+tSDL_GetWindowData *SDL_GetWindowData;
+tSDL_SetWindowPosition *SDL_SetWindowPosition;
+tSDL_GetWindowPosition *SDL_GetWindowPosition;
+tSDL_SetWindowSize *SDL_SetWindowSize;
+tSDL_GetWindowSize *SDL_GetWindowSize;
+tSDL_SetWindowMinimumSize *SDL_SetWindowMinimumSize;
+tSDL_GetWindowMinimumSize *SDL_GetWindowMinimumSize;
+tSDL_SetWindowMaximumSize *SDL_SetWindowMaximumSize;
+tSDL_GetWindowMaximumSize *SDL_GetWindowMaximumSize;
+tSDL_SetWindowBordered *SDL_SetWindowBordered;
+tSDL_ShowWindow *SDL_ShowWindow;
+tSDL_HideWindow *SDL_HideWindow;
+tSDL_RaiseWindow *SDL_RaiseWindow;
+tSDL_MaximizeWindow *SDL_MaximizeWindow;
+tSDL_MinimizeWindow *SDL_MinimizeWindow;
+tSDL_RestoreWindow *SDL_RestoreWindow;
+tSDL_SetWindowFullscreen *SDL_SetWindowFullscreen;
+tSDL_GetWindowSurface *SDL_GetWindowSurface;
+tSDL_UpdateWindowSurface *SDL_UpdateWindowSurface;
+tSDL_UpdateWindowSurfaceRects *SDL_UpdateWindowSurfaceRects;
+tSDL_SetWindowGrab *SDL_SetWindowGrab;
+tSDL_GetWindowGrab *SDL_GetWindowGrab;
+tSDL_SetWindowBrightness *SDL_SetWindowBrightness;
+tSDL_GetWindowBrightness *SDL_GetWindowBrightness;
+tSDL_SetWindowGammaRamp *SDL_SetWindowGammaRamp;
+tSDL_GetWindowGammaRamp *SDL_GetWindowGammaRamp;
+tSDL_DestroyWindow *SDL_DestroyWindow;
+tSDL_IsScreenSaverEnabled *SDL_IsScreenSaverEnabled;
+tSDL_EnableScreenSaver *SDL_EnableScreenSaver;
+tSDL_DisableScreenSaver *SDL_DisableScreenSaver;
+tSDL_GL_LoadLibrary *SDL_GL_LoadLibrary;
+tSDL_GL_GetProcAddress *SDL_GL_GetProcAddress;
+tSDL_GL_UnloadLibrary *SDL_GL_UnloadLibrary;
+tSDL_GL_ExtensionSupported *SDL_GL_ExtensionSupported;
+tSDL_GL_SetAttribute *SDL_GL_SetAttribute;
+tSDL_GL_GetAttribute *SDL_GL_GetAttribute;
+tSDL_GL_CreateContext *SDL_GL_CreateContext;
+tSDL_GL_MakeCurrent *SDL_GL_MakeCurrent;
+tSDL_GL_GetCurrentContext *SDL_GL_GetCurrentContext;
+tSDL_GL_SetSwapInterval *SDL_GL_SetSwapInterval;
+tSDL_GL_GetSwapInterval *SDL_GL_GetSwapInterval;
+tSDL_GL_SwapWindow *SDL_GL_SwapWindow;
+tSDL_GL_DeleteContext *SDL_GL_DeleteContext;
+tSDL_RWFromFile *SDL_RWFromFile;
+tSDL_RWFromFP *SDL_RWFromFP;
+tSDL_RWFromFP *SDL_RWFromFP;
+tSDL_RWFromMem *SDL_RWFromMem;
+tSDL_RWFromConstMem *SDL_RWFromConstMem;
+tSDL_AllocRW *SDL_AllocRW;
+tSDL_FreeRW *SDL_FreeRW;
+tSDL_ReadU8 *SDL_ReadU8;
+tSDL_ReadLE16 *SDL_ReadLE16;
+tSDL_ReadBE16 *SDL_ReadBE16;
+tSDL_ReadLE32 *SDL_ReadLE32;
+tSDL_ReadBE32 *SDL_ReadBE32;
+tSDL_ReadLE64 *SDL_ReadLE64;
+tSDL_ReadBE64 *SDL_ReadBE64;
+tSDL_WriteU8 *SDL_WriteU8;
+tSDL_WriteLE16 *SDL_WriteLE16;
+tSDL_WriteBE16 *SDL_WriteBE16;
+tSDL_WriteLE32 *SDL_WriteLE32;
+tSDL_WriteBE32 *SDL_WriteBE32;
+tSDL_WriteLE64 *SDL_WriteLE64;
+tSDL_WriteBE64 *SDL_WriteBE64;
+tSDL_Init *SDL_Init;
+tSDL_InitSubSystem *SDL_InitSubSystem;
+tSDL_QuitSubSystem *SDL_QuitSubSystem;
+tSDL_WasInit *SDL_WasInit;
+tSDL_Quit *SDL_Quit;
+tSDL_GetVersion *SDL_GetVersion;
+tSDL_GetRevision *SDL_GetRevision;
+tSDL_GetRevisionNumber *SDL_GetRevisionNumber;
+tSDL_GetTicks *SDL_GetTicks;
+tSDL_GetPerformanceCounter *SDL_GetPerformanceCounter;
+tSDL_GetPerformanceFrequency *SDL_GetPerformanceFrequency;
+tSDL_Delay *SDL_Delay;
+tSDL_AddTimer *SDL_AddTimer;
+tSDL_RemoveTimer *SDL_RemoveTimer;
+tSDL_SetHintWithPriority *SDL_SetHintWithPriority;
+tSDL_SetHint *SDL_SetHint;
+tSDL_GetHint *SDL_GetHint;
+tSDL_AddHintCallback *SDL_AddHintCallback;
+tSDL_DelHintCallback *SDL_DelHintCallback;
+tSDL_ClearHints *SDL_ClearHints;
+tSDL_NumJoysticks *SDL_NumJoysticks;
+tSDL_JoystickNameForIndex *SDL_JoystickNameForIndex;
+tSDL_JoystickOpen *SDL_JoystickOpen;
+tSDL_JoystickName *SDL_JoystickName;
+tSDL_JoystickGetDeviceGUID *SDL_JoystickGetDeviceGUID;
+tSDL_JoystickGetGUID *SDL_JoystickGetGUID;
+tSDL_JoystickGetGUIDFromString *SDL_JoystickGetGUIDFromString;
+tSDL_JoystickGetAttached *SDL_JoystickGetAttached;
+tSDL_JoystickInstanceID *SDL_JoystickInstanceID;
+tSDL_JoystickNumAxes *SDL_JoystickNumAxes;
+tSDL_JoystickNumBalls *SDL_JoystickNumBalls;
+tSDL_JoystickNumHats *SDL_JoystickNumHats;
+tSDL_JoystickNumButtons *SDL_JoystickNumButtons;
+tSDL_JoystickUpdate *SDL_JoystickUpdate;
+tSDL_JoystickEventState *SDL_JoystickEventState;
+tSDL_JoystickGetAxis *SDL_JoystickGetAxis;
+tSDL_JoystickGetHat *SDL_JoystickGetHat;
+tSDL_JoystickGetBall *SDL_JoystickGetBall;
+tSDL_JoystickGetButton *SDL_JoystickGetButton;
+tSDL_JoystickClose *SDL_JoystickClose;
+tSDL_RecordGesture *SDL_RecordGesture;
+tSDL_SaveAllDollarTemplates *SDL_SaveAllDollarTemplates;
+tSDL_SaveDollarTemplate *SDL_SaveDollarTemplate;
+tSDL_LoadDollarTemplates *SDL_LoadDollarTemplates;
+tSDL_NumHaptics *SDL_NumHaptics;
+tSDL_HapticName *SDL_HapticName;
+tSDL_HapticOpen *SDL_HapticOpen;
+tSDL_HapticOpened *SDL_HapticOpened;
+tSDL_HapticIndex *SDL_HapticIndex;
+tSDL_MouseIsHaptic *SDL_MouseIsHaptic;
+tSDL_HapticOpenFromMouse *SDL_HapticOpenFromMouse;
+tSDL_JoystickIsHaptic *SDL_JoystickIsHaptic;
+tSDL_HapticOpenFromJoystick *SDL_HapticOpenFromJoystick;
+tSDL_HapticClose *SDL_HapticClose;
+tSDL_HapticNumEffects *SDL_HapticNumEffects;
+tSDL_HapticNumEffectsPlaying *SDL_HapticNumEffectsPlaying;
+tSDL_HapticNumAxes *SDL_HapticNumAxes;
+tSDL_HapticEffectSupported *SDL_HapticEffectSupported;
+tSDL_HapticNewEffect *SDL_HapticNewEffect;
+tSDL_HapticUpdateEffect *SDL_HapticUpdateEffect;
+tSDL_HapticRunEffect *SDL_HapticRunEffect;
+tSDL_HapticStopEffect *SDL_HapticStopEffect;
+tSDL_HapticDestroyEffect *SDL_HapticDestroyEffect;
+tSDL_HapticGetEffectStatus *SDL_HapticGetEffectStatus;
+tSDL_HapticSetGain *SDL_HapticSetGain;
+tSDL_HapticSetAutocenter *SDL_HapticSetAutocenter;
+tSDL_HapticPause *SDL_HapticPause;
+tSDL_HapticUnpause *SDL_HapticUnpause;
+tSDL_HapticStopAll *SDL_HapticStopAll;
+tSDL_HapticRumbleSupported *SDL_HapticRumbleSupported;
+tSDL_HapticRumbleInit *SDL_HapticRumbleInit;
+tSDL_HapticRumblePlay *SDL_HapticRumblePlay;
+tSDL_HapticRumbleStop *SDL_HapticRumbleStop;
+tSDL_ShowMessageBox *SDL_ShowMessageBox;
+tSDL_ShowSimpleMessageBox *SDL_ShowSimpleMessageBox;
+tSDL_PixelFormatEnumToMasks *SDL_PixelFormatEnumToMasks;
+tSDL_MasksToPixelFormatEnum *SDL_MasksToPixelFormatEnum;
+tSDL_AllocFormat *SDL_AllocFormat;
+tSDL_FreeFormat *SDL_FreeFormat;
+tSDL_AllocPalette *SDL_AllocPalette;
+tSDL_SetPixelFormatPalette *SDL_SetPixelFormatPalette;
+tSDL_SetPaletteColors *SDL_SetPaletteColors;
+tSDL_FreePalette *SDL_FreePalette;
+tSDL_MapRGB *SDL_MapRGB;
+tSDL_MapRGBA *SDL_MapRGBA;
+tSDL_GetRGB *SDL_GetRGB;
+tSDL_GetRGBA *SDL_GetRGBA;
+tSDL_CalculateGammaRamp *SDL_CalculateGammaRamp;
+tSDL_GetPowerInfo *SDL_GetPowerInfo;
+tSDL_GetCPUCount *SDL_GetCPUCount;
+tSDL_GetCPUCacheLineSize *SDL_GetCPUCacheLineSize;
+tSDL_HasRDTSC *SDL_HasRDTSC;
+tSDL_HasAltiVec *SDL_HasAltiVec;
+tSDL_HasMMX *SDL_HasMMX;
+tSDL_Has3DNow *SDL_Has3DNow;
+tSDL_HasSSE *SDL_HasSSE;
+tSDL_HasSSE2 *SDL_HasSSE2;
+tSDL_HasSSE3 *SDL_HasSSE3;
+tSDL_HasSSE41 *SDL_HasSSE41;
+tSDL_HasSSE42 *SDL_HasSSE42;
+tSDL_GetNumTouchDevices *SDL_GetNumTouchDevices;
+tSDL_GetTouchDevice *SDL_GetTouchDevice;
+tSDL_GetNumTouchFingers *SDL_GetNumTouchFingers;
+tSDL_GetTouchFinger *SDL_GetTouchFinger;
+tSDL_SetError *SDL_SetError;
+tSDL_GetError *SDL_GetError;
+tSDL_ClearError *SDL_ClearError;
+tSDL_Error *SDL_Error;
+tSDL_SetClipboardText *SDL_SetClipboardText;
+tSDL_GetClipboardText *SDL_GetClipboardText;
+tSDL_HasClipboardText *SDL_HasClipboardText;
+tSDL_GetWindowWMInfo *SDL_GetWindowWMInfo;
+
+static void sdlewExit(void) {
+ if(lib != NULL) {
+ /* Ignore errors. */
+ dynamic_library_close(lib);
+ lib = NULL;
+ }
+}
+
+/* Implementation function. */
+int sdlewInit(void) {
+ /* Library paths. */
+#ifdef _WIN32
+ /* Expected in c:/windows/system or similar, no path needed. */
+ const char *path = "SDL2.dll";
+#elif defined(__APPLE__)
+ /* Default installation path. */
+ const char *path = "/usr/local/cuda/lib/libSDL2.dylib";
+#else
+ const char *path = "libSDL2.so";
+#endif
+ static int initialized = 0;
+ static int result = 0;
+ int error;
+
+ if (initialized) {
+ return result;
+ }
+
+ initialized = 1;
+
+ error = atexit(sdlewExit);
+ if (error) {
+ result = SDLEW_ERROR_ATEXIT_FAILED;
+ return result;
+ }
+
+ /* Load library. */
+ lib = dynamic_library_open(path);
+
+ if (lib == NULL) {
+ result = SDLEW_ERROR_OPEN_FAILED;
+ return result;
+ }
+
+ SDL_LIBRARY_FIND(SDL_GetPlatform);
+ SDL_LIBRARY_FIND(SDL_memcpy);
+#ifndef HAVE_ALLOCA
+ SDL_LIBRARY_FIND(SDL_malloc);
+#endif
+ SDL_LIBRARY_FIND(SDL_calloc);
+ SDL_LIBRARY_FIND(SDL_realloc);
+ SDL_LIBRARY_FIND(SDL_free);
+ SDL_LIBRARY_FIND(SDL_getenv);
+ SDL_LIBRARY_FIND(SDL_setenv);
+ SDL_LIBRARY_FIND(SDL_qsort);
+ SDL_LIBRARY_FIND(SDL_abs);
+ SDL_LIBRARY_FIND(SDL_isdigit);
+ SDL_LIBRARY_FIND(SDL_isspace);
+ SDL_LIBRARY_FIND(SDL_toupper);
+ SDL_LIBRARY_FIND(SDL_tolower);
+ SDL_LIBRARY_FIND(SDL_memset);
+ SDL_LIBRARY_FIND(SDL_memmove);
+ SDL_LIBRARY_FIND(SDL_memcmp);
+ SDL_LIBRARY_FIND(SDL_wcslen);
+ SDL_LIBRARY_FIND(SDL_wcslcpy);
+ SDL_LIBRARY_FIND(SDL_wcslcat);
+ SDL_LIBRARY_FIND(SDL_strlen);
+ SDL_LIBRARY_FIND(SDL_strlcpy);
+ SDL_LIBRARY_FIND(SDL_utf8strlcpy);
+ SDL_LIBRARY_FIND(SDL_strlcat);
+ SDL_LIBRARY_FIND(SDL_strdup);
+ SDL_LIBRARY_FIND(SDL_strrev);
+ SDL_LIBRARY_FIND(SDL_strupr);
+ SDL_LIBRARY_FIND(SDL_strlwr);
+ SDL_LIBRARY_FIND(SDL_strchr);
+ SDL_LIBRARY_FIND(SDL_strrchr);
+ SDL_LIBRARY_FIND(SDL_strstr);
+ SDL_LIBRARY_FIND(SDL_itoa);
+ SDL_LIBRARY_FIND(SDL_uitoa);
+ SDL_LIBRARY_FIND(SDL_ltoa);
+ SDL_LIBRARY_FIND(SDL_ultoa);
+ SDL_LIBRARY_FIND(SDL_lltoa);
+ SDL_LIBRARY_FIND(SDL_ulltoa);
+ SDL_LIBRARY_FIND(SDL_atoi);
+ SDL_LIBRARY_FIND(SDL_atof);
+ SDL_LIBRARY_FIND(SDL_strtol);
+ SDL_LIBRARY_FIND(SDL_strtoll);
+ SDL_LIBRARY_FIND(SDL_strtoull);
+ SDL_LIBRARY_FIND(SDL_strtod);
+ SDL_LIBRARY_FIND(SDL_strcmp);
+ SDL_LIBRARY_FIND(SDL_strncmp);
+ SDL_LIBRARY_FIND(SDL_strcasecmp);
+ SDL_LIBRARY_FIND(SDL_strncasecmp);
+ SDL_LIBRARY_FIND(SDL_sscanf);
+ SDL_LIBRARY_FIND(SDL_snprintf);
+ SDL_LIBRARY_FIND(SDL_vsnprintf);
+ SDL_LIBRARY_FIND(SDL_atan);
+ SDL_LIBRARY_FIND(SDL_atan2);
+ SDL_LIBRARY_FIND(SDL_ceil);
+ SDL_LIBRARY_FIND(SDL_copysign);
+ SDL_LIBRARY_FIND(SDL_cos);
+ SDL_LIBRARY_FIND(SDL_cosf);
+ SDL_LIBRARY_FIND(SDL_fabs);
+ SDL_LIBRARY_FIND(SDL_floor);
+ SDL_LIBRARY_FIND(SDL_log);
+ SDL_LIBRARY_FIND(SDL_pow);
+ SDL_LIBRARY_FIND(SDL_scalbn);
+ SDL_LIBRARY_FIND(SDL_sin);
+ SDL_LIBRARY_FIND(SDL_sinf);
+ SDL_LIBRARY_FIND(SDL_sqrt);
+ SDL_LIBRARY_FIND(SDL_iconv_open);
+ SDL_LIBRARY_FIND(SDL_iconv_close);
+ SDL_LIBRARY_FIND(SDL_iconv);
+ SDL_LIBRARY_FIND(SDL_iconv_string);
+ SDL_LIBRARY_FIND(SDL_GetNumRenderDrivers);
+ SDL_LIBRARY_FIND(SDL_GetRenderDriverInfo);
+ SDL_LIBRARY_FIND(SDL_CreateWindowAndRenderer);
+ SDL_LIBRARY_FIND(SDL_CreateRenderer);
+ SDL_LIBRARY_FIND(SDL_CreateSoftwareRenderer);
+ SDL_LIBRARY_FIND(SDL_GetRenderer);
+ SDL_LIBRARY_FIND(SDL_GetRendererInfo);
+ SDL_LIBRARY_FIND(SDL_GetRendererOutputSize);
+ SDL_LIBRARY_FIND(SDL_CreateTexture);
+ SDL_LIBRARY_FIND(SDL_CreateTextureFromSurface);
+ SDL_LIBRARY_FIND(SDL_QueryTexture);
+ SDL_LIBRARY_FIND(SDL_SetTextureColorMod);
+ SDL_LIBRARY_FIND(SDL_GetTextureColorMod);
+ SDL_LIBRARY_FIND(SDL_SetTextureAlphaMod);
+ SDL_LIBRARY_FIND(SDL_GetTextureAlphaMod);
+ SDL_LIBRARY_FIND(SDL_SetTextureBlendMode);
+ SDL_LIBRARY_FIND(SDL_GetTextureBlendMode);
+ SDL_LIBRARY_FIND(SDL_UpdateTexture);
+ SDL_LIBRARY_FIND(SDL_LockTexture);
+ SDL_LIBRARY_FIND(SDL_UnlockTexture);
+ SDL_LIBRARY_FIND(SDL_RenderTargetSupported);
+ SDL_LIBRARY_FIND(SDL_SetRenderTarget);
+ SDL_LIBRARY_FIND(SDL_GetRenderTarget);
+ SDL_LIBRARY_FIND(SDL_RenderSetLogicalSize);
+ SDL_LIBRARY_FIND(SDL_RenderGetLogicalSize);
+ SDL_LIBRARY_FIND(SDL_RenderSetViewport);
+ SDL_LIBRARY_FIND(SDL_RenderGetViewport);
+ SDL_LIBRARY_FIND(SDL_RenderSetClipRect);
+ SDL_LIBRARY_FIND(SDL_RenderGetClipRect);
+ SDL_LIBRARY_FIND(SDL_RenderSetScale);
+ SDL_LIBRARY_FIND(SDL_RenderGetScale);
+ SDL_LIBRARY_FIND(SDL_SetRenderDrawBlendMode);
+ SDL_LIBRARY_FIND(SDL_GetRenderDrawBlendMode);
+ SDL_LIBRARY_FIND(SDL_RenderClear);
+ SDL_LIBRARY_FIND(SDL_RenderDrawPoint);
+ SDL_LIBRARY_FIND(SDL_RenderDrawPoints);
+ SDL_LIBRARY_FIND(SDL_RenderDrawLine);
+ SDL_LIBRARY_FIND(SDL_RenderDrawLines);
+ SDL_LIBRARY_FIND(SDL_RenderDrawRect);
+ SDL_LIBRARY_FIND(SDL_RenderDrawRects);
+ SDL_LIBRARY_FIND(SDL_RenderFillRect);
+ SDL_LIBRARY_FIND(SDL_RenderFillRects);
+ SDL_LIBRARY_FIND(SDL_RenderCopy);
+ SDL_LIBRARY_FIND(SDL_RenderCopyEx);
+ SDL_LIBRARY_FIND(SDL_RenderReadPixels);
+ SDL_LIBRARY_FIND(SDL_RenderPresent);
+ SDL_LIBRARY_FIND(SDL_DestroyTexture);
+ SDL_LIBRARY_FIND(SDL_DestroyRenderer);
+ SDL_LIBRARY_FIND(SDL_GL_BindTexture);
+ SDL_LIBRARY_FIND(SDL_GL_UnbindTexture);
+ SDL_LIBRARY_FIND(SDL_LoadObject);
+ SDL_LIBRARY_FIND(SDL_LoadFunction);
+ SDL_LIBRARY_FIND(SDL_UnloadObject);
+ SDL_LIBRARY_FIND(SDL_ReportAssertion);
+ SDL_LIBRARY_FIND(SDL_SetAssertionHandler);
+ SDL_LIBRARY_FIND(SDL_GetAssertionReport);
+ SDL_LIBRARY_FIND(SDL_ResetAssertionReport);
+ SDL_LIBRARY_FIND(SDL_AtomicTryLock);
+ SDL_LIBRARY_FIND(SDL_AtomicLock);
+ SDL_LIBRARY_FIND(SDL_AtomicUnlock);
+ SDL_LIBRARY_FIND(SDL_HasIntersection);
+ SDL_LIBRARY_FIND(SDL_IntersectRect);
+ SDL_LIBRARY_FIND(SDL_UnionRect);
+ SDL_LIBRARY_FIND(SDL_EnclosePoints);
+ SDL_LIBRARY_FIND(SDL_IntersectRectAndLine);
+ SDL_LIBRARY_FIND(SDL_LogSetAllPriority);
+ SDL_LIBRARY_FIND(SDL_LogSetPriority);
+ SDL_LIBRARY_FIND(SDL_LogGetPriority);
+ SDL_LIBRARY_FIND(SDL_LogResetPriorities);
+ SDL_LIBRARY_FIND(SDL_Log);
+ SDL_LIBRARY_FIND(SDL_LogVerbose);
+ SDL_LIBRARY_FIND(SDL_LogDebug);
+ SDL_LIBRARY_FIND(SDL_LogInfo);
+ SDL_LIBRARY_FIND(SDL_LogWarn);
+ SDL_LIBRARY_FIND(SDL_LogError);
+ SDL_LIBRARY_FIND(SDL_LogCritical);
+ SDL_LIBRARY_FIND(SDL_LogMessage);
+ SDL_LIBRARY_FIND(SDL_LogMessageV);
+ SDL_LIBRARY_FIND(SDL_LogGetOutputFunction);
+ SDL_LIBRARY_FIND(SDL_LogSetOutputFunction);
+ SDL_LIBRARY_FIND(SDL_CreateMutex);
+ SDL_LIBRARY_FIND(SDL_LockMutex);
+ SDL_LIBRARY_FIND(SDL_TryLockMutex);
+ SDL_LIBRARY_FIND(SDL_UnlockMutex);
+ SDL_LIBRARY_FIND(SDL_DestroyMutex);
+ SDL_LIBRARY_FIND(SDL_CreateSemaphore);
+ SDL_LIBRARY_FIND(SDL_DestroySemaphore);
+ SDL_LIBRARY_FIND(SDL_SemWait);
+ SDL_LIBRARY_FIND(SDL_SemTryWait);
+ SDL_LIBRARY_FIND(SDL_SemWaitTimeout);
+ SDL_LIBRARY_FIND(SDL_SemPost);
+ SDL_LIBRARY_FIND(SDL_SemValue);
+ SDL_LIBRARY_FIND(SDL_CreateCond);
+ SDL_LIBRARY_FIND(SDL_DestroyCond);
+ SDL_LIBRARY_FIND(SDL_CondSignal);
+ SDL_LIBRARY_FIND(SDL_CondBroadcast);
+ SDL_LIBRARY_FIND(SDL_CondWait);
+ SDL_LIBRARY_FIND(SDL_CondWaitTimeout);
+ SDL_LIBRARY_FIND(SDL_CreateRGBSurface);
+ SDL_LIBRARY_FIND(SDL_CreateRGBSurfaceFrom);
+ SDL_LIBRARY_FIND(SDL_FreeSurface);
+ SDL_LIBRARY_FIND(SDL_SetSurfacePalette);
+ SDL_LIBRARY_FIND(SDL_LockSurface);
+ SDL_LIBRARY_FIND(SDL_UnlockSurface);
+ SDL_LIBRARY_FIND(SDL_LoadBMP_RW);
+ SDL_LIBRARY_FIND(SDL_SaveBMP_RW);
+ SDL_LIBRARY_FIND(SDL_SetSurfaceRLE);
+ SDL_LIBRARY_FIND(SDL_SetColorKey);
+ SDL_LIBRARY_FIND(SDL_GetColorKey);
+ SDL_LIBRARY_FIND(SDL_SetSurfaceColorMod);
+ SDL_LIBRARY_FIND(SDL_GetSurfaceColorMod);
+ SDL_LIBRARY_FIND(SDL_SetSurfaceAlphaMod);
+ SDL_LIBRARY_FIND(SDL_GetSurfaceAlphaMod);
+ SDL_LIBRARY_FIND(SDL_SetSurfaceBlendMode);
+ SDL_LIBRARY_FIND(SDL_GetSurfaceBlendMode);
+ SDL_LIBRARY_FIND(SDL_SetClipRect);
+ SDL_LIBRARY_FIND(SDL_GetClipRect);
+ SDL_LIBRARY_FIND(SDL_ConvertSurface);
+ SDL_LIBRARY_FIND(SDL_ConvertSurfaceFormat);
+ SDL_LIBRARY_FIND(SDL_ConvertPixels);
+ SDL_LIBRARY_FIND(SDL_FillRect);
+ SDL_LIBRARY_FIND(SDL_FillRects);
+ SDL_LIBRARY_FIND(SDL_UpperBlit);
+ SDL_LIBRARY_FIND(SDL_LowerBlit);
+ SDL_LIBRARY_FIND(SDL_SoftStretch);
+ SDL_LIBRARY_FIND(SDL_UpperBlitScaled);
+ SDL_LIBRARY_FIND(SDL_LowerBlitScaled);
+ SDL_LIBRARY_FIND(SDL_PumpEvents);
+ SDL_LIBRARY_FIND(SDL_PeepEvents);
+ SDL_LIBRARY_FIND(SDL_HasEvent);
+ SDL_LIBRARY_FIND(SDL_HasEvents);
+ SDL_LIBRARY_FIND(SDL_FlushEvent);
+ SDL_LIBRARY_FIND(SDL_FlushEvents);
+ SDL_LIBRARY_FIND(SDL_PollEvent);
+ SDL_LIBRARY_FIND(SDL_WaitEvent);
+ SDL_LIBRARY_FIND(SDL_WaitEventTimeout);
+ SDL_LIBRARY_FIND(SDL_PushEvent);
+ SDL_LIBRARY_FIND(SDL_SetEventFilter);
+ SDL_LIBRARY_FIND(SDL_GetEventFilter);
+ SDL_LIBRARY_FIND(SDL_AddEventWatch);
+ SDL_LIBRARY_FIND(SDL_DelEventWatch);
+ SDL_LIBRARY_FIND(SDL_FilterEvents);
+ SDL_LIBRARY_FIND(SDL_EventState);
+ SDL_LIBRARY_FIND(SDL_RegisterEvents);
+ SDL_LIBRARY_FIND(SDL_GetMouseFocus);
+ SDL_LIBRARY_FIND(SDL_GetMouseState);
+ SDL_LIBRARY_FIND(SDL_GetRelativeMouseState);
+ SDL_LIBRARY_FIND(SDL_WarpMouseInWindow);
+ SDL_LIBRARY_FIND(SDL_SetRelativeMouseMode);
+ SDL_LIBRARY_FIND(SDL_GetRelativeMouseMode);
+ SDL_LIBRARY_FIND(SDL_CreateCursor);
+ SDL_LIBRARY_FIND(SDL_CreateColorCursor);
+ SDL_LIBRARY_FIND(SDL_CreateSystemCursor);
+ SDL_LIBRARY_FIND(SDL_SetCursor);
+ SDL_LIBRARY_FIND(SDL_GetCursor);
+ SDL_LIBRARY_FIND(SDL_GetDefaultCursor);
+ SDL_LIBRARY_FIND(SDL_FreeCursor);
+ SDL_LIBRARY_FIND(SDL_ShowCursor);
+ SDL_LIBRARY_FIND(SDL_GetThreadName);
+ SDL_LIBRARY_FIND(SDL_ThreadID);
+ SDL_LIBRARY_FIND(SDL_GetThreadID);
+ SDL_LIBRARY_FIND(SDL_SetThreadPriority);
+ SDL_LIBRARY_FIND(SDL_WaitThread);
+ SDL_LIBRARY_FIND(SDL_TLSCreate);
+ SDL_LIBRARY_FIND(SDL_TLSGet);
+ SDL_LIBRARY_FIND(SDL_TLSSet);
+ SDL_LIBRARY_FIND(SDL_GetKeyboardFocus);
+ SDL_LIBRARY_FIND(SDL_GetKeyboardState);
+ SDL_LIBRARY_FIND(SDL_GetModState);
+ SDL_LIBRARY_FIND(SDL_SetModState);
+ SDL_LIBRARY_FIND(SDL_GetKeyFromScancode);
+ SDL_LIBRARY_FIND(SDL_GetScancodeFromKey);
+ SDL_LIBRARY_FIND(SDL_GetScancodeName);
+ SDL_LIBRARY_FIND(SDL_GetScancodeFromName);
+ SDL_LIBRARY_FIND(SDL_GetKeyName);
+ SDL_LIBRARY_FIND(SDL_GetKeyFromName);
+ SDL_LIBRARY_FIND(SDL_StartTextInput);
+ SDL_LIBRARY_FIND(SDL_IsTextInputActive);
+ SDL_LIBRARY_FIND(SDL_StopTextInput);
+ SDL_LIBRARY_FIND(SDL_SetTextInputRect);
+ SDL_LIBRARY_FIND(SDL_HasScreenKeyboardSupport);
+ SDL_LIBRARY_FIND(SDL_IsScreenKeyboardShown);
+ SDL_LIBRARY_FIND(SDL_GameControllerAddMapping);
+ SDL_LIBRARY_FIND(SDL_GameControllerMappingForGUID);
+ SDL_LIBRARY_FIND(SDL_GameControllerMapping);
+ SDL_LIBRARY_FIND(SDL_IsGameController);
+ SDL_LIBRARY_FIND(SDL_GameControllerNameForIndex);
+ SDL_LIBRARY_FIND(SDL_GameControllerOpen);
+ SDL_LIBRARY_FIND(SDL_GameControllerName);
+ SDL_LIBRARY_FIND(SDL_GameControllerGetAttached);
+ SDL_LIBRARY_FIND(SDL_GameControllerGetJoystick);
+ SDL_LIBRARY_FIND(SDL_GameControllerEventState);
+ SDL_LIBRARY_FIND(SDL_GameControllerUpdate);
+ SDL_LIBRARY_FIND(SDL_GameControllerGetAxisFromString);
+ SDL_LIBRARY_FIND(SDL_GameControllerGetButtonFromString);
+ SDL_LIBRARY_FIND(SDL_GameControllerGetButton);
+ SDL_LIBRARY_FIND(SDL_GameControllerClose);
+ SDL_LIBRARY_FIND(SDL_GetNumAudioDrivers);
+ SDL_LIBRARY_FIND(SDL_GetAudioDriver);
+ SDL_LIBRARY_FIND(SDL_AudioInit);
+ SDL_LIBRARY_FIND(SDL_AudioQuit);
+ SDL_LIBRARY_FIND(SDL_GetCurrentAudioDriver);
+ SDL_LIBRARY_FIND(SDL_OpenAudio);
+ SDL_LIBRARY_FIND(SDL_GetNumAudioDevices);
+ SDL_LIBRARY_FIND(SDL_GetAudioDeviceName);
+ SDL_LIBRARY_FIND(SDL_OpenAudioDevice);
+ SDL_LIBRARY_FIND(SDL_GetAudioStatus);
+ SDL_LIBRARY_FIND(SDL_PauseAudio);
+ SDL_LIBRARY_FIND(SDL_PauseAudioDevice);
+ SDL_LIBRARY_FIND(SDL_LoadWAV_RW);
+ SDL_LIBRARY_FIND(SDL_FreeWAV);
+ SDL_LIBRARY_FIND(SDL_BuildAudioCVT);
+ SDL_LIBRARY_FIND(SDL_ConvertAudio);
+ SDL_LIBRARY_FIND(SDL_MixAudio);
+ SDL_LIBRARY_FIND(SDL_MixAudioFormat);
+ SDL_LIBRARY_FIND(SDL_LockAudio);
+ SDL_LIBRARY_FIND(SDL_LockAudioDevice);
+ SDL_LIBRARY_FIND(SDL_UnlockAudio);
+ SDL_LIBRARY_FIND(SDL_UnlockAudioDevice);
+ SDL_LIBRARY_FIND(SDL_CloseAudio);
+ SDL_LIBRARY_FIND(SDL_CloseAudioDevice);
+ SDL_LIBRARY_FIND(SDL_GetNumVideoDrivers);
+ SDL_LIBRARY_FIND(SDL_GetVideoDriver);
+ SDL_LIBRARY_FIND(SDL_VideoInit);
+ SDL_LIBRARY_FIND(SDL_VideoQuit);
+ SDL_LIBRARY_FIND(SDL_GetCurrentVideoDriver);
+ SDL_LIBRARY_FIND(SDL_GetNumVideoDisplays);
+ SDL_LIBRARY_FIND(SDL_GetDisplayName);
+ SDL_LIBRARY_FIND(SDL_GetDisplayBounds);
+ SDL_LIBRARY_FIND(SDL_GetNumDisplayModes);
+ SDL_LIBRARY_FIND(SDL_GetDisplayMode);
+ SDL_LIBRARY_FIND(SDL_GetDesktopDisplayMode);
+ SDL_LIBRARY_FIND(SDL_GetCurrentDisplayMode);
+ SDL_LIBRARY_FIND(SDL_GetClosestDisplayMode);
+ SDL_LIBRARY_FIND(SDL_GetWindowDisplayIndex);
+ SDL_LIBRARY_FIND(SDL_SetWindowDisplayMode);
+ SDL_LIBRARY_FIND(SDL_GetWindowDisplayMode);
+ SDL_LIBRARY_FIND(SDL_GetWindowPixelFormat);
+ SDL_LIBRARY_FIND(SDL_CreateWindow);
+ SDL_LIBRARY_FIND(SDL_CreateWindowFrom);
+ SDL_LIBRARY_FIND(SDL_GetWindowID);
+ SDL_LIBRARY_FIND(SDL_GetWindowFromID);
+ SDL_LIBRARY_FIND(SDL_GetWindowFlags);
+ SDL_LIBRARY_FIND(SDL_SetWindowTitle);
+ SDL_LIBRARY_FIND(SDL_GetWindowTitle);
+ SDL_LIBRARY_FIND(SDL_SetWindowIcon);
+ SDL_LIBRARY_FIND(SDL_GetWindowData);
+ SDL_LIBRARY_FIND(SDL_SetWindowPosition);
+ SDL_LIBRARY_FIND(SDL_GetWindowPosition);
+ SDL_LIBRARY_FIND(SDL_SetWindowSize);
+ SDL_LIBRARY_FIND(SDL_GetWindowSize);
+ SDL_LIBRARY_FIND(SDL_SetWindowMinimumSize);
+ SDL_LIBRARY_FIND(SDL_GetWindowMinimumSize);
+ SDL_LIBRARY_FIND(SDL_SetWindowMaximumSize);
+ SDL_LIBRARY_FIND(SDL_GetWindowMaximumSize);
+ SDL_LIBRARY_FIND(SDL_SetWindowBordered);
+ SDL_LIBRARY_FIND(SDL_ShowWindow);
+ SDL_LIBRARY_FIND(SDL_HideWindow);
+ SDL_LIBRARY_FIND(SDL_RaiseWindow);
+ SDL_LIBRARY_FIND(SDL_MaximizeWindow);
+ SDL_LIBRARY_FIND(SDL_MinimizeWindow);
+ SDL_LIBRARY_FIND(SDL_RestoreWindow);
+ SDL_LIBRARY_FIND(SDL_SetWindowFullscreen);
+ SDL_LIBRARY_FIND(SDL_GetWindowSurface);
+ SDL_LIBRARY_FIND(SDL_UpdateWindowSurface);
+ SDL_LIBRARY_FIND(SDL_UpdateWindowSurfaceRects);
+ SDL_LIBRARY_FIND(SDL_SetWindowGrab);
+ SDL_LIBRARY_FIND(SDL_GetWindowGrab);
+ SDL_LIBRARY_FIND(SDL_SetWindowBrightness);
+ SDL_LIBRARY_FIND(SDL_GetWindowBrightness);
+ SDL_LIBRARY_FIND(SDL_SetWindowGammaRamp);
+ SDL_LIBRARY_FIND(SDL_GetWindowGammaRamp);
+ SDL_LIBRARY_FIND(SDL_DestroyWindow);
+ SDL_LIBRARY_FIND(SDL_IsScreenSaverEnabled);
+ SDL_LIBRARY_FIND(SDL_EnableScreenSaver);
+ SDL_LIBRARY_FIND(SDL_DisableScreenSaver);
+ SDL_LIBRARY_FIND(SDL_GL_LoadLibrary);
+ SDL_LIBRARY_FIND(SDL_GL_GetProcAddress);
+ SDL_LIBRARY_FIND(SDL_GL_UnloadLibrary);
+ SDL_LIBRARY_FIND(SDL_GL_ExtensionSupported);
+ SDL_LIBRARY_FIND(SDL_GL_SetAttribute);
+ SDL_LIBRARY_FIND(SDL_GL_GetAttribute);
+ SDL_LIBRARY_FIND(SDL_GL_CreateContext);
+ SDL_LIBRARY_FIND(SDL_GL_MakeCurrent);
+ SDL_LIBRARY_FIND(SDL_GL_GetCurrentContext);
+ SDL_LIBRARY_FIND(SDL_GL_SetSwapInterval);
+ SDL_LIBRARY_FIND(SDL_GL_GetSwapInterval);
+ SDL_LIBRARY_FIND(SDL_GL_SwapWindow);
+ SDL_LIBRARY_FIND(SDL_GL_DeleteContext);
+ SDL_LIBRARY_FIND(SDL_RWFromFile);
+ SDL_LIBRARY_FIND(SDL_RWFromFP);
+ SDL_LIBRARY_FIND(SDL_RWFromFP);
+ SDL_LIBRARY_FIND(SDL_RWFromMem);
+ SDL_LIBRARY_FIND(SDL_RWFromConstMem);
+ SDL_LIBRARY_FIND(SDL_AllocRW);
+ SDL_LIBRARY_FIND(SDL_FreeRW);
+ SDL_LIBRARY_FIND(SDL_ReadU8);
+ SDL_LIBRARY_FIND(SDL_ReadLE16);
+ SDL_LIBRARY_FIND(SDL_ReadBE16);
+ SDL_LIBRARY_FIND(SDL_ReadLE32);
+ SDL_LIBRARY_FIND(SDL_ReadBE32);
+ SDL_LIBRARY_FIND(SDL_ReadLE64);
+ SDL_LIBRARY_FIND(SDL_ReadBE64);
+ SDL_LIBRARY_FIND(SDL_WriteU8);
+ SDL_LIBRARY_FIND(SDL_WriteLE16);
+ SDL_LIBRARY_FIND(SDL_WriteBE16);
+ SDL_LIBRARY_FIND(SDL_WriteLE32);
+ SDL_LIBRARY_FIND(SDL_WriteBE32);
+ SDL_LIBRARY_FIND(SDL_WriteLE64);
+ SDL_LIBRARY_FIND(SDL_WriteBE64);
+ SDL_LIBRARY_FIND(SDL_Init);
+ SDL_LIBRARY_FIND(SDL_InitSubSystem);
+ SDL_LIBRARY_FIND(SDL_QuitSubSystem);
+ SDL_LIBRARY_FIND(SDL_WasInit);
+ SDL_LIBRARY_FIND(SDL_Quit);
+ SDL_LIBRARY_FIND(SDL_GetVersion);
+ SDL_LIBRARY_FIND(SDL_GetRevision);
+ SDL_LIBRARY_FIND(SDL_GetRevisionNumber);
+ SDL_LIBRARY_FIND(SDL_GetTicks);
+ SDL_LIBRARY_FIND(SDL_GetPerformanceCounter);
+ SDL_LIBRARY_FIND(SDL_GetPerformanceFrequency);
+ SDL_LIBRARY_FIND(SDL_Delay);
+ SDL_LIBRARY_FIND(SDL_AddTimer);
+ SDL_LIBRARY_FIND(SDL_RemoveTimer);
+ SDL_LIBRARY_FIND(SDL_SetHintWithPriority);
+ SDL_LIBRARY_FIND(SDL_SetHint);
+ SDL_LIBRARY_FIND(SDL_GetHint);
+ SDL_LIBRARY_FIND(SDL_AddHintCallback);
+ SDL_LIBRARY_FIND(SDL_DelHintCallback);
+ SDL_LIBRARY_FIND(SDL_ClearHints);
+ SDL_LIBRARY_FIND(SDL_NumJoysticks);
+ SDL_LIBRARY_FIND(SDL_JoystickNameForIndex);
+ SDL_LIBRARY_FIND(SDL_JoystickOpen);
+ SDL_LIBRARY_FIND(SDL_JoystickName);
+ SDL_LIBRARY_FIND(SDL_JoystickGetDeviceGUID);
+ SDL_LIBRARY_FIND(SDL_JoystickGetGUID);
+ SDL_LIBRARY_FIND(SDL_JoystickGetGUIDFromString);
+ SDL_LIBRARY_FIND(SDL_JoystickGetAttached);
+ SDL_LIBRARY_FIND(SDL_JoystickInstanceID);
+ SDL_LIBRARY_FIND(SDL_JoystickNumAxes);
+ SDL_LIBRARY_FIND(SDL_JoystickNumBalls);
+ SDL_LIBRARY_FIND(SDL_JoystickNumHats);
+ SDL_LIBRARY_FIND(SDL_JoystickNumButtons);
+ SDL_LIBRARY_FIND(SDL_JoystickUpdate);
+ SDL_LIBRARY_FIND(SDL_JoystickEventState);
+ SDL_LIBRARY_FIND(SDL_JoystickGetAxis);
+ SDL_LIBRARY_FIND(SDL_JoystickGetHat);
+ SDL_LIBRARY_FIND(SDL_JoystickGetBall);
+ SDL_LIBRARY_FIND(SDL_JoystickGetButton);
+ SDL_LIBRARY_FIND(SDL_JoystickClose);
+ SDL_LIBRARY_FIND(SDL_RecordGesture);
+ SDL_LIBRARY_FIND(SDL_SaveAllDollarTemplates);
+ SDL_LIBRARY_FIND(SDL_SaveDollarTemplate);
+ SDL_LIBRARY_FIND(SDL_LoadDollarTemplates);
+ SDL_LIBRARY_FIND(SDL_NumHaptics);
+ SDL_LIBRARY_FIND(SDL_HapticName);
+ SDL_LIBRARY_FIND(SDL_HapticOpen);
+ SDL_LIBRARY_FIND(SDL_HapticOpened);
+ SDL_LIBRARY_FIND(SDL_HapticIndex);
+ SDL_LIBRARY_FIND(SDL_MouseIsHaptic);
+ SDL_LIBRARY_FIND(SDL_HapticOpenFromMouse);
+ SDL_LIBRARY_FIND(SDL_JoystickIsHaptic);
+ SDL_LIBRARY_FIND(SDL_HapticOpenFromJoystick);
+ SDL_LIBRARY_FIND(SDL_HapticClose);
+ SDL_LIBRARY_FIND(SDL_HapticNumEffects);
+ SDL_LIBRARY_FIND(SDL_HapticNumEffectsPlaying);
+ SDL_LIBRARY_FIND(SDL_HapticNumAxes);
+ SDL_LIBRARY_FIND(SDL_HapticEffectSupported);
+ SDL_LIBRARY_FIND(SDL_HapticNewEffect);
+ SDL_LIBRARY_FIND(SDL_HapticUpdateEffect);
+ SDL_LIBRARY_FIND(SDL_HapticRunEffect);
+ SDL_LIBRARY_FIND(SDL_HapticStopEffect);
+ SDL_LIBRARY_FIND(SDL_HapticDestroyEffect);
+ SDL_LIBRARY_FIND(SDL_HapticGetEffectStatus);
+ SDL_LIBRARY_FIND(SDL_HapticSetGain);
+ SDL_LIBRARY_FIND(SDL_HapticSetAutocenter);
+ SDL_LIBRARY_FIND(SDL_HapticPause);
+ SDL_LIBRARY_FIND(SDL_HapticUnpause);
+ SDL_LIBRARY_FIND(SDL_HapticStopAll);
+ SDL_LIBRARY_FIND(SDL_HapticRumbleSupported);
+ SDL_LIBRARY_FIND(SDL_HapticRumbleInit);
+ SDL_LIBRARY_FIND(SDL_HapticRumblePlay);
+ SDL_LIBRARY_FIND(SDL_HapticRumbleStop);
+ SDL_LIBRARY_FIND(SDL_ShowMessageBox);
+ SDL_LIBRARY_FIND(SDL_ShowSimpleMessageBox);
+ SDL_LIBRARY_FIND(SDL_PixelFormatEnumToMasks);
+ SDL_LIBRARY_FIND(SDL_MasksToPixelFormatEnum);
+ SDL_LIBRARY_FIND(SDL_AllocFormat);
+ SDL_LIBRARY_FIND(SDL_FreeFormat);
+ SDL_LIBRARY_FIND(SDL_AllocPalette);
+ SDL_LIBRARY_FIND(SDL_SetPixelFormatPalette);
+ SDL_LIBRARY_FIND(SDL_SetPaletteColors);
+ SDL_LIBRARY_FIND(SDL_FreePalette);
+ SDL_LIBRARY_FIND(SDL_MapRGB);
+ SDL_LIBRARY_FIND(SDL_MapRGBA);
+ SDL_LIBRARY_FIND(SDL_GetRGB);
+ SDL_LIBRARY_FIND(SDL_GetRGBA);
+ SDL_LIBRARY_FIND(SDL_CalculateGammaRamp);
+ SDL_LIBRARY_FIND(SDL_GetPowerInfo);
+ SDL_LIBRARY_FIND(SDL_GetCPUCount);
+ SDL_LIBRARY_FIND(SDL_GetCPUCacheLineSize);
+ SDL_LIBRARY_FIND(SDL_HasRDTSC);
+ SDL_LIBRARY_FIND(SDL_HasAltiVec);
+ SDL_LIBRARY_FIND(SDL_HasMMX);
+ SDL_LIBRARY_FIND(SDL_Has3DNow);
+ SDL_LIBRARY_FIND(SDL_HasSSE);
+ SDL_LIBRARY_FIND(SDL_HasSSE2);
+ SDL_LIBRARY_FIND(SDL_HasSSE3);
+ SDL_LIBRARY_FIND(SDL_HasSSE41);
+ SDL_LIBRARY_FIND(SDL_HasSSE42);
+ SDL_LIBRARY_FIND(SDL_GetNumTouchDevices);
+ SDL_LIBRARY_FIND(SDL_GetTouchDevice);
+ SDL_LIBRARY_FIND(SDL_GetNumTouchFingers);
+ SDL_LIBRARY_FIND(SDL_GetTouchFinger);
+ SDL_LIBRARY_FIND(SDL_SetError);
+ SDL_LIBRARY_FIND(SDL_GetError);
+ SDL_LIBRARY_FIND(SDL_ClearError);
+ SDL_LIBRARY_FIND(SDL_Error);
+ SDL_LIBRARY_FIND(SDL_SetClipboardText);
+ SDL_LIBRARY_FIND(SDL_GetClipboardText);
+ SDL_LIBRARY_FIND(SDL_HasClipboardText);
+ SDL_LIBRARY_FIND(SDL_GetWindowWMInfo);
+
+ result = SDLEW_SUCCESS;
+
+ return result;
+}