├── LICENSE ├── README.md ├── cdefs.lua ├── defines.lua ├── dev └── create-init.lua ├── init.lua ├── rocks └── sdl2-scm-1.rockspec └── test ├── audio ├── arugh.wav ├── audiocallback.c └── test-wav.lua └── video ├── lena.bmp └── test-bmp.lua /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert) 2 | Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu) 3 | Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu) 4 | Copyright (c) 2011-2013 NYU (Clement Farabet) 5 | Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston) 6 | Copyright (c) 2006 Idiap Research Institute (Samy Bengio) 7 | Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz) 8 | 9 | All rights reserved. 10 | 11 | Redistribution and use in source and binary forms, with or without 12 | modification, are permitted provided that the following conditions are met: 13 | 14 | 1. Redistributions of source code must retain the above copyright 15 | notice, this list of conditions and the following disclaimer. 16 | 17 | 2. Redistributions in binary form must reproduce the above copyright 18 | notice, this list of conditions and the following disclaimer in the 19 | documentation and/or other materials provided with the distribution. 20 | 21 | 3. Neither the names of Deepmind Technologies, NYU, NEC Laboratories America 22 | and IDIAP Research Institute nor the names of its contributors may be 23 | used to endorse or promote products derived from this software without 24 | specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | sdl2-ffi 2 | ======== 3 | 4 | A LuaJIT interface to SDL2 5 | 6 | # Installation # 7 | 8 | First, make sure SDL2 is installed on your system. This package only requires the binary shared libraries (.so, .dylib, .dll). 9 | Please see your package management system to install SDL2. You can also download yourself binaries on the 10 | [SDL2 web page](http://libsdl.org/download-2.0.php) 11 | 12 | ```sh 13 | luarocks install https://raw.github.com/torch/sdl2-ffi/master/rocks/sdl2-scm-1.rockspec 14 | ``` 15 | 16 | *Note*: this SDL interface supports only SDL2, not SDL 1.2. 17 | 18 | # Usage # 19 | 20 | ```lua 21 | local sdl = require 'sdl2' 22 | sdl.init(sdl.INIT_VIDEO) 23 | ... 24 | ``` 25 | 26 | All SDL C functions are available in the `sdl` namespace returned by require. The only difference is the naming, which is not prefixed 27 | by `SDL_` anymore. The same goes for all C defines (like `SDL_INIT_VIDEO`, which can now be accessed with `sdl.INIT_VIDEO`). 28 | 29 | Although the interface is quite complete, there are still few defines not ported in this package. Fill free to post a message about it, 30 | or to request pulls. 31 | 32 | 33 | -------------------------------------------------------------------------------- /cdefs.lua: -------------------------------------------------------------------------------- 1 | -- Cut and paste from the C preprocessor output 2 | -- Removed inline/defined functions which are not supported by luajit 3 | -- Instead, those are defined into defines.lua 4 | -- Note there are some tests here and there to stay cross-platform 5 | 6 | local ffi = require 'ffi' 7 | 8 | ffi.cdef[[ 9 | typedef struct _FILE FILE; 10 | ]] 11 | 12 | ffi.cdef[[ 13 | 14 | const char * SDL_GetPlatform (void); 15 | typedef enum 16 | { 17 | SDL_FALSE = 0, 18 | SDL_TRUE = 1 19 | } SDL_bool; 20 | typedef int8_t Sint8; 21 | typedef uint8_t Uint8; 22 | typedef int16_t Sint16; 23 | typedef uint16_t Uint16; 24 | typedef int32_t Sint32; 25 | typedef uint32_t Uint32; 26 | typedef int64_t Sint64; 27 | typedef uint64_t Uint64; 28 | typedef int SDL_dummy_uint8[(sizeof(Uint8) == 1) * 2 - 1]; 29 | typedef int SDL_dummy_sint8[(sizeof(Sint8) == 1) * 2 - 1]; 30 | typedef int SDL_dummy_uint16[(sizeof(Uint16) == 2) * 2 - 1]; 31 | typedef int SDL_dummy_sint16[(sizeof(Sint16) == 2) * 2 - 1]; 32 | typedef int SDL_dummy_uint32[(sizeof(Uint32) == 4) * 2 - 1]; 33 | typedef int SDL_dummy_sint32[(sizeof(Sint32) == 4) * 2 - 1]; 34 | typedef int SDL_dummy_uint64[(sizeof(Uint64) == 8) * 2 - 1]; 35 | typedef int SDL_dummy_sint64[(sizeof(Sint64) == 8) * 2 - 1]; 36 | typedef enum 37 | { 38 | DUMMY_ENUM_VALUE 39 | } SDL_DUMMY_ENUM; 40 | typedef int SDL_dummy_enum[(sizeof(SDL_DUMMY_ENUM) == sizeof(int)) * 2 - 1]; 41 | void * SDL_malloc(size_t size); 42 | void * SDL_calloc(size_t nmemb, size_t size); 43 | void * SDL_realloc(void *mem, size_t size); 44 | void SDL_free(void *mem); 45 | char * SDL_getenv(const char *name); 46 | int SDL_setenv(const char *name, const char *value, int overwrite); 47 | void SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *)); 48 | int SDL_abs(int x); 49 | int SDL_isdigit(int x); 50 | int SDL_isspace(int x); 51 | int SDL_toupper(int x); 52 | int SDL_tolower(int x); 53 | void * SDL_memset(void *dst, int c, size_t len); 54 | void * SDL_memcpy(void *dst, const void *src, size_t len); 55 | void * SDL_memmove(void *dst, const void *src, size_t len); 56 | int SDL_memcmp(const void *s1, const void *s2, size_t len); 57 | size_t SDL_wcslen(const wchar_t *wstr); 58 | size_t SDL_wcslcpy(wchar_t *dst, const wchar_t *src, size_t maxlen); 59 | size_t SDL_wcslcat(wchar_t *dst, const wchar_t *src, size_t maxlen); 60 | size_t SDL_strlen(const char *str); 61 | size_t SDL_strlcpy(char *dst, const char *src, size_t maxlen); 62 | size_t SDL_utf8strlcpy(char *dst, const char *src, size_t dst_bytes); 63 | size_t SDL_strlcat(char *dst, const char *src, size_t maxlen); 64 | char * SDL_strdup(const char *str); 65 | char * SDL_strrev(char *str); 66 | char * SDL_strupr(char *str); 67 | char * SDL_strlwr(char *str); 68 | char * SDL_strchr(const char *str, int c); 69 | char * SDL_strrchr(const char *str, int c); 70 | char * SDL_strstr(const char *haystack, const char *needle); 71 | char * SDL_itoa(int value, char *str, int radix); 72 | char * SDL_uitoa(unsigned int value, char *str, int radix); 73 | char * SDL_ltoa(long value, char *str, int radix); 74 | char * SDL_ultoa(unsigned long value, char *str, int radix); 75 | char * SDL_lltoa(Sint64 value, char *str, int radix); 76 | char * SDL_ulltoa(Uint64 value, char *str, int radix); 77 | int SDL_atoi(const char *str); 78 | double SDL_atof(const char *str); 79 | long SDL_strtol(const char *str, char **endp, int base); 80 | unsigned long SDL_strtoul(const char *str, char **endp, int base); 81 | Sint64 SDL_strtoll(const char *str, char **endp, int base); 82 | Uint64 SDL_strtoull(const char *str, char **endp, int base); 83 | double SDL_strtod(const char *str, char **endp); 84 | int SDL_strcmp(const char *str1, const char *str2); 85 | int SDL_strncmp(const char *str1, const char *str2, size_t maxlen); 86 | int SDL_strcasecmp(const char *str1, const char *str2); 87 | int SDL_strncasecmp(const char *str1, const char *str2, size_t len); 88 | int SDL_sscanf(const char *text, const char *fmt, ...); 89 | int SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...); 90 | int SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap); 91 | double SDL_atan(double x); 92 | double SDL_atan2(double x, double y); 93 | double SDL_ceil(double x); 94 | double SDL_copysign(double x, double y); 95 | double SDL_cos(double x); 96 | float SDL_cosf(float x); 97 | double SDL_fabs(double x); 98 | double SDL_floor(double x); 99 | double SDL_log(double x); 100 | double SDL_pow(double x, double y); 101 | double SDL_scalbn(double x, int n); 102 | double SDL_sin(double x); 103 | float SDL_sinf(float x); 104 | double SDL_sqrt(double x); 105 | typedef struct _SDL_iconv_t *SDL_iconv_t; 106 | SDL_iconv_t SDL_iconv_open(const char *tocode, 107 | const char *fromcode); 108 | int SDL_iconv_close(SDL_iconv_t cd); 109 | size_t SDL_iconv(SDL_iconv_t cd, const char **inbuf, 110 | size_t * inbytesleft, char **outbuf, 111 | size_t * outbytesleft); 112 | char * SDL_iconv_string(const char *tocode, 113 | const char *fromcode, 114 | const char *inbuf, 115 | size_t inbytesleft); 116 | int SDL_main(int argc, char *argv[]); 117 | void SDL_SetMainReady(void); 118 | typedef enum 119 | { 120 | SDL_ASSERTION_RETRY, 121 | SDL_ASSERTION_BREAK, 122 | SDL_ASSERTION_ABORT, 123 | SDL_ASSERTION_IGNORE, 124 | SDL_ASSERTION_ALWAYS_IGNORE 125 | } SDL_assert_state; 126 | typedef struct SDL_assert_data 127 | { 128 | int always_ignore; 129 | unsigned int trigger_count; 130 | const char *condition; 131 | const char *filename; 132 | int linenum; 133 | const char *function; 134 | const struct SDL_assert_data *next; 135 | } SDL_assert_data; 136 | SDL_assert_state SDL_ReportAssertion(SDL_assert_data *, 137 | const char *, 138 | const char *, int); 139 | typedef SDL_assert_state ( *SDL_AssertionHandler)( 140 | const SDL_assert_data* data, void* userdata); 141 | void SDL_SetAssertionHandler( 142 | SDL_AssertionHandler handler, 143 | void *userdata); 144 | const SDL_assert_data * SDL_GetAssertionReport(void); 145 | void SDL_ResetAssertionReport(void); 146 | typedef int SDL_SpinLock; 147 | SDL_bool SDL_AtomicTryLock(SDL_SpinLock *lock); 148 | void SDL_AtomicLock(SDL_SpinLock *lock); 149 | void SDL_AtomicUnlock(SDL_SpinLock *lock); 150 | typedef struct { int value; } SDL_atomic_t; 151 | int SDL_SetError(const char *fmt, ...); 152 | const char * SDL_GetError(void); 153 | void SDL_ClearError(void); 154 | typedef enum 155 | { 156 | SDL_ENOMEM, 157 | SDL_EFREAD, 158 | SDL_EFWRITE, 159 | SDL_EFSEEK, 160 | SDL_UNSUPPORTED, 161 | SDL_LASTERROR 162 | } SDL_errorcode; 163 | int SDL_Error(SDL_errorcode code); 164 | struct SDL_mutex; 165 | typedef struct SDL_mutex SDL_mutex; 166 | SDL_mutex * SDL_CreateMutex(void); 167 | int SDL_LockMutex(SDL_mutex * mutex); 168 | int SDL_TryLockMutex(SDL_mutex * mutex); 169 | int SDL_UnlockMutex(SDL_mutex * mutex); 170 | void SDL_DestroyMutex(SDL_mutex * mutex); 171 | struct SDL_semaphore; 172 | typedef struct SDL_semaphore SDL_sem; 173 | SDL_sem * SDL_CreateSemaphore(Uint32 initial_value); 174 | void SDL_DestroySemaphore(SDL_sem * sem); 175 | int SDL_SemWait(SDL_sem * sem); 176 | int SDL_SemTryWait(SDL_sem * sem); 177 | int SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms); 178 | int SDL_SemPost(SDL_sem * sem); 179 | Uint32 SDL_SemValue(SDL_sem * sem); 180 | struct SDL_cond; 181 | typedef struct SDL_cond SDL_cond; 182 | SDL_cond * SDL_CreateCond(void); 183 | void SDL_DestroyCond(SDL_cond * cond); 184 | int SDL_CondSignal(SDL_cond * cond); 185 | int SDL_CondBroadcast(SDL_cond * cond); 186 | int SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); 187 | int SDL_CondWaitTimeout(SDL_cond * cond, 188 | SDL_mutex * mutex, Uint32 ms); 189 | struct SDL_Thread; 190 | typedef struct SDL_Thread SDL_Thread; 191 | typedef unsigned long SDL_threadID; 192 | typedef unsigned int SDL_TLSID; 193 | typedef enum { 194 | SDL_THREAD_PRIORITY_LOW, 195 | SDL_THREAD_PRIORITY_NORMAL, 196 | SDL_THREAD_PRIORITY_HIGH 197 | } SDL_ThreadPriority; 198 | typedef int ( * SDL_ThreadFunction) (void *data); 199 | ]] 200 | 201 | if ffi.os == 'Windows' then 202 | ffi.cdef[[ 203 | 204 | typedef uintptr_t (*pfnSDL_CurrentBeginThread) (void *, unsigned, 205 | unsigned (*func)(void*), 206 | void *arg, unsigned, 207 | unsigned *threadID); 208 | 209 | typedef void (*pfnSDL_CurrentEndThread) (unsigned code); 210 | 211 | uintptr_t _beginthreadex(void *, unsigned, 212 | unsigned (*func)(void*), 213 | void *arg, unsigned, 214 | unsigned *threadID); 215 | 216 | void _endthreadex(unsigned retval); 217 | 218 | /* note: this fails. why? 219 | pfnSDL_CurrentBeginThread _beginthreadex; 220 | pfnSDL_CurrentEndThread _endthreadex; 221 | */ 222 | 223 | SDL_Thread * 224 | SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, 225 | pfnSDL_CurrentBeginThread pfnBeginThread, 226 | pfnSDL_CurrentEndThread pfnEndThread); 227 | ]] 228 | else 229 | ffi.cdef[[ 230 | SDL_Thread * 231 | SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); 232 | ]] 233 | end 234 | 235 | ffi.cdef[[ 236 | const char * SDL_GetThreadName(SDL_Thread *thread); 237 | SDL_threadID SDL_ThreadID(void); 238 | SDL_threadID SDL_GetThreadID(SDL_Thread * thread); 239 | int SDL_SetThreadPriority(SDL_ThreadPriority priority); 240 | void SDL_WaitThread(SDL_Thread * thread, int *status); 241 | SDL_TLSID SDL_TLSCreate(void); 242 | void * SDL_TLSGet(SDL_TLSID id); 243 | int SDL_TLSSet(SDL_TLSID id, const void *value, void (*destructor)(void*)); 244 | typedef struct SDL_RWops 245 | { 246 | Sint64 ( * size) (struct SDL_RWops * context); 247 | Sint64 ( * seek) (struct SDL_RWops * context, Sint64 offset, 248 | int whence); 249 | size_t ( * read) (struct SDL_RWops * context, void *ptr, 250 | size_t size, size_t maxnum); 251 | size_t ( * write) (struct SDL_RWops * context, const void *ptr, 252 | size_t size, size_t num); 253 | int ( * close) (struct SDL_RWops * context); 254 | Uint32 type; 255 | union 256 | { 257 | struct 258 | { 259 | SDL_bool autoclose; 260 | FILE *fp; 261 | } stdio; 262 | struct 263 | { 264 | Uint8 *base; 265 | Uint8 *here; 266 | Uint8 *stop; 267 | } mem; 268 | struct 269 | { 270 | void *data1; 271 | void *data2; 272 | } unknown; 273 | } hidden; 274 | } SDL_RWops; 275 | SDL_RWops * SDL_RWFromFile(const char *file, 276 | const char *mode); 277 | SDL_RWops * SDL_RWFromFP(FILE * fp, 278 | SDL_bool autoclose); 279 | SDL_RWops * SDL_RWFromMem(void *mem, int size); 280 | SDL_RWops * SDL_RWFromConstMem(const void *mem, 281 | int size); 282 | SDL_RWops * SDL_AllocRW(void); 283 | void SDL_FreeRW(SDL_RWops * area); 284 | Uint8 SDL_ReadU8(SDL_RWops * src); 285 | Uint16 SDL_ReadLE16(SDL_RWops * src); 286 | Uint16 SDL_ReadBE16(SDL_RWops * src); 287 | Uint32 SDL_ReadLE32(SDL_RWops * src); 288 | Uint32 SDL_ReadBE32(SDL_RWops * src); 289 | Uint64 SDL_ReadLE64(SDL_RWops * src); 290 | Uint64 SDL_ReadBE64(SDL_RWops * src); 291 | size_t SDL_WriteU8(SDL_RWops * dst, Uint8 value); 292 | size_t SDL_WriteLE16(SDL_RWops * dst, Uint16 value); 293 | size_t SDL_WriteBE16(SDL_RWops * dst, Uint16 value); 294 | size_t SDL_WriteLE32(SDL_RWops * dst, Uint32 value); 295 | size_t SDL_WriteBE32(SDL_RWops * dst, Uint32 value); 296 | size_t SDL_WriteLE64(SDL_RWops * dst, Uint64 value); 297 | size_t SDL_WriteBE64(SDL_RWops * dst, Uint64 value); 298 | typedef Uint16 SDL_AudioFormat; 299 | typedef void ( * SDL_AudioCallback) (void *userdata, Uint8 * stream, 300 | int len); 301 | typedef struct SDL_AudioSpec 302 | { 303 | int freq; 304 | SDL_AudioFormat format; 305 | Uint8 channels; 306 | Uint8 silence; 307 | Uint16 samples; 308 | Uint16 padding; 309 | Uint32 size; 310 | SDL_AudioCallback callback; 311 | void *userdata; 312 | } SDL_AudioSpec; 313 | struct SDL_AudioCVT; 314 | typedef void ( * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, 315 | SDL_AudioFormat format); 316 | typedef struct SDL_AudioCVT 317 | { 318 | int needed; 319 | SDL_AudioFormat src_format; 320 | SDL_AudioFormat dst_format; 321 | double rate_incr; 322 | Uint8 *buf; 323 | int len; 324 | int len_cvt; 325 | int len_mult; 326 | double len_ratio; 327 | SDL_AudioFilter filters[10]; 328 | int filter_index; 329 | } __attribute__((packed)) SDL_AudioCVT; 330 | int SDL_GetNumAudioDrivers(void); 331 | const char * SDL_GetAudioDriver(int index); 332 | int SDL_AudioInit(const char *driver_name); 333 | void SDL_AudioQuit(void); 334 | const char * SDL_GetCurrentAudioDriver(void); 335 | int SDL_OpenAudio(SDL_AudioSpec * desired, 336 | SDL_AudioSpec * obtained); 337 | typedef Uint32 SDL_AudioDeviceID; 338 | int SDL_GetNumAudioDevices(int iscapture); 339 | const char * SDL_GetAudioDeviceName(int index, 340 | int iscapture); 341 | SDL_AudioDeviceID SDL_OpenAudioDevice(const char 342 | *device, 343 | int iscapture, 344 | const 345 | SDL_AudioSpec * 346 | desired, 347 | SDL_AudioSpec * 348 | obtained, 349 | int 350 | allowed_changes); 351 | typedef enum 352 | { 353 | SDL_AUDIO_STOPPED = 0, 354 | SDL_AUDIO_PLAYING, 355 | SDL_AUDIO_PAUSED 356 | } SDL_AudioStatus; 357 | SDL_AudioStatus SDL_GetAudioStatus(void); 358 | SDL_AudioStatus 359 | SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev); 360 | void SDL_PauseAudio(int pause_on); 361 | void SDL_PauseAudioDevice(SDL_AudioDeviceID dev, 362 | int pause_on); 363 | SDL_AudioSpec * SDL_LoadWAV_RW(SDL_RWops * src, 364 | int freesrc, 365 | SDL_AudioSpec * spec, 366 | Uint8 ** audio_buf, 367 | Uint32 * audio_len); 368 | void SDL_FreeWAV(Uint8 * audio_buf); 369 | int SDL_BuildAudioCVT(SDL_AudioCVT * cvt, 370 | SDL_AudioFormat src_format, 371 | Uint8 src_channels, 372 | int src_rate, 373 | SDL_AudioFormat dst_format, 374 | Uint8 dst_channels, 375 | int dst_rate); 376 | int SDL_ConvertAudio(SDL_AudioCVT * cvt); 377 | void SDL_MixAudio(Uint8 * dst, const Uint8 * src, 378 | Uint32 len, int volume); 379 | void SDL_MixAudioFormat(Uint8 * dst, 380 | const Uint8 * src, 381 | SDL_AudioFormat format, 382 | Uint32 len, int volume); 383 | void SDL_LockAudio(void); 384 | void SDL_LockAudioDevice(SDL_AudioDeviceID dev); 385 | void SDL_UnlockAudio(void); 386 | void SDL_UnlockAudioDevice(SDL_AudioDeviceID dev); 387 | void SDL_CloseAudio(void); 388 | void SDL_CloseAudioDevice(SDL_AudioDeviceID dev); 389 | int SDL_SetClipboardText(const char *text); 390 | char * SDL_GetClipboardText(void); 391 | SDL_bool SDL_HasClipboardText(void); 392 | int SDL_GetCPUCount(void); 393 | int SDL_GetCPUCacheLineSize(void); 394 | SDL_bool SDL_HasRDTSC(void); 395 | SDL_bool SDL_HasAltiVec(void); 396 | SDL_bool SDL_HasMMX(void); 397 | SDL_bool SDL_Has3DNow(void); 398 | SDL_bool SDL_HasSSE(void); 399 | SDL_bool SDL_HasSSE2(void); 400 | SDL_bool SDL_HasSSE3(void); 401 | SDL_bool SDL_HasSSE41(void); 402 | SDL_bool SDL_HasSSE42(void); 403 | enum 404 | { 405 | SDL_PIXELTYPE_UNKNOWN, 406 | SDL_PIXELTYPE_INDEX1, 407 | SDL_PIXELTYPE_INDEX4, 408 | SDL_PIXELTYPE_INDEX8, 409 | SDL_PIXELTYPE_PACKED8, 410 | SDL_PIXELTYPE_PACKED16, 411 | SDL_PIXELTYPE_PACKED32, 412 | SDL_PIXELTYPE_ARRAYU8, 413 | SDL_PIXELTYPE_ARRAYU16, 414 | SDL_PIXELTYPE_ARRAYU32, 415 | SDL_PIXELTYPE_ARRAYF16, 416 | SDL_PIXELTYPE_ARRAYF32 417 | }; 418 | enum 419 | { 420 | SDL_BITMAPORDER_NONE, 421 | SDL_BITMAPORDER_4321, 422 | SDL_BITMAPORDER_1234 423 | }; 424 | enum 425 | { 426 | SDL_PACKEDORDER_NONE, 427 | SDL_PACKEDORDER_XRGB, 428 | SDL_PACKEDORDER_RGBX, 429 | SDL_PACKEDORDER_ARGB, 430 | SDL_PACKEDORDER_RGBA, 431 | SDL_PACKEDORDER_XBGR, 432 | SDL_PACKEDORDER_BGRX, 433 | SDL_PACKEDORDER_ABGR, 434 | SDL_PACKEDORDER_BGRA 435 | }; 436 | enum 437 | { 438 | SDL_ARRAYORDER_NONE, 439 | SDL_ARRAYORDER_RGB, 440 | SDL_ARRAYORDER_RGBA, 441 | SDL_ARRAYORDER_ARGB, 442 | SDL_ARRAYORDER_BGR, 443 | SDL_ARRAYORDER_BGRA, 444 | SDL_ARRAYORDER_ABGR 445 | }; 446 | enum 447 | { 448 | SDL_PACKEDLAYOUT_NONE, 449 | SDL_PACKEDLAYOUT_332, 450 | SDL_PACKEDLAYOUT_4444, 451 | SDL_PACKEDLAYOUT_1555, 452 | SDL_PACKEDLAYOUT_5551, 453 | SDL_PACKEDLAYOUT_565, 454 | SDL_PACKEDLAYOUT_8888, 455 | SDL_PACKEDLAYOUT_2101010, 456 | SDL_PACKEDLAYOUT_1010102 457 | }; 458 | enum 459 | { 460 | SDL_PIXELFORMAT_UNKNOWN, 461 | SDL_PIXELFORMAT_INDEX1LSB = 462 | ((1 << 28) | ((SDL_PIXELTYPE_INDEX1) << 24) | ((SDL_BITMAPORDER_4321) << 20) | ((0) << 16) | ((1) << 8) | ((0) << 0)), 463 | SDL_PIXELFORMAT_INDEX1MSB = 464 | ((1 << 28) | ((SDL_PIXELTYPE_INDEX1) << 24) | ((SDL_BITMAPORDER_1234) << 20) | ((0) << 16) | ((1) << 8) | ((0) << 0)), 465 | SDL_PIXELFORMAT_INDEX4LSB = 466 | ((1 << 28) | ((SDL_PIXELTYPE_INDEX4) << 24) | ((SDL_BITMAPORDER_4321) << 20) | ((0) << 16) | ((4) << 8) | ((0) << 0)), 467 | SDL_PIXELFORMAT_INDEX4MSB = 468 | ((1 << 28) | ((SDL_PIXELTYPE_INDEX4) << 24) | ((SDL_BITMAPORDER_1234) << 20) | ((0) << 16) | ((4) << 8) | ((0) << 0)), 469 | SDL_PIXELFORMAT_INDEX8 = 470 | ((1 << 28) | ((SDL_PIXELTYPE_INDEX8) << 24) | ((0) << 20) | ((0) << 16) | ((8) << 8) | ((1) << 0)), 471 | SDL_PIXELFORMAT_RGB332 = 472 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED8) << 24) | ((SDL_PACKEDORDER_XRGB) << 20) | ((SDL_PACKEDLAYOUT_332) << 16) | ((8) << 8) | ((1) << 0)), 473 | SDL_PIXELFORMAT_RGB444 = 474 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_XRGB) << 20) | ((SDL_PACKEDLAYOUT_4444) << 16) | ((12) << 8) | ((2) << 0)), 475 | SDL_PIXELFORMAT_RGB555 = 476 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_XRGB) << 20) | ((SDL_PACKEDLAYOUT_1555) << 16) | ((15) << 8) | ((2) << 0)), 477 | SDL_PIXELFORMAT_BGR555 = 478 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_XBGR) << 20) | ((SDL_PACKEDLAYOUT_1555) << 16) | ((15) << 8) | ((2) << 0)), 479 | SDL_PIXELFORMAT_ARGB4444 = 480 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_ARGB) << 20) | ((SDL_PACKEDLAYOUT_4444) << 16) | ((16) << 8) | ((2) << 0)), 481 | SDL_PIXELFORMAT_RGBA4444 = 482 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_RGBA) << 20) | ((SDL_PACKEDLAYOUT_4444) << 16) | ((16) << 8) | ((2) << 0)), 483 | SDL_PIXELFORMAT_ABGR4444 = 484 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_ABGR) << 20) | ((SDL_PACKEDLAYOUT_4444) << 16) | ((16) << 8) | ((2) << 0)), 485 | SDL_PIXELFORMAT_BGRA4444 = 486 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_BGRA) << 20) | ((SDL_PACKEDLAYOUT_4444) << 16) | ((16) << 8) | ((2) << 0)), 487 | SDL_PIXELFORMAT_ARGB1555 = 488 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_ARGB) << 20) | ((SDL_PACKEDLAYOUT_1555) << 16) | ((16) << 8) | ((2) << 0)), 489 | SDL_PIXELFORMAT_RGBA5551 = 490 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_RGBA) << 20) | ((SDL_PACKEDLAYOUT_5551) << 16) | ((16) << 8) | ((2) << 0)), 491 | SDL_PIXELFORMAT_ABGR1555 = 492 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_ABGR) << 20) | ((SDL_PACKEDLAYOUT_1555) << 16) | ((16) << 8) | ((2) << 0)), 493 | SDL_PIXELFORMAT_BGRA5551 = 494 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_BGRA) << 20) | ((SDL_PACKEDLAYOUT_5551) << 16) | ((16) << 8) | ((2) << 0)), 495 | SDL_PIXELFORMAT_RGB565 = 496 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_XRGB) << 20) | ((SDL_PACKEDLAYOUT_565) << 16) | ((16) << 8) | ((2) << 0)), 497 | SDL_PIXELFORMAT_BGR565 = 498 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED16) << 24) | ((SDL_PACKEDORDER_XBGR) << 20) | ((SDL_PACKEDLAYOUT_565) << 16) | ((16) << 8) | ((2) << 0)), 499 | SDL_PIXELFORMAT_RGB24 = 500 | ((1 << 28) | ((SDL_PIXELTYPE_ARRAYU8) << 24) | ((SDL_ARRAYORDER_RGB) << 20) | ((0) << 16) | ((24) << 8) | ((3) << 0)), 501 | SDL_PIXELFORMAT_BGR24 = 502 | ((1 << 28) | ((SDL_PIXELTYPE_ARRAYU8) << 24) | ((SDL_ARRAYORDER_BGR) << 20) | ((0) << 16) | ((24) << 8) | ((3) << 0)), 503 | SDL_PIXELFORMAT_RGB888 = 504 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_XRGB) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((24) << 8) | ((4) << 0)), 505 | SDL_PIXELFORMAT_RGBX8888 = 506 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_RGBX) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((24) << 8) | ((4) << 0)), 507 | SDL_PIXELFORMAT_BGR888 = 508 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_XBGR) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((24) << 8) | ((4) << 0)), 509 | SDL_PIXELFORMAT_BGRX8888 = 510 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_BGRX) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((24) << 8) | ((4) << 0)), 511 | SDL_PIXELFORMAT_ARGB8888 = 512 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_ARGB) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((32) << 8) | ((4) << 0)), 513 | SDL_PIXELFORMAT_RGBA8888 = 514 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_RGBA) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((32) << 8) | ((4) << 0)), 515 | SDL_PIXELFORMAT_ABGR8888 = 516 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_ABGR) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((32) << 8) | ((4) << 0)), 517 | SDL_PIXELFORMAT_BGRA8888 = 518 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_BGRA) << 20) | ((SDL_PACKEDLAYOUT_8888) << 16) | ((32) << 8) | ((4) << 0)), 519 | SDL_PIXELFORMAT_ARGB2101010 = 520 | ((1 << 28) | ((SDL_PIXELTYPE_PACKED32) << 24) | ((SDL_PACKEDORDER_ARGB) << 20) | ((SDL_PACKEDLAYOUT_2101010) << 16) | ((32) << 8) | ((4) << 0)), 521 | SDL_PIXELFORMAT_YV12 = 522 | ((((Uint32)(((Uint8)(('Y'))))) << 0) | (((Uint32)(((Uint8)(('V'))))) << 8) | (((Uint32)(((Uint8)(('1'))))) << 16) | (((Uint32)(((Uint8)(('2'))))) << 24)), 523 | SDL_PIXELFORMAT_IYUV = 524 | ((((Uint32)(((Uint8)(('I'))))) << 0) | (((Uint32)(((Uint8)(('Y'))))) << 8) | (((Uint32)(((Uint8)(('U'))))) << 16) | (((Uint32)(((Uint8)(('V'))))) << 24)), 525 | SDL_PIXELFORMAT_YUY2 = 526 | ((((Uint32)(((Uint8)(('Y'))))) << 0) | (((Uint32)(((Uint8)(('U'))))) << 8) | (((Uint32)(((Uint8)(('Y'))))) << 16) | (((Uint32)(((Uint8)(('2'))))) << 24)), 527 | SDL_PIXELFORMAT_UYVY = 528 | ((((Uint32)(((Uint8)(('U'))))) << 0) | (((Uint32)(((Uint8)(('Y'))))) << 8) | (((Uint32)(((Uint8)(('V'))))) << 16) | (((Uint32)(((Uint8)(('Y'))))) << 24)), 529 | SDL_PIXELFORMAT_YVYU = 530 | ((((Uint32)(((Uint8)(('Y'))))) << 0) | (((Uint32)(((Uint8)(('V'))))) << 8) | (((Uint32)(((Uint8)(('Y'))))) << 16) | (((Uint32)(((Uint8)(('U'))))) << 24)) 531 | }; 532 | typedef struct SDL_Color 533 | { 534 | Uint8 r; 535 | Uint8 g; 536 | Uint8 b; 537 | Uint8 a; 538 | } SDL_Color; 539 | typedef struct SDL_Palette 540 | { 541 | int ncolors; 542 | SDL_Color *colors; 543 | Uint32 version; 544 | int refcount; 545 | } SDL_Palette; 546 | typedef struct SDL_PixelFormat 547 | { 548 | Uint32 format; 549 | SDL_Palette *palette; 550 | Uint8 BitsPerPixel; 551 | Uint8 BytesPerPixel; 552 | Uint8 padding[2]; 553 | Uint32 Rmask; 554 | Uint32 Gmask; 555 | Uint32 Bmask; 556 | Uint32 Amask; 557 | Uint8 Rloss; 558 | Uint8 Gloss; 559 | Uint8 Bloss; 560 | Uint8 Aloss; 561 | Uint8 Rshift; 562 | Uint8 Gshift; 563 | Uint8 Bshift; 564 | Uint8 Ashift; 565 | int refcount; 566 | struct SDL_PixelFormat *next; 567 | } SDL_PixelFormat; 568 | const char* SDL_GetPixelFormatName(Uint32 format); 569 | SDL_bool SDL_PixelFormatEnumToMasks(Uint32 format, 570 | int *bpp, 571 | Uint32 * Rmask, 572 | Uint32 * Gmask, 573 | Uint32 * Bmask, 574 | Uint32 * Amask); 575 | Uint32 SDL_MasksToPixelFormatEnum(int bpp, 576 | Uint32 Rmask, 577 | Uint32 Gmask, 578 | Uint32 Bmask, 579 | Uint32 Amask); 580 | SDL_PixelFormat * SDL_AllocFormat(Uint32 pixel_format); 581 | void SDL_FreeFormat(SDL_PixelFormat *format); 582 | SDL_Palette * SDL_AllocPalette(int ncolors); 583 | int SDL_SetPixelFormatPalette(SDL_PixelFormat * format, 584 | SDL_Palette *palette); 585 | int SDL_SetPaletteColors(SDL_Palette * palette, 586 | const SDL_Color * colors, 587 | int firstcolor, int ncolors); 588 | void SDL_FreePalette(SDL_Palette * palette); 589 | Uint32 SDL_MapRGB(const SDL_PixelFormat * format, 590 | Uint8 r, Uint8 g, Uint8 b); 591 | Uint32 SDL_MapRGBA(const SDL_PixelFormat * format, 592 | Uint8 r, Uint8 g, Uint8 b, 593 | Uint8 a); 594 | void SDL_GetRGB(Uint32 pixel, 595 | const SDL_PixelFormat * format, 596 | Uint8 * r, Uint8 * g, Uint8 * b); 597 | void SDL_GetRGBA(Uint32 pixel, 598 | const SDL_PixelFormat * format, 599 | Uint8 * r, Uint8 * g, Uint8 * b, 600 | Uint8 * a); 601 | void SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); 602 | typedef struct 603 | { 604 | int x; 605 | int y; 606 | } SDL_Point; 607 | typedef struct SDL_Rect 608 | { 609 | int x, y; 610 | int w, h; 611 | } SDL_Rect; 612 | SDL_bool SDL_HasIntersection(const SDL_Rect * A, 613 | const SDL_Rect * B); 614 | SDL_bool SDL_IntersectRect(const SDL_Rect * A, 615 | const SDL_Rect * B, 616 | SDL_Rect * result); 617 | void SDL_UnionRect(const SDL_Rect * A, 618 | const SDL_Rect * B, 619 | SDL_Rect * result); 620 | SDL_bool SDL_EnclosePoints(const SDL_Point * points, 621 | int count, 622 | const SDL_Rect * clip, 623 | SDL_Rect * result); 624 | SDL_bool SDL_IntersectRectAndLine(const SDL_Rect * 625 | rect, int *X1, 626 | int *Y1, int *X2, 627 | int *Y2); 628 | typedef enum 629 | { 630 | SDL_BLENDMODE_NONE = 0x00000000, 631 | SDL_BLENDMODE_BLEND = 0x00000001, 632 | SDL_BLENDMODE_ADD = 0x00000002, 633 | SDL_BLENDMODE_MOD = 0x00000004 634 | } SDL_BlendMode; 635 | typedef struct SDL_Surface 636 | { 637 | Uint32 flags; 638 | SDL_PixelFormat *format; 639 | int w, h; 640 | int pitch; 641 | void *pixels; 642 | void *userdata; 643 | int locked; 644 | void *lock_data; 645 | SDL_Rect clip_rect; 646 | struct SDL_BlitMap *map; 647 | int refcount; 648 | } SDL_Surface; 649 | typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, 650 | struct SDL_Surface * dst, SDL_Rect * dstrect); 651 | SDL_Surface * SDL_CreateRGBSurface 652 | (Uint32 flags, int width, int height, int depth, 653 | Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); 654 | SDL_Surface * SDL_CreateRGBSurfaceFrom(void *pixels, 655 | int width, 656 | int height, 657 | int depth, 658 | int pitch, 659 | Uint32 Rmask, 660 | Uint32 Gmask, 661 | Uint32 Bmask, 662 | Uint32 Amask); 663 | void SDL_FreeSurface(SDL_Surface * surface); 664 | int SDL_SetSurfacePalette(SDL_Surface * surface, 665 | SDL_Palette * palette); 666 | int SDL_LockSurface(SDL_Surface * surface); 667 | void SDL_UnlockSurface(SDL_Surface * surface); 668 | SDL_Surface * SDL_LoadBMP_RW(SDL_RWops * src, 669 | int freesrc); 670 | int SDL_SaveBMP_RW 671 | (SDL_Surface * surface, SDL_RWops * dst, int freedst); 672 | int SDL_SetSurfaceRLE(SDL_Surface * surface, 673 | int flag); 674 | int SDL_SetColorKey(SDL_Surface * surface, 675 | int flag, Uint32 key); 676 | int SDL_GetColorKey(SDL_Surface * surface, 677 | Uint32 * key); 678 | int SDL_SetSurfaceColorMod(SDL_Surface * surface, 679 | Uint8 r, Uint8 g, Uint8 b); 680 | int SDL_GetSurfaceColorMod(SDL_Surface * surface, 681 | Uint8 * r, Uint8 * g, 682 | Uint8 * b); 683 | int SDL_SetSurfaceAlphaMod(SDL_Surface * surface, 684 | Uint8 alpha); 685 | int SDL_GetSurfaceAlphaMod(SDL_Surface * surface, 686 | Uint8 * alpha); 687 | int SDL_SetSurfaceBlendMode(SDL_Surface * surface, 688 | SDL_BlendMode blendMode); 689 | int SDL_GetSurfaceBlendMode(SDL_Surface * surface, 690 | SDL_BlendMode *blendMode); 691 | SDL_bool SDL_SetClipRect(SDL_Surface * surface, 692 | const SDL_Rect * rect); 693 | void SDL_GetClipRect(SDL_Surface * surface, 694 | SDL_Rect * rect); 695 | SDL_Surface * SDL_ConvertSurface 696 | (SDL_Surface * src, SDL_PixelFormat * fmt, Uint32 flags); 697 | SDL_Surface * SDL_ConvertSurfaceFormat 698 | (SDL_Surface * src, Uint32 pixel_format, Uint32 flags); 699 | int SDL_ConvertPixels(int width, int height, 700 | Uint32 src_format, 701 | const void * src, int src_pitch, 702 | Uint32 dst_format, 703 | void * dst, int dst_pitch); 704 | int SDL_FillRect 705 | (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color); 706 | int SDL_FillRects 707 | (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color); 708 | int SDL_UpperBlit 709 | (SDL_Surface * src, const SDL_Rect * srcrect, 710 | SDL_Surface * dst, SDL_Rect * dstrect); 711 | int SDL_LowerBlit 712 | (SDL_Surface * src, SDL_Rect * srcrect, 713 | SDL_Surface * dst, SDL_Rect * dstrect); 714 | int SDL_SoftStretch(SDL_Surface * src, 715 | const SDL_Rect * srcrect, 716 | SDL_Surface * dst, 717 | const SDL_Rect * dstrect); 718 | int SDL_UpperBlitScaled 719 | (SDL_Surface * src, const SDL_Rect * srcrect, 720 | SDL_Surface * dst, SDL_Rect * dstrect); 721 | int SDL_LowerBlitScaled 722 | (SDL_Surface * src, SDL_Rect * srcrect, 723 | SDL_Surface * dst, SDL_Rect * dstrect); 724 | typedef struct 725 | { 726 | Uint32 format; 727 | int w; 728 | int h; 729 | int refresh_rate; 730 | void *driverdata; 731 | } SDL_DisplayMode; 732 | typedef struct SDL_Window SDL_Window; 733 | typedef enum 734 | { 735 | SDL_WINDOW_FULLSCREEN = 0x00000001, 736 | SDL_WINDOW_OPENGL = 0x00000002, 737 | SDL_WINDOW_SHOWN = 0x00000004, 738 | SDL_WINDOW_HIDDEN = 0x00000008, 739 | SDL_WINDOW_BORDERLESS = 0x00000010, 740 | SDL_WINDOW_RESIZABLE = 0x00000020, 741 | SDL_WINDOW_MINIMIZED = 0x00000040, 742 | SDL_WINDOW_MAXIMIZED = 0x00000080, 743 | SDL_WINDOW_INPUT_GRABBED = 0x00000100, 744 | SDL_WINDOW_INPUT_FOCUS = 0x00000200, 745 | SDL_WINDOW_MOUSE_FOCUS = 0x00000400, 746 | SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), 747 | SDL_WINDOW_FOREIGN = 0x00000800 748 | } SDL_WindowFlags; 749 | typedef enum 750 | { 751 | SDL_WINDOWEVENT_NONE, 752 | SDL_WINDOWEVENT_SHOWN, 753 | SDL_WINDOWEVENT_HIDDEN, 754 | SDL_WINDOWEVENT_EXPOSED, 755 | SDL_WINDOWEVENT_MOVED, 756 | SDL_WINDOWEVENT_RESIZED, 757 | SDL_WINDOWEVENT_SIZE_CHANGED, 758 | SDL_WINDOWEVENT_MINIMIZED, 759 | SDL_WINDOWEVENT_MAXIMIZED, 760 | SDL_WINDOWEVENT_RESTORED, 761 | SDL_WINDOWEVENT_ENTER, 762 | SDL_WINDOWEVENT_LEAVE, 763 | SDL_WINDOWEVENT_FOCUS_GAINED, 764 | SDL_WINDOWEVENT_FOCUS_LOST, 765 | SDL_WINDOWEVENT_CLOSE 766 | } SDL_WindowEventID; 767 | typedef void *SDL_GLContext; 768 | typedef enum 769 | { 770 | SDL_GL_RED_SIZE, 771 | SDL_GL_GREEN_SIZE, 772 | SDL_GL_BLUE_SIZE, 773 | SDL_GL_ALPHA_SIZE, 774 | SDL_GL_BUFFER_SIZE, 775 | SDL_GL_DOUBLEBUFFER, 776 | SDL_GL_DEPTH_SIZE, 777 | SDL_GL_STENCIL_SIZE, 778 | SDL_GL_ACCUM_RED_SIZE, 779 | SDL_GL_ACCUM_GREEN_SIZE, 780 | SDL_GL_ACCUM_BLUE_SIZE, 781 | SDL_GL_ACCUM_ALPHA_SIZE, 782 | SDL_GL_STEREO, 783 | SDL_GL_MULTISAMPLEBUFFERS, 784 | SDL_GL_MULTISAMPLESAMPLES, 785 | SDL_GL_ACCELERATED_VISUAL, 786 | SDL_GL_RETAINED_BACKING, 787 | SDL_GL_CONTEXT_MAJOR_VERSION, 788 | SDL_GL_CONTEXT_MINOR_VERSION, 789 | SDL_GL_CONTEXT_EGL, 790 | SDL_GL_CONTEXT_FLAGS, 791 | SDL_GL_CONTEXT_PROFILE_MASK, 792 | SDL_GL_SHARE_WITH_CURRENT_CONTEXT 793 | } SDL_GLattr; 794 | typedef enum 795 | { 796 | SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, 797 | SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, 798 | SDL_GL_CONTEXT_PROFILE_ES = 0x0004 799 | } SDL_GLprofile; 800 | typedef enum 801 | { 802 | SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, 803 | SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, 804 | SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, 805 | SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 806 | } SDL_GLcontextFlag; 807 | int SDL_GetNumVideoDrivers(void); 808 | const char * SDL_GetVideoDriver(int index); 809 | int SDL_VideoInit(const char *driver_name); 810 | void SDL_VideoQuit(void); 811 | const char * SDL_GetCurrentVideoDriver(void); 812 | int SDL_GetNumVideoDisplays(void); 813 | const char * SDL_GetDisplayName(int displayIndex); 814 | int SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect); 815 | int SDL_GetNumDisplayModes(int displayIndex); 816 | int SDL_GetDisplayMode(int displayIndex, int modeIndex, 817 | SDL_DisplayMode * mode); 818 | int SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); 819 | int SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); 820 | SDL_DisplayMode * SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); 821 | int SDL_GetWindowDisplayIndex(SDL_Window * window); 822 | int SDL_SetWindowDisplayMode(SDL_Window * window, 823 | const SDL_DisplayMode 824 | * mode); 825 | int SDL_GetWindowDisplayMode(SDL_Window * window, 826 | SDL_DisplayMode * mode); 827 | Uint32 SDL_GetWindowPixelFormat(SDL_Window * window); 828 | SDL_Window * SDL_CreateWindow(const char *title, 829 | int x, int y, int w, 830 | int h, Uint32 flags); 831 | SDL_Window * SDL_CreateWindowFrom(const void *data); 832 | Uint32 SDL_GetWindowID(SDL_Window * window); 833 | SDL_Window * SDL_GetWindowFromID(Uint32 id); 834 | Uint32 SDL_GetWindowFlags(SDL_Window * window); 835 | void SDL_SetWindowTitle(SDL_Window * window, 836 | const char *title); 837 | const char * SDL_GetWindowTitle(SDL_Window * window); 838 | void SDL_SetWindowIcon(SDL_Window * window, 839 | SDL_Surface * icon); 840 | void* SDL_SetWindowData(SDL_Window * window, 841 | const char *name, 842 | void *userdata); 843 | void * SDL_GetWindowData(SDL_Window * window, 844 | const char *name); 845 | void SDL_SetWindowPosition(SDL_Window * window, 846 | int x, int y); 847 | void SDL_GetWindowPosition(SDL_Window * window, 848 | int *x, int *y); 849 | void SDL_SetWindowSize(SDL_Window * window, int w, 850 | int h); 851 | void SDL_GetWindowSize(SDL_Window * window, int *w, 852 | int *h); 853 | void SDL_SetWindowMinimumSize(SDL_Window * window, 854 | int min_w, int min_h); 855 | void SDL_GetWindowMinimumSize(SDL_Window * window, 856 | int *w, int *h); 857 | void SDL_SetWindowMaximumSize(SDL_Window * window, 858 | int max_w, int max_h); 859 | void SDL_GetWindowMaximumSize(SDL_Window * window, 860 | int *w, int *h); 861 | void SDL_SetWindowBordered(SDL_Window * window, 862 | SDL_bool bordered); 863 | void SDL_ShowWindow(SDL_Window * window); 864 | void SDL_HideWindow(SDL_Window * window); 865 | void SDL_RaiseWindow(SDL_Window * window); 866 | void SDL_MaximizeWindow(SDL_Window * window); 867 | void SDL_MinimizeWindow(SDL_Window * window); 868 | void SDL_RestoreWindow(SDL_Window * window); 869 | int SDL_SetWindowFullscreen(SDL_Window * window, 870 | Uint32 flags); 871 | SDL_Surface * SDL_GetWindowSurface(SDL_Window * window); 872 | int SDL_UpdateWindowSurface(SDL_Window * window); 873 | int SDL_UpdateWindowSurfaceRects(SDL_Window * window, 874 | const SDL_Rect * rects, 875 | int numrects); 876 | void SDL_SetWindowGrab(SDL_Window * window, 877 | SDL_bool grabbed); 878 | SDL_bool SDL_GetWindowGrab(SDL_Window * window); 879 | int SDL_SetWindowBrightness(SDL_Window * window, float brightness); 880 | float SDL_GetWindowBrightness(SDL_Window * window); 881 | int SDL_SetWindowGammaRamp(SDL_Window * window, 882 | const Uint16 * red, 883 | const Uint16 * green, 884 | const Uint16 * blue); 885 | int SDL_GetWindowGammaRamp(SDL_Window * window, 886 | Uint16 * red, 887 | Uint16 * green, 888 | Uint16 * blue); 889 | void SDL_DestroyWindow(SDL_Window * window); 890 | SDL_bool SDL_IsScreenSaverEnabled(void); 891 | void SDL_EnableScreenSaver(void); 892 | void SDL_DisableScreenSaver(void); 893 | int SDL_GL_LoadLibrary(const char *path); 894 | void * SDL_GL_GetProcAddress(const char *proc); 895 | void SDL_GL_UnloadLibrary(void); 896 | SDL_bool SDL_GL_ExtensionSupported(const char 897 | *extension); 898 | int SDL_GL_SetAttribute(SDL_GLattr attr, int value); 899 | int SDL_GL_GetAttribute(SDL_GLattr attr, int *value); 900 | SDL_GLContext SDL_GL_CreateContext(SDL_Window * 901 | window); 902 | int SDL_GL_MakeCurrent(SDL_Window * window, 903 | SDL_GLContext context); 904 | SDL_Window* SDL_GL_GetCurrentWindow(void); 905 | SDL_GLContext SDL_GL_GetCurrentContext(void); 906 | int SDL_GL_SetSwapInterval(int interval); 907 | int SDL_GL_GetSwapInterval(void); 908 | void SDL_GL_SwapWindow(SDL_Window * window); 909 | void SDL_GL_DeleteContext(SDL_GLContext context); 910 | typedef enum 911 | { 912 | SDL_SCANCODE_UNKNOWN = 0, 913 | SDL_SCANCODE_A = 4, 914 | SDL_SCANCODE_B = 5, 915 | SDL_SCANCODE_C = 6, 916 | SDL_SCANCODE_D = 7, 917 | SDL_SCANCODE_E = 8, 918 | SDL_SCANCODE_F = 9, 919 | SDL_SCANCODE_G = 10, 920 | SDL_SCANCODE_H = 11, 921 | SDL_SCANCODE_I = 12, 922 | SDL_SCANCODE_J = 13, 923 | SDL_SCANCODE_K = 14, 924 | SDL_SCANCODE_L = 15, 925 | SDL_SCANCODE_M = 16, 926 | SDL_SCANCODE_N = 17, 927 | SDL_SCANCODE_O = 18, 928 | SDL_SCANCODE_P = 19, 929 | SDL_SCANCODE_Q = 20, 930 | SDL_SCANCODE_R = 21, 931 | SDL_SCANCODE_S = 22, 932 | SDL_SCANCODE_T = 23, 933 | SDL_SCANCODE_U = 24, 934 | SDL_SCANCODE_V = 25, 935 | SDL_SCANCODE_W = 26, 936 | SDL_SCANCODE_X = 27, 937 | SDL_SCANCODE_Y = 28, 938 | SDL_SCANCODE_Z = 29, 939 | SDL_SCANCODE_1 = 30, 940 | SDL_SCANCODE_2 = 31, 941 | SDL_SCANCODE_3 = 32, 942 | SDL_SCANCODE_4 = 33, 943 | SDL_SCANCODE_5 = 34, 944 | SDL_SCANCODE_6 = 35, 945 | SDL_SCANCODE_7 = 36, 946 | SDL_SCANCODE_8 = 37, 947 | SDL_SCANCODE_9 = 38, 948 | SDL_SCANCODE_0 = 39, 949 | SDL_SCANCODE_RETURN = 40, 950 | SDL_SCANCODE_ESCAPE = 41, 951 | SDL_SCANCODE_BACKSPACE = 42, 952 | SDL_SCANCODE_TAB = 43, 953 | SDL_SCANCODE_SPACE = 44, 954 | SDL_SCANCODE_MINUS = 45, 955 | SDL_SCANCODE_EQUALS = 46, 956 | SDL_SCANCODE_LEFTBRACKET = 47, 957 | SDL_SCANCODE_RIGHTBRACKET = 48, 958 | SDL_SCANCODE_BACKSLASH = 49, 959 | SDL_SCANCODE_NONUSHASH = 50, 960 | SDL_SCANCODE_SEMICOLON = 51, 961 | SDL_SCANCODE_APOSTROPHE = 52, 962 | SDL_SCANCODE_GRAVE = 53, 963 | SDL_SCANCODE_COMMA = 54, 964 | SDL_SCANCODE_PERIOD = 55, 965 | SDL_SCANCODE_SLASH = 56, 966 | SDL_SCANCODE_CAPSLOCK = 57, 967 | SDL_SCANCODE_F1 = 58, 968 | SDL_SCANCODE_F2 = 59, 969 | SDL_SCANCODE_F3 = 60, 970 | SDL_SCANCODE_F4 = 61, 971 | SDL_SCANCODE_F5 = 62, 972 | SDL_SCANCODE_F6 = 63, 973 | SDL_SCANCODE_F7 = 64, 974 | SDL_SCANCODE_F8 = 65, 975 | SDL_SCANCODE_F9 = 66, 976 | SDL_SCANCODE_F10 = 67, 977 | SDL_SCANCODE_F11 = 68, 978 | SDL_SCANCODE_F12 = 69, 979 | SDL_SCANCODE_PRINTSCREEN = 70, 980 | SDL_SCANCODE_SCROLLLOCK = 71, 981 | SDL_SCANCODE_PAUSE = 72, 982 | SDL_SCANCODE_INSERT = 73, 983 | SDL_SCANCODE_HOME = 74, 984 | SDL_SCANCODE_PAGEUP = 75, 985 | SDL_SCANCODE_DELETE = 76, 986 | SDL_SCANCODE_END = 77, 987 | SDL_SCANCODE_PAGEDOWN = 78, 988 | SDL_SCANCODE_RIGHT = 79, 989 | SDL_SCANCODE_LEFT = 80, 990 | SDL_SCANCODE_DOWN = 81, 991 | SDL_SCANCODE_UP = 82, 992 | SDL_SCANCODE_NUMLOCKCLEAR = 83, 993 | SDL_SCANCODE_KP_DIVIDE = 84, 994 | SDL_SCANCODE_KP_MULTIPLY = 85, 995 | SDL_SCANCODE_KP_MINUS = 86, 996 | SDL_SCANCODE_KP_PLUS = 87, 997 | SDL_SCANCODE_KP_ENTER = 88, 998 | SDL_SCANCODE_KP_1 = 89, 999 | SDL_SCANCODE_KP_2 = 90, 1000 | SDL_SCANCODE_KP_3 = 91, 1001 | SDL_SCANCODE_KP_4 = 92, 1002 | SDL_SCANCODE_KP_5 = 93, 1003 | SDL_SCANCODE_KP_6 = 94, 1004 | SDL_SCANCODE_KP_7 = 95, 1005 | SDL_SCANCODE_KP_8 = 96, 1006 | SDL_SCANCODE_KP_9 = 97, 1007 | SDL_SCANCODE_KP_0 = 98, 1008 | SDL_SCANCODE_KP_PERIOD = 99, 1009 | SDL_SCANCODE_NONUSBACKSLASH = 100, 1010 | SDL_SCANCODE_APPLICATION = 101, 1011 | SDL_SCANCODE_POWER = 102, 1012 | SDL_SCANCODE_KP_EQUALS = 103, 1013 | SDL_SCANCODE_F13 = 104, 1014 | SDL_SCANCODE_F14 = 105, 1015 | SDL_SCANCODE_F15 = 106, 1016 | SDL_SCANCODE_F16 = 107, 1017 | SDL_SCANCODE_F17 = 108, 1018 | SDL_SCANCODE_F18 = 109, 1019 | SDL_SCANCODE_F19 = 110, 1020 | SDL_SCANCODE_F20 = 111, 1021 | SDL_SCANCODE_F21 = 112, 1022 | SDL_SCANCODE_F22 = 113, 1023 | SDL_SCANCODE_F23 = 114, 1024 | SDL_SCANCODE_F24 = 115, 1025 | SDL_SCANCODE_EXECUTE = 116, 1026 | SDL_SCANCODE_HELP = 117, 1027 | SDL_SCANCODE_MENU = 118, 1028 | SDL_SCANCODE_SELECT = 119, 1029 | SDL_SCANCODE_STOP = 120, 1030 | SDL_SCANCODE_AGAIN = 121, 1031 | SDL_SCANCODE_UNDO = 122, 1032 | SDL_SCANCODE_CUT = 123, 1033 | SDL_SCANCODE_COPY = 124, 1034 | SDL_SCANCODE_PASTE = 125, 1035 | SDL_SCANCODE_FIND = 126, 1036 | SDL_SCANCODE_MUTE = 127, 1037 | SDL_SCANCODE_VOLUMEUP = 128, 1038 | SDL_SCANCODE_VOLUMEDOWN = 129, 1039 | SDL_SCANCODE_KP_COMMA = 133, 1040 | SDL_SCANCODE_KP_EQUALSAS400 = 134, 1041 | SDL_SCANCODE_INTERNATIONAL1 = 135, 1042 | SDL_SCANCODE_INTERNATIONAL2 = 136, 1043 | SDL_SCANCODE_INTERNATIONAL3 = 137, 1044 | SDL_SCANCODE_INTERNATIONAL4 = 138, 1045 | SDL_SCANCODE_INTERNATIONAL5 = 139, 1046 | SDL_SCANCODE_INTERNATIONAL6 = 140, 1047 | SDL_SCANCODE_INTERNATIONAL7 = 141, 1048 | SDL_SCANCODE_INTERNATIONAL8 = 142, 1049 | SDL_SCANCODE_INTERNATIONAL9 = 143, 1050 | SDL_SCANCODE_LANG1 = 144, 1051 | SDL_SCANCODE_LANG2 = 145, 1052 | SDL_SCANCODE_LANG3 = 146, 1053 | SDL_SCANCODE_LANG4 = 147, 1054 | SDL_SCANCODE_LANG5 = 148, 1055 | SDL_SCANCODE_LANG6 = 149, 1056 | SDL_SCANCODE_LANG7 = 150, 1057 | SDL_SCANCODE_LANG8 = 151, 1058 | SDL_SCANCODE_LANG9 = 152, 1059 | SDL_SCANCODE_ALTERASE = 153, 1060 | SDL_SCANCODE_SYSREQ = 154, 1061 | SDL_SCANCODE_CANCEL = 155, 1062 | SDL_SCANCODE_CLEAR = 156, 1063 | SDL_SCANCODE_PRIOR = 157, 1064 | SDL_SCANCODE_RETURN2 = 158, 1065 | SDL_SCANCODE_SEPARATOR = 159, 1066 | SDL_SCANCODE_OUT = 160, 1067 | SDL_SCANCODE_OPER = 161, 1068 | SDL_SCANCODE_CLEARAGAIN = 162, 1069 | SDL_SCANCODE_CRSEL = 163, 1070 | SDL_SCANCODE_EXSEL = 164, 1071 | SDL_SCANCODE_KP_00 = 176, 1072 | SDL_SCANCODE_KP_000 = 177, 1073 | SDL_SCANCODE_THOUSANDSSEPARATOR = 178, 1074 | SDL_SCANCODE_DECIMALSEPARATOR = 179, 1075 | SDL_SCANCODE_CURRENCYUNIT = 180, 1076 | SDL_SCANCODE_CURRENCYSUBUNIT = 181, 1077 | SDL_SCANCODE_KP_LEFTPAREN = 182, 1078 | SDL_SCANCODE_KP_RIGHTPAREN = 183, 1079 | SDL_SCANCODE_KP_LEFTBRACE = 184, 1080 | SDL_SCANCODE_KP_RIGHTBRACE = 185, 1081 | SDL_SCANCODE_KP_TAB = 186, 1082 | SDL_SCANCODE_KP_BACKSPACE = 187, 1083 | SDL_SCANCODE_KP_A = 188, 1084 | SDL_SCANCODE_KP_B = 189, 1085 | SDL_SCANCODE_KP_C = 190, 1086 | SDL_SCANCODE_KP_D = 191, 1087 | SDL_SCANCODE_KP_E = 192, 1088 | SDL_SCANCODE_KP_F = 193, 1089 | SDL_SCANCODE_KP_XOR = 194, 1090 | SDL_SCANCODE_KP_POWER = 195, 1091 | SDL_SCANCODE_KP_PERCENT = 196, 1092 | SDL_SCANCODE_KP_LESS = 197, 1093 | SDL_SCANCODE_KP_GREATER = 198, 1094 | SDL_SCANCODE_KP_AMPERSAND = 199, 1095 | SDL_SCANCODE_KP_DBLAMPERSAND = 200, 1096 | SDL_SCANCODE_KP_VERTICALBAR = 201, 1097 | SDL_SCANCODE_KP_DBLVERTICALBAR = 202, 1098 | SDL_SCANCODE_KP_COLON = 203, 1099 | SDL_SCANCODE_KP_HASH = 204, 1100 | SDL_SCANCODE_KP_SPACE = 205, 1101 | SDL_SCANCODE_KP_AT = 206, 1102 | SDL_SCANCODE_KP_EXCLAM = 207, 1103 | SDL_SCANCODE_KP_MEMSTORE = 208, 1104 | SDL_SCANCODE_KP_MEMRECALL = 209, 1105 | SDL_SCANCODE_KP_MEMCLEAR = 210, 1106 | SDL_SCANCODE_KP_MEMADD = 211, 1107 | SDL_SCANCODE_KP_MEMSUBTRACT = 212, 1108 | SDL_SCANCODE_KP_MEMMULTIPLY = 213, 1109 | SDL_SCANCODE_KP_MEMDIVIDE = 214, 1110 | SDL_SCANCODE_KP_PLUSMINUS = 215, 1111 | SDL_SCANCODE_KP_CLEAR = 216, 1112 | SDL_SCANCODE_KP_CLEARENTRY = 217, 1113 | SDL_SCANCODE_KP_BINARY = 218, 1114 | SDL_SCANCODE_KP_OCTAL = 219, 1115 | SDL_SCANCODE_KP_DECIMAL = 220, 1116 | SDL_SCANCODE_KP_HEXADECIMAL = 221, 1117 | SDL_SCANCODE_LCTRL = 224, 1118 | SDL_SCANCODE_LSHIFT = 225, 1119 | SDL_SCANCODE_LALT = 226, 1120 | SDL_SCANCODE_LGUI = 227, 1121 | SDL_SCANCODE_RCTRL = 228, 1122 | SDL_SCANCODE_RSHIFT = 229, 1123 | SDL_SCANCODE_RALT = 230, 1124 | SDL_SCANCODE_RGUI = 231, 1125 | SDL_SCANCODE_MODE = 257, 1126 | SDL_SCANCODE_AUDIONEXT = 258, 1127 | SDL_SCANCODE_AUDIOPREV = 259, 1128 | SDL_SCANCODE_AUDIOSTOP = 260, 1129 | SDL_SCANCODE_AUDIOPLAY = 261, 1130 | SDL_SCANCODE_AUDIOMUTE = 262, 1131 | SDL_SCANCODE_MEDIASELECT = 263, 1132 | SDL_SCANCODE_WWW = 264, 1133 | SDL_SCANCODE_MAIL = 265, 1134 | SDL_SCANCODE_CALCULATOR = 266, 1135 | SDL_SCANCODE_COMPUTER = 267, 1136 | SDL_SCANCODE_AC_SEARCH = 268, 1137 | SDL_SCANCODE_AC_HOME = 269, 1138 | SDL_SCANCODE_AC_BACK = 270, 1139 | SDL_SCANCODE_AC_FORWARD = 271, 1140 | SDL_SCANCODE_AC_STOP = 272, 1141 | SDL_SCANCODE_AC_REFRESH = 273, 1142 | SDL_SCANCODE_AC_BOOKMARKS = 274, 1143 | SDL_SCANCODE_BRIGHTNESSDOWN = 275, 1144 | SDL_SCANCODE_BRIGHTNESSUP = 276, 1145 | SDL_SCANCODE_DISPLAYSWITCH = 277, 1146 | SDL_SCANCODE_KBDILLUMTOGGLE = 278, 1147 | SDL_SCANCODE_KBDILLUMDOWN = 279, 1148 | SDL_SCANCODE_KBDILLUMUP = 280, 1149 | SDL_SCANCODE_EJECT = 281, 1150 | SDL_SCANCODE_SLEEP = 282, 1151 | SDL_SCANCODE_APP1 = 283, 1152 | SDL_SCANCODE_APP2 = 284, 1153 | SDL_NUM_SCANCODES = 512 1154 | } SDL_Scancode; 1155 | typedef Sint32 SDL_Keycode; 1156 | enum 1157 | { 1158 | SDLK_UNKNOWN = 0, 1159 | SDLK_RETURN = '\r', 1160 | SDLK_ESCAPE = '\033', 1161 | SDLK_BACKSPACE = '\b', 1162 | SDLK_TAB = '\t', 1163 | SDLK_SPACE = ' ', 1164 | SDLK_EXCLAIM = '!', 1165 | SDLK_QUOTEDBL = '"', 1166 | SDLK_HASH = '#', 1167 | SDLK_PERCENT = '%', 1168 | SDLK_DOLLAR = '$', 1169 | SDLK_AMPERSAND = '&', 1170 | SDLK_QUOTE = '\'', 1171 | SDLK_LEFTPAREN = '(', 1172 | SDLK_RIGHTPAREN = ')', 1173 | SDLK_ASTERISK = '*', 1174 | SDLK_PLUS = '+', 1175 | SDLK_COMMA = ',', 1176 | SDLK_MINUS = '-', 1177 | SDLK_PERIOD = '.', 1178 | SDLK_SLASH = '/', 1179 | SDLK_0 = '0', 1180 | SDLK_1 = '1', 1181 | SDLK_2 = '2', 1182 | SDLK_3 = '3', 1183 | SDLK_4 = '4', 1184 | SDLK_5 = '5', 1185 | SDLK_6 = '6', 1186 | SDLK_7 = '7', 1187 | SDLK_8 = '8', 1188 | SDLK_9 = '9', 1189 | SDLK_COLON = ':', 1190 | SDLK_SEMICOLON = ';', 1191 | SDLK_LESS = '<', 1192 | SDLK_EQUALS = '=', 1193 | SDLK_GREATER = '>', 1194 | SDLK_QUESTION = '?', 1195 | SDLK_AT = '@', 1196 | SDLK_LEFTBRACKET = '[', 1197 | SDLK_BACKSLASH = '\\', 1198 | SDLK_RIGHTBRACKET = ']', 1199 | SDLK_CARET = '^', 1200 | SDLK_UNDERSCORE = '_', 1201 | SDLK_BACKQUOTE = '`', 1202 | SDLK_a = 'a', 1203 | SDLK_b = 'b', 1204 | SDLK_c = 'c', 1205 | SDLK_d = 'd', 1206 | SDLK_e = 'e', 1207 | SDLK_f = 'f', 1208 | SDLK_g = 'g', 1209 | SDLK_h = 'h', 1210 | SDLK_i = 'i', 1211 | SDLK_j = 'j', 1212 | SDLK_k = 'k', 1213 | SDLK_l = 'l', 1214 | SDLK_m = 'm', 1215 | SDLK_n = 'n', 1216 | SDLK_o = 'o', 1217 | SDLK_p = 'p', 1218 | SDLK_q = 'q', 1219 | SDLK_r = 'r', 1220 | SDLK_s = 's', 1221 | SDLK_t = 't', 1222 | SDLK_u = 'u', 1223 | SDLK_v = 'v', 1224 | SDLK_w = 'w', 1225 | SDLK_x = 'x', 1226 | SDLK_y = 'y', 1227 | SDLK_z = 'z', 1228 | SDLK_CAPSLOCK = (SDL_SCANCODE_CAPSLOCK | (1<<30)), 1229 | SDLK_F1 = (SDL_SCANCODE_F1 | (1<<30)), 1230 | SDLK_F2 = (SDL_SCANCODE_F2 | (1<<30)), 1231 | SDLK_F3 = (SDL_SCANCODE_F3 | (1<<30)), 1232 | SDLK_F4 = (SDL_SCANCODE_F4 | (1<<30)), 1233 | SDLK_F5 = (SDL_SCANCODE_F5 | (1<<30)), 1234 | SDLK_F6 = (SDL_SCANCODE_F6 | (1<<30)), 1235 | SDLK_F7 = (SDL_SCANCODE_F7 | (1<<30)), 1236 | SDLK_F8 = (SDL_SCANCODE_F8 | (1<<30)), 1237 | SDLK_F9 = (SDL_SCANCODE_F9 | (1<<30)), 1238 | SDLK_F10 = (SDL_SCANCODE_F10 | (1<<30)), 1239 | SDLK_F11 = (SDL_SCANCODE_F11 | (1<<30)), 1240 | SDLK_F12 = (SDL_SCANCODE_F12 | (1<<30)), 1241 | SDLK_PRINTSCREEN = (SDL_SCANCODE_PRINTSCREEN | (1<<30)), 1242 | SDLK_SCROLLLOCK = (SDL_SCANCODE_SCROLLLOCK | (1<<30)), 1243 | SDLK_PAUSE = (SDL_SCANCODE_PAUSE | (1<<30)), 1244 | SDLK_INSERT = (SDL_SCANCODE_INSERT | (1<<30)), 1245 | SDLK_HOME = (SDL_SCANCODE_HOME | (1<<30)), 1246 | SDLK_PAGEUP = (SDL_SCANCODE_PAGEUP | (1<<30)), 1247 | SDLK_DELETE = '\177', 1248 | SDLK_END = (SDL_SCANCODE_END | (1<<30)), 1249 | SDLK_PAGEDOWN = (SDL_SCANCODE_PAGEDOWN | (1<<30)), 1250 | SDLK_RIGHT = (SDL_SCANCODE_RIGHT | (1<<30)), 1251 | SDLK_LEFT = (SDL_SCANCODE_LEFT | (1<<30)), 1252 | SDLK_DOWN = (SDL_SCANCODE_DOWN | (1<<30)), 1253 | SDLK_UP = (SDL_SCANCODE_UP | (1<<30)), 1254 | SDLK_NUMLOCKCLEAR = (SDL_SCANCODE_NUMLOCKCLEAR | (1<<30)), 1255 | SDLK_KP_DIVIDE = (SDL_SCANCODE_KP_DIVIDE | (1<<30)), 1256 | SDLK_KP_MULTIPLY = (SDL_SCANCODE_KP_MULTIPLY | (1<<30)), 1257 | SDLK_KP_MINUS = (SDL_SCANCODE_KP_MINUS | (1<<30)), 1258 | SDLK_KP_PLUS = (SDL_SCANCODE_KP_PLUS | (1<<30)), 1259 | SDLK_KP_ENTER = (SDL_SCANCODE_KP_ENTER | (1<<30)), 1260 | SDLK_KP_1 = (SDL_SCANCODE_KP_1 | (1<<30)), 1261 | SDLK_KP_2 = (SDL_SCANCODE_KP_2 | (1<<30)), 1262 | SDLK_KP_3 = (SDL_SCANCODE_KP_3 | (1<<30)), 1263 | SDLK_KP_4 = (SDL_SCANCODE_KP_4 | (1<<30)), 1264 | SDLK_KP_5 = (SDL_SCANCODE_KP_5 | (1<<30)), 1265 | SDLK_KP_6 = (SDL_SCANCODE_KP_6 | (1<<30)), 1266 | SDLK_KP_7 = (SDL_SCANCODE_KP_7 | (1<<30)), 1267 | SDLK_KP_8 = (SDL_SCANCODE_KP_8 | (1<<30)), 1268 | SDLK_KP_9 = (SDL_SCANCODE_KP_9 | (1<<30)), 1269 | SDLK_KP_0 = (SDL_SCANCODE_KP_0 | (1<<30)), 1270 | SDLK_KP_PERIOD = (SDL_SCANCODE_KP_PERIOD | (1<<30)), 1271 | SDLK_APPLICATION = (SDL_SCANCODE_APPLICATION | (1<<30)), 1272 | SDLK_POWER = (SDL_SCANCODE_POWER | (1<<30)), 1273 | SDLK_KP_EQUALS = (SDL_SCANCODE_KP_EQUALS | (1<<30)), 1274 | SDLK_F13 = (SDL_SCANCODE_F13 | (1<<30)), 1275 | SDLK_F14 = (SDL_SCANCODE_F14 | (1<<30)), 1276 | SDLK_F15 = (SDL_SCANCODE_F15 | (1<<30)), 1277 | SDLK_F16 = (SDL_SCANCODE_F16 | (1<<30)), 1278 | SDLK_F17 = (SDL_SCANCODE_F17 | (1<<30)), 1279 | SDLK_F18 = (SDL_SCANCODE_F18 | (1<<30)), 1280 | SDLK_F19 = (SDL_SCANCODE_F19 | (1<<30)), 1281 | SDLK_F20 = (SDL_SCANCODE_F20 | (1<<30)), 1282 | SDLK_F21 = (SDL_SCANCODE_F21 | (1<<30)), 1283 | SDLK_F22 = (SDL_SCANCODE_F22 | (1<<30)), 1284 | SDLK_F23 = (SDL_SCANCODE_F23 | (1<<30)), 1285 | SDLK_F24 = (SDL_SCANCODE_F24 | (1<<30)), 1286 | SDLK_EXECUTE = (SDL_SCANCODE_EXECUTE | (1<<30)), 1287 | SDLK_HELP = (SDL_SCANCODE_HELP | (1<<30)), 1288 | SDLK_MENU = (SDL_SCANCODE_MENU | (1<<30)), 1289 | SDLK_SELECT = (SDL_SCANCODE_SELECT | (1<<30)), 1290 | SDLK_STOP = (SDL_SCANCODE_STOP | (1<<30)), 1291 | SDLK_AGAIN = (SDL_SCANCODE_AGAIN | (1<<30)), 1292 | SDLK_UNDO = (SDL_SCANCODE_UNDO | (1<<30)), 1293 | SDLK_CUT = (SDL_SCANCODE_CUT | (1<<30)), 1294 | SDLK_COPY = (SDL_SCANCODE_COPY | (1<<30)), 1295 | SDLK_PASTE = (SDL_SCANCODE_PASTE | (1<<30)), 1296 | SDLK_FIND = (SDL_SCANCODE_FIND | (1<<30)), 1297 | SDLK_MUTE = (SDL_SCANCODE_MUTE | (1<<30)), 1298 | SDLK_VOLUMEUP = (SDL_SCANCODE_VOLUMEUP | (1<<30)), 1299 | SDLK_VOLUMEDOWN = (SDL_SCANCODE_VOLUMEDOWN | (1<<30)), 1300 | SDLK_KP_COMMA = (SDL_SCANCODE_KP_COMMA | (1<<30)), 1301 | SDLK_KP_EQUALSAS400 = 1302 | (SDL_SCANCODE_KP_EQUALSAS400 | (1<<30)), 1303 | SDLK_ALTERASE = (SDL_SCANCODE_ALTERASE | (1<<30)), 1304 | SDLK_SYSREQ = (SDL_SCANCODE_SYSREQ | (1<<30)), 1305 | SDLK_CANCEL = (SDL_SCANCODE_CANCEL | (1<<30)), 1306 | SDLK_CLEAR = (SDL_SCANCODE_CLEAR | (1<<30)), 1307 | SDLK_PRIOR = (SDL_SCANCODE_PRIOR | (1<<30)), 1308 | SDLK_RETURN2 = (SDL_SCANCODE_RETURN2 | (1<<30)), 1309 | SDLK_SEPARATOR = (SDL_SCANCODE_SEPARATOR | (1<<30)), 1310 | SDLK_OUT = (SDL_SCANCODE_OUT | (1<<30)), 1311 | SDLK_OPER = (SDL_SCANCODE_OPER | (1<<30)), 1312 | SDLK_CLEARAGAIN = (SDL_SCANCODE_CLEARAGAIN | (1<<30)), 1313 | SDLK_CRSEL = (SDL_SCANCODE_CRSEL | (1<<30)), 1314 | SDLK_EXSEL = (SDL_SCANCODE_EXSEL | (1<<30)), 1315 | SDLK_KP_00 = (SDL_SCANCODE_KP_00 | (1<<30)), 1316 | SDLK_KP_000 = (SDL_SCANCODE_KP_000 | (1<<30)), 1317 | SDLK_THOUSANDSSEPARATOR = 1318 | (SDL_SCANCODE_THOUSANDSSEPARATOR | (1<<30)), 1319 | SDLK_DECIMALSEPARATOR = 1320 | (SDL_SCANCODE_DECIMALSEPARATOR | (1<<30)), 1321 | SDLK_CURRENCYUNIT = (SDL_SCANCODE_CURRENCYUNIT | (1<<30)), 1322 | SDLK_CURRENCYSUBUNIT = 1323 | (SDL_SCANCODE_CURRENCYSUBUNIT | (1<<30)), 1324 | SDLK_KP_LEFTPAREN = (SDL_SCANCODE_KP_LEFTPAREN | (1<<30)), 1325 | SDLK_KP_RIGHTPAREN = (SDL_SCANCODE_KP_RIGHTPAREN | (1<<30)), 1326 | SDLK_KP_LEFTBRACE = (SDL_SCANCODE_KP_LEFTBRACE | (1<<30)), 1327 | SDLK_KP_RIGHTBRACE = (SDL_SCANCODE_KP_RIGHTBRACE | (1<<30)), 1328 | SDLK_KP_TAB = (SDL_SCANCODE_KP_TAB | (1<<30)), 1329 | SDLK_KP_BACKSPACE = (SDL_SCANCODE_KP_BACKSPACE | (1<<30)), 1330 | SDLK_KP_A = (SDL_SCANCODE_KP_A | (1<<30)), 1331 | SDLK_KP_B = (SDL_SCANCODE_KP_B | (1<<30)), 1332 | SDLK_KP_C = (SDL_SCANCODE_KP_C | (1<<30)), 1333 | SDLK_KP_D = (SDL_SCANCODE_KP_D | (1<<30)), 1334 | SDLK_KP_E = (SDL_SCANCODE_KP_E | (1<<30)), 1335 | SDLK_KP_F = (SDL_SCANCODE_KP_F | (1<<30)), 1336 | SDLK_KP_XOR = (SDL_SCANCODE_KP_XOR | (1<<30)), 1337 | SDLK_KP_POWER = (SDL_SCANCODE_KP_POWER | (1<<30)), 1338 | SDLK_KP_PERCENT = (SDL_SCANCODE_KP_PERCENT | (1<<30)), 1339 | SDLK_KP_LESS = (SDL_SCANCODE_KP_LESS | (1<<30)), 1340 | SDLK_KP_GREATER = (SDL_SCANCODE_KP_GREATER | (1<<30)), 1341 | SDLK_KP_AMPERSAND = (SDL_SCANCODE_KP_AMPERSAND | (1<<30)), 1342 | SDLK_KP_DBLAMPERSAND = 1343 | (SDL_SCANCODE_KP_DBLAMPERSAND | (1<<30)), 1344 | SDLK_KP_VERTICALBAR = 1345 | (SDL_SCANCODE_KP_VERTICALBAR | (1<<30)), 1346 | SDLK_KP_DBLVERTICALBAR = 1347 | (SDL_SCANCODE_KP_DBLVERTICALBAR | (1<<30)), 1348 | SDLK_KP_COLON = (SDL_SCANCODE_KP_COLON | (1<<30)), 1349 | SDLK_KP_HASH = (SDL_SCANCODE_KP_HASH | (1<<30)), 1350 | SDLK_KP_SPACE = (SDL_SCANCODE_KP_SPACE | (1<<30)), 1351 | SDLK_KP_AT = (SDL_SCANCODE_KP_AT | (1<<30)), 1352 | SDLK_KP_EXCLAM = (SDL_SCANCODE_KP_EXCLAM | (1<<30)), 1353 | SDLK_KP_MEMSTORE = (SDL_SCANCODE_KP_MEMSTORE | (1<<30)), 1354 | SDLK_KP_MEMRECALL = (SDL_SCANCODE_KP_MEMRECALL | (1<<30)), 1355 | SDLK_KP_MEMCLEAR = (SDL_SCANCODE_KP_MEMCLEAR | (1<<30)), 1356 | SDLK_KP_MEMADD = (SDL_SCANCODE_KP_MEMADD | (1<<30)), 1357 | SDLK_KP_MEMSUBTRACT = 1358 | (SDL_SCANCODE_KP_MEMSUBTRACT | (1<<30)), 1359 | SDLK_KP_MEMMULTIPLY = 1360 | (SDL_SCANCODE_KP_MEMMULTIPLY | (1<<30)), 1361 | SDLK_KP_MEMDIVIDE = (SDL_SCANCODE_KP_MEMDIVIDE | (1<<30)), 1362 | SDLK_KP_PLUSMINUS = (SDL_SCANCODE_KP_PLUSMINUS | (1<<30)), 1363 | SDLK_KP_CLEAR = (SDL_SCANCODE_KP_CLEAR | (1<<30)), 1364 | SDLK_KP_CLEARENTRY = (SDL_SCANCODE_KP_CLEARENTRY | (1<<30)), 1365 | SDLK_KP_BINARY = (SDL_SCANCODE_KP_BINARY | (1<<30)), 1366 | SDLK_KP_OCTAL = (SDL_SCANCODE_KP_OCTAL | (1<<30)), 1367 | SDLK_KP_DECIMAL = (SDL_SCANCODE_KP_DECIMAL | (1<<30)), 1368 | SDLK_KP_HEXADECIMAL = 1369 | (SDL_SCANCODE_KP_HEXADECIMAL | (1<<30)), 1370 | SDLK_LCTRL = (SDL_SCANCODE_LCTRL | (1<<30)), 1371 | SDLK_LSHIFT = (SDL_SCANCODE_LSHIFT | (1<<30)), 1372 | SDLK_LALT = (SDL_SCANCODE_LALT | (1<<30)), 1373 | SDLK_LGUI = (SDL_SCANCODE_LGUI | (1<<30)), 1374 | SDLK_RCTRL = (SDL_SCANCODE_RCTRL | (1<<30)), 1375 | SDLK_RSHIFT = (SDL_SCANCODE_RSHIFT | (1<<30)), 1376 | SDLK_RALT = (SDL_SCANCODE_RALT | (1<<30)), 1377 | SDLK_RGUI = (SDL_SCANCODE_RGUI | (1<<30)), 1378 | SDLK_MODE = (SDL_SCANCODE_MODE | (1<<30)), 1379 | SDLK_AUDIONEXT = (SDL_SCANCODE_AUDIONEXT | (1<<30)), 1380 | SDLK_AUDIOPREV = (SDL_SCANCODE_AUDIOPREV | (1<<30)), 1381 | SDLK_AUDIOSTOP = (SDL_SCANCODE_AUDIOSTOP | (1<<30)), 1382 | SDLK_AUDIOPLAY = (SDL_SCANCODE_AUDIOPLAY | (1<<30)), 1383 | SDLK_AUDIOMUTE = (SDL_SCANCODE_AUDIOMUTE | (1<<30)), 1384 | SDLK_MEDIASELECT = (SDL_SCANCODE_MEDIASELECT | (1<<30)), 1385 | SDLK_WWW = (SDL_SCANCODE_WWW | (1<<30)), 1386 | SDLK_MAIL = (SDL_SCANCODE_MAIL | (1<<30)), 1387 | SDLK_CALCULATOR = (SDL_SCANCODE_CALCULATOR | (1<<30)), 1388 | SDLK_COMPUTER = (SDL_SCANCODE_COMPUTER | (1<<30)), 1389 | SDLK_AC_SEARCH = (SDL_SCANCODE_AC_SEARCH | (1<<30)), 1390 | SDLK_AC_HOME = (SDL_SCANCODE_AC_HOME | (1<<30)), 1391 | SDLK_AC_BACK = (SDL_SCANCODE_AC_BACK | (1<<30)), 1392 | SDLK_AC_FORWARD = (SDL_SCANCODE_AC_FORWARD | (1<<30)), 1393 | SDLK_AC_STOP = (SDL_SCANCODE_AC_STOP | (1<<30)), 1394 | SDLK_AC_REFRESH = (SDL_SCANCODE_AC_REFRESH | (1<<30)), 1395 | SDLK_AC_BOOKMARKS = (SDL_SCANCODE_AC_BOOKMARKS | (1<<30)), 1396 | SDLK_BRIGHTNESSDOWN = 1397 | (SDL_SCANCODE_BRIGHTNESSDOWN | (1<<30)), 1398 | SDLK_BRIGHTNESSUP = (SDL_SCANCODE_BRIGHTNESSUP | (1<<30)), 1399 | SDLK_DISPLAYSWITCH = (SDL_SCANCODE_DISPLAYSWITCH | (1<<30)), 1400 | SDLK_KBDILLUMTOGGLE = 1401 | (SDL_SCANCODE_KBDILLUMTOGGLE | (1<<30)), 1402 | SDLK_KBDILLUMDOWN = (SDL_SCANCODE_KBDILLUMDOWN | (1<<30)), 1403 | SDLK_KBDILLUMUP = (SDL_SCANCODE_KBDILLUMUP | (1<<30)), 1404 | SDLK_EJECT = (SDL_SCANCODE_EJECT | (1<<30)), 1405 | SDLK_SLEEP = (SDL_SCANCODE_SLEEP | (1<<30)) 1406 | }; 1407 | typedef enum 1408 | { 1409 | SDL_KMOD_NONE = 0x0000, 1410 | SDL_KMOD_LSHIFT = 0x0001, 1411 | SDL_KMOD_RSHIFT = 0x0002, 1412 | SDL_KMOD_LCTRL = 0x0040, 1413 | SDL_KMOD_RCTRL = 0x0080, 1414 | SDL_KMOD_LALT = 0x0100, 1415 | SDL_KMOD_RALT = 0x0200, 1416 | SDL_KMOD_LGUI = 0x0400, 1417 | SDL_KMOD_RGUI = 0x0800, 1418 | SDL_KMOD_NUM = 0x1000, 1419 | SDL_KMOD_CAPS = 0x2000, 1420 | SDL_KMOD_MODE = 0x4000, 1421 | SDL_KMOD_RESERVED = 0x8000 1422 | } SDL_Keymod; 1423 | typedef struct SDL_Keysym 1424 | { 1425 | SDL_Scancode scancode; 1426 | SDL_Keycode sym; 1427 | Uint16 mod; 1428 | Uint32 unused; 1429 | } SDL_Keysym; 1430 | SDL_Window * SDL_GetKeyboardFocus(void); 1431 | const Uint8 * SDL_GetKeyboardState(int *numkeys); 1432 | SDL_Keymod SDL_GetModState(void); 1433 | void SDL_SetModState(SDL_Keymod modstate); 1434 | SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode); 1435 | SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode key); 1436 | const char * SDL_GetScancodeName(SDL_Scancode scancode); 1437 | SDL_Scancode SDL_GetScancodeFromName(const char *name); 1438 | const char * SDL_GetKeyName(SDL_Keycode key); 1439 | SDL_Keycode SDL_GetKeyFromName(const char *name); 1440 | void SDL_StartTextInput(void); 1441 | SDL_bool SDL_IsTextInputActive(void); 1442 | void SDL_StopTextInput(void); 1443 | void SDL_SetTextInputRect(SDL_Rect *rect); 1444 | SDL_bool SDL_HasScreenKeyboardSupport(void); 1445 | SDL_bool SDL_IsScreenKeyboardShown(SDL_Window *window); 1446 | typedef struct SDL_Cursor SDL_Cursor; 1447 | typedef enum 1448 | { 1449 | SDL_SYSTEM_CURSOR_ARROW, 1450 | SDL_SYSTEM_CURSOR_IBEAM, 1451 | SDL_SYSTEM_CURSOR_WAIT, 1452 | SDL_SYSTEM_CURSOR_CROSSHAIR, 1453 | SDL_SYSTEM_CURSOR_WAITARROW, 1454 | SDL_SYSTEM_CURSOR_SIZENWSE, 1455 | SDL_SYSTEM_CURSOR_SIZENESW, 1456 | SDL_SYSTEM_CURSOR_SIZEWE, 1457 | SDL_SYSTEM_CURSOR_SIZENS, 1458 | SDL_SYSTEM_CURSOR_SIZEALL, 1459 | SDL_SYSTEM_CURSOR_NO, 1460 | SDL_SYSTEM_CURSOR_HAND, 1461 | SDL_NUM_SYSTEM_CURSORS 1462 | } SDL_SystemCursor; 1463 | SDL_Window * SDL_GetMouseFocus(void); 1464 | Uint32 SDL_GetMouseState(int *x, int *y); 1465 | Uint32 SDL_GetRelativeMouseState(int *x, int *y); 1466 | void SDL_WarpMouseInWindow(SDL_Window * window, 1467 | int x, int y); 1468 | int SDL_SetRelativeMouseMode(SDL_bool enabled); 1469 | SDL_bool SDL_GetRelativeMouseMode(void); 1470 | SDL_Cursor * SDL_CreateCursor(const Uint8 * data, 1471 | const Uint8 * mask, 1472 | int w, int h, int hot_x, 1473 | int hot_y); 1474 | SDL_Cursor * SDL_CreateColorCursor(SDL_Surface *surface, 1475 | int hot_x, 1476 | int hot_y); 1477 | SDL_Cursor * SDL_CreateSystemCursor(SDL_SystemCursor id); 1478 | void SDL_SetCursor(SDL_Cursor * cursor); 1479 | SDL_Cursor * SDL_GetCursor(void); 1480 | SDL_Cursor * SDL_GetDefaultCursor(void); 1481 | void SDL_FreeCursor(SDL_Cursor * cursor); 1482 | int SDL_ShowCursor(int toggle); 1483 | struct _SDL_Joystick; 1484 | typedef struct _SDL_Joystick SDL_Joystick; 1485 | typedef struct { 1486 | Uint8 data[16]; 1487 | } SDL_JoystickGUID; 1488 | typedef Sint32 SDL_JoystickID; 1489 | int SDL_NumJoysticks(void); 1490 | const char * SDL_JoystickNameForIndex(int device_index); 1491 | SDL_Joystick * SDL_JoystickOpen(int device_index); 1492 | const char * SDL_JoystickName(SDL_Joystick * joystick); 1493 | SDL_JoystickGUID SDL_JoystickGetDeviceGUID(int device_index); 1494 | SDL_JoystickGUID SDL_JoystickGetGUID(SDL_Joystick * joystick); 1495 | void SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); 1496 | SDL_JoystickGUID SDL_JoystickGetGUIDFromString(const char *pchGUID); 1497 | SDL_bool SDL_JoystickGetAttached(SDL_Joystick * joystick); 1498 | SDL_JoystickID SDL_JoystickInstanceID(SDL_Joystick * joystick); 1499 | int SDL_JoystickNumAxes(SDL_Joystick * joystick); 1500 | int SDL_JoystickNumBalls(SDL_Joystick * joystick); 1501 | int SDL_JoystickNumHats(SDL_Joystick * joystick); 1502 | int SDL_JoystickNumButtons(SDL_Joystick * joystick); 1503 | void SDL_JoystickUpdate(void); 1504 | int SDL_JoystickEventState(int state); 1505 | Sint16 SDL_JoystickGetAxis(SDL_Joystick * joystick, 1506 | int axis); 1507 | Uint8 SDL_JoystickGetHat(SDL_Joystick * joystick, 1508 | int hat); 1509 | int SDL_JoystickGetBall(SDL_Joystick * joystick, 1510 | int ball, int *dx, int *dy); 1511 | Uint8 SDL_JoystickGetButton(SDL_Joystick * joystick, 1512 | int button); 1513 | void SDL_JoystickClose(SDL_Joystick * joystick); 1514 | struct _SDL_GameController; 1515 | typedef struct _SDL_GameController SDL_GameController; 1516 | typedef enum 1517 | { 1518 | SDL_CONTROLLER_BINDTYPE_NONE = 0, 1519 | SDL_CONTROLLER_BINDTYPE_BUTTON, 1520 | SDL_CONTROLLER_BINDTYPE_AXIS, 1521 | SDL_CONTROLLER_BINDTYPE_HAT 1522 | } SDL_GameControllerBindType; 1523 | typedef struct SDL_GameControllerButtonBind 1524 | { 1525 | SDL_GameControllerBindType bindType; 1526 | union 1527 | { 1528 | int button; 1529 | int axis; 1530 | struct { 1531 | int hat; 1532 | int hat_mask; 1533 | } hat; 1534 | } value; 1535 | } SDL_GameControllerButtonBind; 1536 | int SDL_GameControllerAddMapping( const char* mappingString ); 1537 | char * SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); 1538 | char * SDL_GameControllerMapping( SDL_GameController * gamecontroller ); 1539 | SDL_bool SDL_IsGameController(int joystick_index); 1540 | const char * SDL_GameControllerNameForIndex(int joystick_index); 1541 | SDL_GameController * SDL_GameControllerOpen(int joystick_index); 1542 | const char * SDL_GameControllerName(SDL_GameController *gamecontroller); 1543 | SDL_bool SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); 1544 | SDL_Joystick * SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); 1545 | int SDL_GameControllerEventState(int state); 1546 | void SDL_GameControllerUpdate(void); 1547 | typedef enum 1548 | { 1549 | SDL_CONTROLLER_AXIS_INVALID = -1, 1550 | SDL_CONTROLLER_AXIS_LEFTX, 1551 | SDL_CONTROLLER_AXIS_LEFTY, 1552 | SDL_CONTROLLER_AXIS_RIGHTX, 1553 | SDL_CONTROLLER_AXIS_RIGHTY, 1554 | SDL_CONTROLLER_AXIS_TRIGGERLEFT, 1555 | SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1556 | SDL_CONTROLLER_AXIS_MAX 1557 | } SDL_GameControllerAxis; 1558 | SDL_GameControllerAxis SDL_GameControllerGetAxisFromString(const char *pchString); 1559 | const char* SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); 1560 | SDL_GameControllerButtonBind 1561 | SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, 1562 | SDL_GameControllerAxis axis); 1563 | Sint16 1564 | SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, 1565 | SDL_GameControllerAxis axis); 1566 | typedef enum 1567 | { 1568 | SDL_CONTROLLER_BUTTON_INVALID = -1, 1569 | SDL_CONTROLLER_BUTTON_A, 1570 | SDL_CONTROLLER_BUTTON_B, 1571 | SDL_CONTROLLER_BUTTON_X, 1572 | SDL_CONTROLLER_BUTTON_Y, 1573 | SDL_CONTROLLER_BUTTON_BACK, 1574 | SDL_CONTROLLER_BUTTON_GUIDE, 1575 | SDL_CONTROLLER_BUTTON_START, 1576 | SDL_CONTROLLER_BUTTON_LEFTSTICK, 1577 | SDL_CONTROLLER_BUTTON_RIGHTSTICK, 1578 | SDL_CONTROLLER_BUTTON_LEFTSHOULDER, 1579 | SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, 1580 | SDL_CONTROLLER_BUTTON_DPAD_UP, 1581 | SDL_CONTROLLER_BUTTON_DPAD_DOWN, 1582 | SDL_CONTROLLER_BUTTON_DPAD_LEFT, 1583 | SDL_CONTROLLER_BUTTON_DPAD_RIGHT, 1584 | SDL_CONTROLLER_BUTTON_MAX 1585 | } SDL_GameControllerButton; 1586 | SDL_GameControllerButton SDL_GameControllerGetButtonFromString(const char *pchString); 1587 | const char* SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); 1588 | SDL_GameControllerButtonBind 1589 | SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, 1590 | SDL_GameControllerButton button); 1591 | Uint8 SDL_GameControllerGetButton(SDL_GameController *gamecontroller, 1592 | SDL_GameControllerButton button); 1593 | void SDL_GameControllerClose(SDL_GameController *gamecontroller); 1594 | typedef Sint64 SDL_TouchID; 1595 | typedef Sint64 SDL_FingerID; 1596 | typedef struct SDL_Finger 1597 | { 1598 | SDL_FingerID id; 1599 | float x; 1600 | float y; 1601 | float pressure; 1602 | } SDL_Finger; 1603 | int SDL_GetNumTouchDevices(void); 1604 | SDL_TouchID SDL_GetTouchDevice(int index); 1605 | int SDL_GetNumTouchFingers(SDL_TouchID touchID); 1606 | SDL_Finger * SDL_GetTouchFinger(SDL_TouchID touchID, int index); 1607 | typedef Sint64 SDL_GestureID; 1608 | int SDL_RecordGesture(SDL_TouchID touchId); 1609 | int SDL_SaveAllDollarTemplates(SDL_RWops *src); 1610 | int SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *src); 1611 | int SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); 1612 | typedef enum 1613 | { 1614 | SDL_FIRSTEVENT = 0, 1615 | SDL_QUIT = 0x100, 1616 | SDL_APP_TERMINATING, 1617 | SDL_APP_LOWMEMORY, 1618 | SDL_APP_WILLENTERBACKGROUND, 1619 | SDL_APP_DIDENTERBACKGROUND, 1620 | SDL_APP_WILLENTERFOREGROUND, 1621 | SDL_APP_DIDENTERFOREGROUND, 1622 | SDL_WINDOWEVENT = 0x200, 1623 | SDL_SYSWMEVENT, 1624 | SDL_KEYDOWN = 0x300, 1625 | SDL_KEYUP, 1626 | SDL_TEXTEDITING, 1627 | SDL_TEXTINPUT, 1628 | SDL_MOUSEMOTION = 0x400, 1629 | SDL_MOUSEBUTTONDOWN, 1630 | SDL_MOUSEBUTTONUP, 1631 | SDL_MOUSEWHEEL, 1632 | SDL_JOYAXISMOTION = 0x600, 1633 | SDL_JOYBALLMOTION, 1634 | SDL_JOYHATMOTION, 1635 | SDL_JOYBUTTONDOWN, 1636 | SDL_JOYBUTTONUP, 1637 | SDL_JOYDEVICEADDED, 1638 | SDL_JOYDEVICEREMOVED, 1639 | SDL_CONTROLLERAXISMOTION = 0x650, 1640 | SDL_CONTROLLERBUTTONDOWN, 1641 | SDL_CONTROLLERBUTTONUP, 1642 | SDL_CONTROLLERDEVICEADDED, 1643 | SDL_CONTROLLERDEVICEREMOVED, 1644 | SDL_CONTROLLERDEVICEREMAPPED, 1645 | SDL_FINGERDOWN = 0x700, 1646 | SDL_FINGERUP, 1647 | SDL_FINGERMOTION, 1648 | SDL_DOLLARGESTURE = 0x800, 1649 | SDL_DOLLARRECORD, 1650 | SDL_MULTIGESTURE, 1651 | SDL_CLIPBOARDUPDATE = 0x900, 1652 | SDL_DROPFILE = 0x1000, 1653 | SDL_USEREVENT = 0x8000, 1654 | SDL_LASTEVENT = 0xFFFF 1655 | } SDL_EventType; 1656 | typedef struct SDL_CommonEvent 1657 | { 1658 | Uint32 type; 1659 | Uint32 timestamp; 1660 | } SDL_CommonEvent; 1661 | typedef struct SDL_WindowEvent 1662 | { 1663 | Uint32 type; 1664 | Uint32 timestamp; 1665 | Uint32 windowID; 1666 | Uint8 event; 1667 | Uint8 padding1; 1668 | Uint8 padding2; 1669 | Uint8 padding3; 1670 | Sint32 data1; 1671 | Sint32 data2; 1672 | } SDL_WindowEvent; 1673 | typedef struct SDL_KeyboardEvent 1674 | { 1675 | Uint32 type; 1676 | Uint32 timestamp; 1677 | Uint32 windowID; 1678 | Uint8 state; 1679 | Uint8 repeat; 1680 | Uint8 padding2; 1681 | Uint8 padding3; 1682 | SDL_Keysym keysym; 1683 | } SDL_KeyboardEvent; 1684 | typedef struct SDL_TextEditingEvent 1685 | { 1686 | Uint32 type; 1687 | Uint32 timestamp; 1688 | Uint32 windowID; 1689 | char text[(32)]; 1690 | Sint32 start; 1691 | Sint32 length; 1692 | } SDL_TextEditingEvent; 1693 | typedef struct SDL_TextInputEvent 1694 | { 1695 | Uint32 type; 1696 | Uint32 timestamp; 1697 | Uint32 windowID; 1698 | char text[(32)]; 1699 | } SDL_TextInputEvent; 1700 | typedef struct SDL_MouseMotionEvent 1701 | { 1702 | Uint32 type; 1703 | Uint32 timestamp; 1704 | Uint32 windowID; 1705 | Uint32 which; 1706 | Uint32 state; 1707 | Sint32 x; 1708 | Sint32 y; 1709 | Sint32 xrel; 1710 | Sint32 yrel; 1711 | } SDL_MouseMotionEvent; 1712 | typedef struct SDL_MouseButtonEvent 1713 | { 1714 | Uint32 type; 1715 | Uint32 timestamp; 1716 | Uint32 windowID; 1717 | Uint32 which; 1718 | Uint8 button; 1719 | Uint8 state; 1720 | Uint8 padding1; 1721 | Uint8 padding2; 1722 | Sint32 x; 1723 | Sint32 y; 1724 | } SDL_MouseButtonEvent; 1725 | typedef struct SDL_MouseWheelEvent 1726 | { 1727 | Uint32 type; 1728 | Uint32 timestamp; 1729 | Uint32 windowID; 1730 | Uint32 which; 1731 | Sint32 x; 1732 | Sint32 y; 1733 | } SDL_MouseWheelEvent; 1734 | typedef struct SDL_JoyAxisEvent 1735 | { 1736 | Uint32 type; 1737 | Uint32 timestamp; 1738 | SDL_JoystickID which; 1739 | Uint8 axis; 1740 | Uint8 padding1; 1741 | Uint8 padding2; 1742 | Uint8 padding3; 1743 | Sint16 value; 1744 | Uint16 padding4; 1745 | } SDL_JoyAxisEvent; 1746 | typedef struct SDL_JoyBallEvent 1747 | { 1748 | Uint32 type; 1749 | Uint32 timestamp; 1750 | SDL_JoystickID which; 1751 | Uint8 ball; 1752 | Uint8 padding1; 1753 | Uint8 padding2; 1754 | Uint8 padding3; 1755 | Sint16 xrel; 1756 | Sint16 yrel; 1757 | } SDL_JoyBallEvent; 1758 | typedef struct SDL_JoyHatEvent 1759 | { 1760 | Uint32 type; 1761 | Uint32 timestamp; 1762 | SDL_JoystickID which; 1763 | Uint8 hat; 1764 | Uint8 value; 1765 | Uint8 padding1; 1766 | Uint8 padding2; 1767 | } SDL_JoyHatEvent; 1768 | typedef struct SDL_JoyButtonEvent 1769 | { 1770 | Uint32 type; 1771 | Uint32 timestamp; 1772 | SDL_JoystickID which; 1773 | Uint8 button; 1774 | Uint8 state; 1775 | Uint8 padding1; 1776 | Uint8 padding2; 1777 | } SDL_JoyButtonEvent; 1778 | typedef struct SDL_JoyDeviceEvent 1779 | { 1780 | Uint32 type; 1781 | Uint32 timestamp; 1782 | Sint32 which; 1783 | } SDL_JoyDeviceEvent; 1784 | typedef struct SDL_ControllerAxisEvent 1785 | { 1786 | Uint32 type; 1787 | Uint32 timestamp; 1788 | SDL_JoystickID which; 1789 | Uint8 axis; 1790 | Uint8 padding1; 1791 | Uint8 padding2; 1792 | Uint8 padding3; 1793 | Sint16 value; 1794 | Uint16 padding4; 1795 | } SDL_ControllerAxisEvent; 1796 | typedef struct SDL_ControllerButtonEvent 1797 | { 1798 | Uint32 type; 1799 | Uint32 timestamp; 1800 | SDL_JoystickID which; 1801 | Uint8 button; 1802 | Uint8 state; 1803 | Uint8 padding1; 1804 | Uint8 padding2; 1805 | } SDL_ControllerButtonEvent; 1806 | typedef struct SDL_ControllerDeviceEvent 1807 | { 1808 | Uint32 type; 1809 | Uint32 timestamp; 1810 | Sint32 which; 1811 | } SDL_ControllerDeviceEvent; 1812 | typedef struct SDL_TouchFingerEvent 1813 | { 1814 | Uint32 type; 1815 | Uint32 timestamp; 1816 | SDL_TouchID touchId; 1817 | SDL_FingerID fingerId; 1818 | float x; 1819 | float y; 1820 | float dx; 1821 | float dy; 1822 | float pressure; 1823 | } SDL_TouchFingerEvent; 1824 | typedef struct SDL_MultiGestureEvent 1825 | { 1826 | Uint32 type; 1827 | Uint32 timestamp; 1828 | SDL_TouchID touchId; 1829 | float dTheta; 1830 | float dDist; 1831 | float x; 1832 | float y; 1833 | Uint16 numFingers; 1834 | Uint16 padding; 1835 | } SDL_MultiGestureEvent; 1836 | typedef struct SDL_DollarGestureEvent 1837 | { 1838 | Uint32 type; 1839 | Uint32 timestamp; 1840 | SDL_TouchID touchId; 1841 | SDL_GestureID gestureId; 1842 | Uint32 numFingers; 1843 | float error; 1844 | float x; 1845 | float y; 1846 | } SDL_DollarGestureEvent; 1847 | typedef struct SDL_DropEvent 1848 | { 1849 | Uint32 type; 1850 | Uint32 timestamp; 1851 | char *file; 1852 | } SDL_DropEvent; 1853 | typedef struct SDL_QuitEvent 1854 | { 1855 | Uint32 type; 1856 | Uint32 timestamp; 1857 | } SDL_QuitEvent; 1858 | typedef struct SDL_OSEvent 1859 | { 1860 | Uint32 type; 1861 | Uint32 timestamp; 1862 | } SDL_OSEvent; 1863 | typedef struct SDL_UserEvent 1864 | { 1865 | Uint32 type; 1866 | Uint32 timestamp; 1867 | Uint32 windowID; 1868 | Sint32 code; 1869 | void *data1; 1870 | void *data2; 1871 | } SDL_UserEvent; 1872 | struct SDL_SysWMmsg; 1873 | typedef struct SDL_SysWMmsg SDL_SysWMmsg; 1874 | typedef struct SDL_SysWMEvent 1875 | { 1876 | Uint32 type; 1877 | Uint32 timestamp; 1878 | SDL_SysWMmsg *msg; 1879 | } SDL_SysWMEvent; 1880 | typedef union SDL_Event 1881 | { 1882 | Uint32 type; 1883 | SDL_CommonEvent common; 1884 | SDL_WindowEvent window; 1885 | SDL_KeyboardEvent key; 1886 | SDL_TextEditingEvent edit; 1887 | SDL_TextInputEvent text; 1888 | SDL_MouseMotionEvent motion; 1889 | SDL_MouseButtonEvent button; 1890 | SDL_MouseWheelEvent wheel; 1891 | SDL_JoyAxisEvent jaxis; 1892 | SDL_JoyBallEvent jball; 1893 | SDL_JoyHatEvent jhat; 1894 | SDL_JoyButtonEvent jbutton; 1895 | SDL_JoyDeviceEvent jdevice; 1896 | SDL_ControllerAxisEvent caxis; 1897 | SDL_ControllerButtonEvent cbutton; 1898 | SDL_ControllerDeviceEvent cdevice; 1899 | SDL_QuitEvent quit; 1900 | SDL_UserEvent user; 1901 | SDL_SysWMEvent syswm; 1902 | SDL_TouchFingerEvent tfinger; 1903 | SDL_MultiGestureEvent mgesture; 1904 | SDL_DollarGestureEvent dgesture; 1905 | SDL_DropEvent drop; 1906 | Uint8 padding[56]; 1907 | } SDL_Event; 1908 | void SDL_PumpEvents(void); 1909 | typedef enum 1910 | { 1911 | SDL_ADDEVENT, 1912 | SDL_PEEKEVENT, 1913 | SDL_GETEVENT 1914 | } SDL_eventaction; 1915 | int SDL_PeepEvents(SDL_Event * events, int numevents, 1916 | SDL_eventaction action, 1917 | Uint32 minType, Uint32 maxType); 1918 | SDL_bool SDL_HasEvent(Uint32 type); 1919 | SDL_bool SDL_HasEvents(Uint32 minType, Uint32 maxType); 1920 | void SDL_FlushEvent(Uint32 type); 1921 | void SDL_FlushEvents(Uint32 minType, Uint32 maxType); 1922 | int SDL_PollEvent(SDL_Event * event); 1923 | int SDL_WaitEvent(SDL_Event * event); 1924 | int SDL_WaitEventTimeout(SDL_Event * event, 1925 | int timeout); 1926 | int SDL_PushEvent(SDL_Event * event); 1927 | typedef int ( * SDL_EventFilter) (void *userdata, SDL_Event * event); 1928 | void SDL_SetEventFilter(SDL_EventFilter filter, 1929 | void *userdata); 1930 | SDL_bool SDL_GetEventFilter(SDL_EventFilter * filter, 1931 | void **userdata); 1932 | void SDL_AddEventWatch(SDL_EventFilter filter, 1933 | void *userdata); 1934 | void SDL_DelEventWatch(SDL_EventFilter filter, 1935 | void *userdata); 1936 | void SDL_FilterEvents(SDL_EventFilter filter, 1937 | void *userdata); 1938 | Uint8 SDL_EventState(Uint32 type, int state); 1939 | Uint32 SDL_RegisterEvents(int numevents); 1940 | struct _SDL_Haptic; 1941 | typedef struct _SDL_Haptic SDL_Haptic; 1942 | typedef struct SDL_HapticDirection 1943 | { 1944 | Uint8 type; 1945 | Sint32 dir[3]; 1946 | } SDL_HapticDirection; 1947 | typedef struct SDL_HapticConstant 1948 | { 1949 | Uint16 type; 1950 | SDL_HapticDirection direction; 1951 | Uint32 length; 1952 | Uint16 delay; 1953 | Uint16 button; 1954 | Uint16 interval; 1955 | Sint16 level; 1956 | Uint16 attack_length; 1957 | Uint16 attack_level; 1958 | Uint16 fade_length; 1959 | Uint16 fade_level; 1960 | } SDL_HapticConstant; 1961 | typedef struct SDL_HapticPeriodic 1962 | { 1963 | Uint16 type; 1964 | SDL_HapticDirection direction; 1965 | Uint32 length; 1966 | Uint16 delay; 1967 | Uint16 button; 1968 | Uint16 interval; 1969 | Uint16 period; 1970 | Sint16 magnitude; 1971 | Sint16 offset; 1972 | Uint16 phase; 1973 | Uint16 attack_length; 1974 | Uint16 attack_level; 1975 | Uint16 fade_length; 1976 | Uint16 fade_level; 1977 | } SDL_HapticPeriodic; 1978 | typedef struct SDL_HapticCondition 1979 | { 1980 | Uint16 type; 1981 | SDL_HapticDirection direction; 1982 | Uint32 length; 1983 | Uint16 delay; 1984 | Uint16 button; 1985 | Uint16 interval; 1986 | Uint16 right_sat[3]; 1987 | Uint16 left_sat[3]; 1988 | Sint16 right_coeff[3]; 1989 | Sint16 left_coeff[3]; 1990 | Uint16 deadband[3]; 1991 | Sint16 center[3]; 1992 | } SDL_HapticCondition; 1993 | typedef struct SDL_HapticRamp 1994 | { 1995 | Uint16 type; 1996 | SDL_HapticDirection direction; 1997 | Uint32 length; 1998 | Uint16 delay; 1999 | Uint16 button; 2000 | Uint16 interval; 2001 | Sint16 start; 2002 | Sint16 end; 2003 | Uint16 attack_length; 2004 | Uint16 attack_level; 2005 | Uint16 fade_length; 2006 | Uint16 fade_level; 2007 | } SDL_HapticRamp; 2008 | typedef struct SDL_HapticLeftRight 2009 | { 2010 | Uint16 type; 2011 | Uint32 length; 2012 | Uint16 large_magnitude; 2013 | Uint16 small_magnitude; 2014 | } SDL_HapticLeftRight; 2015 | typedef struct SDL_HapticCustom 2016 | { 2017 | Uint16 type; 2018 | SDL_HapticDirection direction; 2019 | Uint32 length; 2020 | Uint16 delay; 2021 | Uint16 button; 2022 | Uint16 interval; 2023 | Uint8 channels; 2024 | Uint16 period; 2025 | Uint16 samples; 2026 | Uint16 *data; 2027 | Uint16 attack_length; 2028 | Uint16 attack_level; 2029 | Uint16 fade_length; 2030 | Uint16 fade_level; 2031 | } SDL_HapticCustom; 2032 | typedef union SDL_HapticEffect 2033 | { 2034 | Uint16 type; 2035 | SDL_HapticConstant constant; 2036 | SDL_HapticPeriodic periodic; 2037 | SDL_HapticCondition condition; 2038 | SDL_HapticRamp ramp; 2039 | SDL_HapticLeftRight leftright; 2040 | SDL_HapticCustom custom; 2041 | } SDL_HapticEffect; 2042 | int SDL_NumHaptics(void); 2043 | const char * SDL_HapticName(int device_index); 2044 | SDL_Haptic * SDL_HapticOpen(int device_index); 2045 | int SDL_HapticOpened(int device_index); 2046 | int SDL_HapticIndex(SDL_Haptic * haptic); 2047 | int SDL_MouseIsHaptic(void); 2048 | SDL_Haptic * SDL_HapticOpenFromMouse(void); 2049 | int SDL_JoystickIsHaptic(SDL_Joystick * joystick); 2050 | SDL_Haptic * SDL_HapticOpenFromJoystick(SDL_Joystick * 2051 | joystick); 2052 | void SDL_HapticClose(SDL_Haptic * haptic); 2053 | int SDL_HapticNumEffects(SDL_Haptic * haptic); 2054 | int SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); 2055 | unsigned int SDL_HapticQuery(SDL_Haptic * haptic); 2056 | int SDL_HapticNumAxes(SDL_Haptic * haptic); 2057 | int SDL_HapticEffectSupported(SDL_Haptic * haptic, 2058 | SDL_HapticEffect * 2059 | effect); 2060 | int SDL_HapticNewEffect(SDL_Haptic * haptic, 2061 | SDL_HapticEffect * effect); 2062 | int SDL_HapticUpdateEffect(SDL_Haptic * haptic, 2063 | int effect, 2064 | SDL_HapticEffect * data); 2065 | int SDL_HapticRunEffect(SDL_Haptic * haptic, 2066 | int effect, 2067 | Uint32 iterations); 2068 | int SDL_HapticStopEffect(SDL_Haptic * haptic, 2069 | int effect); 2070 | void SDL_HapticDestroyEffect(SDL_Haptic * haptic, 2071 | int effect); 2072 | int SDL_HapticGetEffectStatus(SDL_Haptic * haptic, 2073 | int effect); 2074 | int SDL_HapticSetGain(SDL_Haptic * haptic, int gain); 2075 | int SDL_HapticSetAutocenter(SDL_Haptic * haptic, 2076 | int autocenter); 2077 | int SDL_HapticPause(SDL_Haptic * haptic); 2078 | int SDL_HapticUnpause(SDL_Haptic * haptic); 2079 | int SDL_HapticStopAll(SDL_Haptic * haptic); 2080 | int SDL_HapticRumbleSupported(SDL_Haptic * haptic); 2081 | int SDL_HapticRumbleInit(SDL_Haptic * haptic); 2082 | int SDL_HapticRumblePlay(SDL_Haptic * haptic, float strength, Uint32 length ); 2083 | int SDL_HapticRumbleStop(SDL_Haptic * haptic); 2084 | typedef enum 2085 | { 2086 | SDL_HINT_DEFAULT, 2087 | SDL_HINT_NORMAL, 2088 | SDL_HINT_OVERRIDE 2089 | } SDL_HintPriority; 2090 | SDL_bool SDL_SetHintWithPriority(const char *name, 2091 | const char *value, 2092 | SDL_HintPriority priority); 2093 | SDL_bool SDL_SetHint(const char *name, 2094 | const char *value); 2095 | const char * SDL_GetHint(const char *name); 2096 | typedef void (*SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); 2097 | void SDL_AddHintCallback(const char *name, 2098 | SDL_HintCallback callback, 2099 | void *userdata); 2100 | void SDL_DelHintCallback(const char *name, 2101 | SDL_HintCallback callback, 2102 | void *userdata); 2103 | void SDL_ClearHints(void); 2104 | void * SDL_LoadObject(const char *sofile); 2105 | void * SDL_LoadFunction(void *handle, 2106 | const char *name); 2107 | void SDL_UnloadObject(void *handle); 2108 | enum 2109 | { 2110 | SDL_LOG_CATEGORY_APPLICATION, 2111 | SDL_LOG_CATEGORY_ERROR, 2112 | SDL_LOG_CATEGORY_ASSERT, 2113 | SDL_LOG_CATEGORY_SYSTEM, 2114 | SDL_LOG_CATEGORY_AUDIO, 2115 | SDL_LOG_CATEGORY_VIDEO, 2116 | SDL_LOG_CATEGORY_RENDER, 2117 | SDL_LOG_CATEGORY_INPUT, 2118 | SDL_LOG_CATEGORY_TEST, 2119 | SDL_LOG_CATEGORY_RESERVED1, 2120 | SDL_LOG_CATEGORY_RESERVED2, 2121 | SDL_LOG_CATEGORY_RESERVED3, 2122 | SDL_LOG_CATEGORY_RESERVED4, 2123 | SDL_LOG_CATEGORY_RESERVED5, 2124 | SDL_LOG_CATEGORY_RESERVED6, 2125 | SDL_LOG_CATEGORY_RESERVED7, 2126 | SDL_LOG_CATEGORY_RESERVED8, 2127 | SDL_LOG_CATEGORY_RESERVED9, 2128 | SDL_LOG_CATEGORY_RESERVED10, 2129 | SDL_LOG_CATEGORY_CUSTOM 2130 | }; 2131 | typedef enum 2132 | { 2133 | SDL_LOG_PRIORITY_VERBOSE = 1, 2134 | SDL_LOG_PRIORITY_DEBUG, 2135 | SDL_LOG_PRIORITY_INFO, 2136 | SDL_LOG_PRIORITY_WARN, 2137 | SDL_LOG_PRIORITY_ERROR, 2138 | SDL_LOG_PRIORITY_CRITICAL, 2139 | SDL_NUM_LOG_PRIORITIES 2140 | } SDL_LogPriority; 2141 | void SDL_LogSetAllPriority(SDL_LogPriority priority); 2142 | void SDL_LogSetPriority(int category, 2143 | SDL_LogPriority priority); 2144 | SDL_LogPriority SDL_LogGetPriority(int category); 2145 | void SDL_LogResetPriorities(void); 2146 | void SDL_Log(const char *fmt, ...); 2147 | void SDL_LogVerbose(int category, const char *fmt, ...); 2148 | void SDL_LogDebug(int category, const char *fmt, ...); 2149 | void SDL_LogInfo(int category, const char *fmt, ...); 2150 | void SDL_LogWarn(int category, const char *fmt, ...); 2151 | void SDL_LogError(int category, const char *fmt, ...); 2152 | void SDL_LogCritical(int category, const char *fmt, ...); 2153 | void SDL_LogMessage(int category, 2154 | SDL_LogPriority priority, 2155 | const char *fmt, ...); 2156 | void SDL_LogMessageV(int category, 2157 | SDL_LogPriority priority, 2158 | const char *fmt, va_list ap); 2159 | typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); 2160 | void SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); 2161 | void SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); 2162 | typedef enum 2163 | { 2164 | SDL_MESSAGEBOX_ERROR = 0x00000010, 2165 | SDL_MESSAGEBOX_WARNING = 0x00000020, 2166 | SDL_MESSAGEBOX_INFORMATION = 0x00000040 2167 | } SDL_MessageBoxFlags; 2168 | typedef enum 2169 | { 2170 | SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, 2171 | SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 2172 | } SDL_MessageBoxButtonFlags; 2173 | typedef struct 2174 | { 2175 | Uint32 flags; 2176 | int buttonid; 2177 | const char * text; 2178 | } SDL_MessageBoxButtonData; 2179 | typedef struct 2180 | { 2181 | Uint8 r, g, b; 2182 | } SDL_MessageBoxColor; 2183 | typedef enum 2184 | { 2185 | SDL_MESSAGEBOX_COLOR_BACKGROUND, 2186 | SDL_MESSAGEBOX_COLOR_TEXT, 2187 | SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, 2188 | SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, 2189 | SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, 2190 | SDL_MESSAGEBOX_COLOR_MAX 2191 | } SDL_MessageBoxColorType; 2192 | typedef struct 2193 | { 2194 | SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]; 2195 | } SDL_MessageBoxColorScheme; 2196 | typedef struct 2197 | { 2198 | Uint32 flags; 2199 | SDL_Window *window; 2200 | const char *title; 2201 | const char *message; 2202 | int numbuttons; 2203 | const SDL_MessageBoxButtonData *buttons; 2204 | const SDL_MessageBoxColorScheme *colorScheme; 2205 | } SDL_MessageBoxData; 2206 | int SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); 2207 | int SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window); 2208 | typedef enum 2209 | { 2210 | SDL_POWERSTATE_UNKNOWN, 2211 | SDL_POWERSTATE_ON_BATTERY, 2212 | SDL_POWERSTATE_NO_BATTERY, 2213 | SDL_POWERSTATE_CHARGING, 2214 | SDL_POWERSTATE_CHARGED 2215 | } SDL_PowerState; 2216 | SDL_PowerState SDL_GetPowerInfo(int *secs, int *pct); 2217 | typedef enum 2218 | { 2219 | SDL_RENDERER_SOFTWARE = 0x00000001, 2220 | SDL_RENDERER_ACCELERATED = 0x00000002, 2221 | SDL_RENDERER_PRESENTVSYNC = 0x00000004, 2222 | SDL_RENDERER_TARGETTEXTURE = 0x00000008 2223 | } SDL_RendererFlags; 2224 | typedef struct SDL_RendererInfo 2225 | { 2226 | const char *name; 2227 | Uint32 flags; 2228 | Uint32 num_texture_formats; 2229 | Uint32 texture_formats[16]; 2230 | int max_texture_width; 2231 | int max_texture_height; 2232 | } SDL_RendererInfo; 2233 | typedef enum 2234 | { 2235 | SDL_TEXTUREACCESS_STATIC, 2236 | SDL_TEXTUREACCESS_STREAMING, 2237 | SDL_TEXTUREACCESS_TARGET 2238 | } SDL_TextureAccess; 2239 | typedef enum 2240 | { 2241 | SDL_TEXTUREMODULATE_NONE = 0x00000000, 2242 | SDL_TEXTUREMODULATE_COLOR = 0x00000001, 2243 | SDL_TEXTUREMODULATE_ALPHA = 0x00000002 2244 | } SDL_TextureModulate; 2245 | typedef enum 2246 | { 2247 | SDL_FLIP_NONE = 0x00000000, 2248 | SDL_FLIP_HORIZONTAL = 0x00000001, 2249 | SDL_FLIP_VERTICAL = 0x00000002 2250 | } SDL_RendererFlip; 2251 | struct SDL_Renderer; 2252 | typedef struct SDL_Renderer SDL_Renderer; 2253 | struct SDL_Texture; 2254 | typedef struct SDL_Texture SDL_Texture; 2255 | int SDL_GetNumRenderDrivers(void); 2256 | int SDL_GetRenderDriverInfo(int index, 2257 | SDL_RendererInfo * info); 2258 | int SDL_CreateWindowAndRenderer( 2259 | int width, int height, Uint32 window_flags, 2260 | SDL_Window **window, SDL_Renderer **renderer); 2261 | SDL_Renderer * SDL_CreateRenderer(SDL_Window * window, 2262 | int index, Uint32 flags); 2263 | SDL_Renderer * SDL_CreateSoftwareRenderer(SDL_Surface * surface); 2264 | SDL_Renderer * SDL_GetRenderer(SDL_Window * window); 2265 | int SDL_GetRendererInfo(SDL_Renderer * renderer, 2266 | SDL_RendererInfo * info); 2267 | int SDL_GetRendererOutputSize(SDL_Renderer * renderer, 2268 | int *w, int *h); 2269 | SDL_Texture * SDL_CreateTexture(SDL_Renderer * renderer, 2270 | Uint32 format, 2271 | int access, int w, 2272 | int h); 2273 | SDL_Texture * SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface); 2274 | int SDL_QueryTexture(SDL_Texture * texture, 2275 | Uint32 * format, int *access, 2276 | int *w, int *h); 2277 | int SDL_SetTextureColorMod(SDL_Texture * texture, 2278 | Uint8 r, Uint8 g, Uint8 b); 2279 | int SDL_GetTextureColorMod(SDL_Texture * texture, 2280 | Uint8 * r, Uint8 * g, 2281 | Uint8 * b); 2282 | int SDL_SetTextureAlphaMod(SDL_Texture * texture, 2283 | Uint8 alpha); 2284 | int SDL_GetTextureAlphaMod(SDL_Texture * texture, 2285 | Uint8 * alpha); 2286 | int SDL_SetTextureBlendMode(SDL_Texture * texture, 2287 | SDL_BlendMode blendMode); 2288 | int SDL_GetTextureBlendMode(SDL_Texture * texture, 2289 | SDL_BlendMode *blendMode); 2290 | int SDL_UpdateTexture(SDL_Texture * texture, 2291 | const SDL_Rect * rect, 2292 | const void *pixels, int pitch); 2293 | int SDL_LockTexture(SDL_Texture * texture, 2294 | const SDL_Rect * rect, 2295 | void **pixels, int *pitch); 2296 | void SDL_UnlockTexture(SDL_Texture * texture); 2297 | SDL_bool SDL_RenderTargetSupported(SDL_Renderer *renderer); 2298 | int SDL_SetRenderTarget(SDL_Renderer *renderer, 2299 | SDL_Texture *texture); 2300 | SDL_Texture * SDL_GetRenderTarget(SDL_Renderer *renderer); 2301 | int SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h); 2302 | void SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); 2303 | int SDL_RenderSetViewport(SDL_Renderer * renderer, 2304 | const SDL_Rect * rect); 2305 | void SDL_RenderGetViewport(SDL_Renderer * renderer, 2306 | SDL_Rect * rect); 2307 | int SDL_RenderSetClipRect(SDL_Renderer * renderer, 2308 | const SDL_Rect * rect); 2309 | void SDL_RenderGetClipRect(SDL_Renderer * renderer, 2310 | SDL_Rect * rect); 2311 | int SDL_RenderSetScale(SDL_Renderer * renderer, 2312 | float scaleX, float scaleY); 2313 | void SDL_RenderGetScale(SDL_Renderer * renderer, 2314 | float *scaleX, float *scaleY); 2315 | int SDL_SetRenderDrawColor(SDL_Renderer * renderer, 2316 | Uint8 r, Uint8 g, Uint8 b, 2317 | Uint8 a); 2318 | int SDL_GetRenderDrawColor(SDL_Renderer * renderer, 2319 | Uint8 * r, Uint8 * g, Uint8 * b, 2320 | Uint8 * a); 2321 | int SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer, 2322 | SDL_BlendMode blendMode); 2323 | int SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, 2324 | SDL_BlendMode *blendMode); 2325 | int SDL_RenderClear(SDL_Renderer * renderer); 2326 | int SDL_RenderDrawPoint(SDL_Renderer * renderer, 2327 | int x, int y); 2328 | int SDL_RenderDrawPoints(SDL_Renderer * renderer, 2329 | const SDL_Point * points, 2330 | int count); 2331 | int SDL_RenderDrawLine(SDL_Renderer * renderer, 2332 | int x1, int y1, int x2, int y2); 2333 | int SDL_RenderDrawLines(SDL_Renderer * renderer, 2334 | const SDL_Point * points, 2335 | int count); 2336 | int SDL_RenderDrawRect(SDL_Renderer * renderer, 2337 | const SDL_Rect * rect); 2338 | int SDL_RenderDrawRects(SDL_Renderer * renderer, 2339 | const SDL_Rect * rects, 2340 | int count); 2341 | int SDL_RenderFillRect(SDL_Renderer * renderer, 2342 | const SDL_Rect * rect); 2343 | int SDL_RenderFillRects(SDL_Renderer * renderer, 2344 | const SDL_Rect * rects, 2345 | int count); 2346 | int SDL_RenderCopy(SDL_Renderer * renderer, 2347 | SDL_Texture * texture, 2348 | const SDL_Rect * srcrect, 2349 | const SDL_Rect * dstrect); 2350 | int SDL_RenderCopyEx(SDL_Renderer * renderer, 2351 | SDL_Texture * texture, 2352 | const SDL_Rect * srcrect, 2353 | const SDL_Rect * dstrect, 2354 | const double angle, 2355 | const SDL_Point *center, 2356 | const SDL_RendererFlip flip); 2357 | int SDL_RenderReadPixels(SDL_Renderer * renderer, 2358 | const SDL_Rect * rect, 2359 | Uint32 format, 2360 | void *pixels, int pitch); 2361 | void SDL_RenderPresent(SDL_Renderer * renderer); 2362 | void SDL_DestroyTexture(SDL_Texture * texture); 2363 | void SDL_DestroyRenderer(SDL_Renderer * renderer); 2364 | int SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh); 2365 | int SDL_GL_UnbindTexture(SDL_Texture *texture); 2366 | Uint32 SDL_GetTicks(void); 2367 | Uint64 SDL_GetPerformanceCounter(void); 2368 | Uint64 SDL_GetPerformanceFrequency(void); 2369 | void SDL_Delay(Uint32 ms); 2370 | typedef Uint32 ( * SDL_TimerCallback) (Uint32 interval, void *param); 2371 | typedef int SDL_TimerID; 2372 | SDL_TimerID SDL_AddTimer(Uint32 interval, 2373 | SDL_TimerCallback callback, 2374 | void *param); 2375 | SDL_bool SDL_RemoveTimer(SDL_TimerID id); 2376 | typedef struct SDL_version 2377 | { 2378 | Uint8 major; 2379 | Uint8 minor; 2380 | Uint8 patch; 2381 | } SDL_version; 2382 | void SDL_GetVersion(SDL_version * ver); 2383 | const char * SDL_GetRevision(void); 2384 | int SDL_GetRevisionNumber(void); 2385 | int SDL_Init(Uint32 flags); 2386 | int SDL_InitSubSystem(Uint32 flags); 2387 | void SDL_QuitSubSystem(Uint32 flags); 2388 | Uint32 SDL_WasInit(Uint32 flags); 2389 | void SDL_Quit(void); 2390 | 2391 | ]] 2392 | 2393 | -- sdl 2394 | 2395 | ffi.cdef[[ 2396 | enum { 2397 | SDL_INIT_TIMER = 0x00000001, 2398 | SDL_INIT_AUDIO = 0x00000010, 2399 | SDL_INIT_VIDEO = 0x00000020, 2400 | SDL_INIT_JOYSTICK = 0x00000200, 2401 | SDL_INIT_HAPTIC = 0x00001000, 2402 | SDL_INIT_GAMECONTROLLER = 0x00002000, 2403 | SDL_INIT_EVENTS = 0x00004000, 2404 | SDL_INIT_NOPARACHUTE = 0x00100000, 2405 | SDL_INIT_EVERYTHING = ( SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER ) 2406 | }; 2407 | ]] 2408 | -- audio 2409 | 2410 | ffi.cdef[[ 2411 | enum { 2412 | SDL_AUDIO_MASK_BITSIZE = (0xFF), 2413 | SDL_AUDIO_MASK_DATATYPE = (1<<8), 2414 | SDL_AUDIO_MASK_ENDIAN = (1<<12), 2415 | SDL_AUDIO_MASK_SIGNED = (1<<15) 2416 | }; 2417 | 2418 | enum { 2419 | SDL_AUDIO_U8 = 0x0008, 2420 | SDL_AUDIO_S8 = 0x8008, 2421 | SDL_AUDIO_U16LSB = 0x0010, 2422 | SDL_AUDIO_S16LSB = 0x8010, 2423 | SDL_AUDIO_U16MSB = 0x1010, 2424 | SDL_AUDIO_S16MSB = 0x9010, 2425 | SDL_AUDIO_U16 = SDL_AUDIO_U16LSB, 2426 | SDL_AUDIO_S16 = SDL_AUDIO_S16LSB, 2427 | 2428 | SDL_AUDIO_S32LSB = 0x8020, 2429 | SDL_AUDIO_S32MSB = 0x9020, 2430 | SDL_AUDIO_S32 = SDL_AUDIO_S32LSB, 2431 | 2432 | SDL_AUDIO_F32LSB = 0x8120, 2433 | SDL_AUDIO_F32MSB = 0x9120, 2434 | SDL_AUDIO_F32 = SDL_AUDIO_F32LSB 2435 | }; 2436 | 2437 | enum { 2438 | SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001, 2439 | SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002, 2440 | SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004, 2441 | SDL_AUDIO_ALLOW_ANY_CHANGE = (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE), 2442 | SDL_MIX_MAXVOLUME = 128 2443 | }; 2444 | 2445 | ]] 2446 | 2447 | -- events 2448 | 2449 | ffi.cdef[[ 2450 | enum { 2451 | SDL_RELEASED = 0, 2452 | SDL_PRESSED = 1, 2453 | SDL_QUERY = -1, 2454 | SDL_IGNORE = 0, 2455 | SDL_DISABLE = 0, 2456 | SDL_ENABLE = 1 2457 | }; 2458 | ]] 2459 | 2460 | -- haptic 2461 | 2462 | ffi.cdef[[ 2463 | enum { 2464 | SDL_HAPTIC_CONSTANT = (1<<0), 2465 | SDL_HAPTIC_SINE = (1<<1), 2466 | SDL_HAPTIC_LEFTRIGHT = (1<<2), 2467 | SDL_HAPTIC_TRIANGLE = (1<<3), 2468 | SDL_HAPTIC_SAWTOOTHUP = (1<<4), 2469 | SDL_HAPTIC_SAWTOOTHDOWN = (1<<5), 2470 | SDL_HAPTIC_RAMP = (1<<6), 2471 | SDL_HAPTIC_SPRING = (1<<7), 2472 | SDL_HAPTIC_DAMPER = (1<<8), 2473 | SDL_HAPTIC_INERTIA = (1<<9), 2474 | SDL_HAPTIC_FRICTION = (1<<10), 2475 | SDL_HAPTIC_CUSTOM = (1<<11), 2476 | SDL_HAPTIC_GAIN = (1<<12), 2477 | SDL_HAPTIC_AUTOCENTER = (1<<13), 2478 | SDL_HAPTIC_STATUS = (1<<14), 2479 | SDL_HAPTIC_PAUSE = (1<<15), 2480 | SDL_HAPTIC_POLAR = 0, 2481 | SDL_HAPTIC_CARTESIAN = 1, 2482 | SDL_HAPTIC_SPHERICAL = 2, 2483 | SDL_HAPTIC_INFINITY = 4294967295U 2484 | }; 2485 | ]] 2486 | 2487 | -- joystick 2488 | 2489 | ffi.cdef[[ 2490 | enum { 2491 | SDL_HAT_CENTERED = 0x00, 2492 | SDL_HAT_UP = 0x01, 2493 | SDL_HAT_RIGHT = 0x02, 2494 | SDL_HAT_DOWN = 0x04, 2495 | SDL_HAT_LEFT = 0x08, 2496 | SDL_HAT_RIGHTUP = (SDL_HAT_RIGHT|SDL_HAT_UP), 2497 | SDL_HAT_RIGHTDOWN = (SDL_HAT_RIGHT|SDL_HAT_DOWN), 2498 | SDL_HAT_LEFTUP = (SDL_HAT_LEFT|SDL_HAT_UP), 2499 | SDL_HAT_LEFTDOWN = (SDL_HAT_LEFT|SDL_HAT_DOWN) 2500 | }; 2501 | ]] 2502 | 2503 | -- keycode 2504 | 2505 | ffi.cdef[[ 2506 | enum { 2507 | SDL_SCANCODE_MASK = (1<<30), 2508 | SDL_KMOD_CTRL = (SDL_KMOD_LCTRL|SDL_KMOD_RCTRL), 2509 | SDL_KMOD_SHIFT = (SDL_KMOD_LSHIFT|SDL_KMOD_RSHIFT), 2510 | SDL_KMOD_ALT = (SDL_KMOD_LALT|SDL_KMOD_RALT), 2511 | SDL_KMOD_GUI = (SDL_KMOD_LGUI|SDL_KMOD_RGUI) 2512 | }; 2513 | ]] 2514 | 2515 | -- main 2516 | if ffi.os == 'Windows' then 2517 | ffi.cdef[[ 2518 | int SDL_RegisterApp(char *name, Uint32 style, 2519 | void *hInst); 2520 | void SDL_UnregisterApp(void); 2521 | ]] 2522 | end 2523 | 2524 | -- mouse 2525 | 2526 | ffi.cdef[[ 2527 | enum { 2528 | SDL_BUTTON_LEFT = 1, 2529 | SDL_BUTTON_MIDDLE = 2, 2530 | SDL_BUTTON_RIGHT = 3, 2531 | SDL_BUTTON_X1 = 4, 2532 | SDL_BUTTON_X2 = 5, 2533 | SDL_BUTTON_LMASK = 1 << (SDL_BUTTON_LEFT-1), 2534 | SDL_BUTTON_MMASK = 1 << (SDL_BUTTON_MIDDLE-1), 2535 | SDL_BUTTON_RMASK = 1 << (SDL_BUTTON_RIGHT-1), 2536 | SDL_BUTTON_X1MASK = 1 << (SDL_BUTTON_X1-1), 2537 | SDL_BUTTON_X2MASK = 1 << (SDL_BUTTON_X2-1), 2538 | }; 2539 | ]] 2540 | 2541 | -- mutex 2542 | 2543 | ffi.cdef[[ 2544 | enum { 2545 | SDL_MUTEX_TIMEDOUT = 1, 2546 | SDL_MUTEX_MAXWAIT = (~(Uint32)0) 2547 | }; 2548 | ]] 2549 | 2550 | -- pixels 2551 | 2552 | ffi.cdef[[ 2553 | enum { 2554 | SDL_ALPHA_OPAQUE = 255, 2555 | SDL_ALPHA_TRANSPARENT = 0 2556 | }; 2557 | ]] 2558 | 2559 | -- rwops 2560 | ffi.cdef[[ 2561 | enum { 2562 | SDL_RWOPS_UNKNOWN = 0, 2563 | SDL_RWOPS_WINFILE = 1, 2564 | SDL_RWOPS_STDFILE = 2, 2565 | SDL_RWOPS_JNIFILE = 3, 2566 | SDL_RWOPS_MEMORY = 4, 2567 | SDL_RWOPS_MEMORY_RO = 5 2568 | }; 2569 | ]] 2570 | 2571 | -- shape 2572 | ffi.cdef[[ 2573 | enum { 2574 | SDL_NONSHAPEABLE_WINDOW = -1, 2575 | SDL_INVALID_SHAPE_ARGUMENT = -2, 2576 | SDL_WINDOW_LACKS_SHAPE = -3 2577 | }; 2578 | ]] 2579 | 2580 | -- surface 2581 | ffi.cdef[[ 2582 | enum { 2583 | SDL_SWSURFACE = 0, 2584 | SDL_PREALLOC = 0x00000001, 2585 | SDL_RLEACCEL = 0x00000002, 2586 | SDL_DONTFREE = 0x00000004 2587 | }; 2588 | ]] 2589 | 2590 | -- video 2591 | ffi.cdef[[ 2592 | enum { 2593 | SDL_WINDOWPOS_CENTERED_MASK = 0x2FFF0000, 2594 | SDL_WINDOWPOS_CENTERED = 0x2FFF0000 2595 | }; 2596 | ]] 2597 | -------------------------------------------------------------------------------- /defines.lua: -------------------------------------------------------------------------------- 1 | -- Function definitions which were not output by 2 | -- the C preprocessor 3 | 4 | local sdl 5 | 6 | local function registerdefines(sdl) 7 | 8 | -- audio 9 | 10 | function sdl.AUDIO_BITSIZE(x) 11 | return bit.band(x, sdl.AUDIO_MASK_BITSIZE) 12 | end 13 | 14 | function sdl.AUDIO_ISFLOAT(x) 15 | return bit.band(x, sdl.AUDIO_MASK_DATATYPE) ~= 0 16 | end 17 | 18 | function sdl.AUDIO_ISBIGENDIAN(x) 19 | return bit.band(x, sdl.AUDIO_MASK_ENDIAN) ~= 0 20 | end 21 | 22 | function sdl.AUDIO_ISSIGNED(x) 23 | return bit.band(x, sdl.AUDIO_MASK_SIGNED) ~= 0 24 | end 25 | 26 | function sdl.AUDIO_ISINT(x) 27 | return not sdl.AUDIO_ISFLOAT(x) 28 | end 29 | 30 | function sdl.AUDIO_ISLITTLEENDIAN(x) 31 | return not sdl.AUDIO_ISBIGENDIAN(x) 32 | end 33 | 34 | function sdl.AUDIO_ISUNSIGNED(x) 35 | return not sdl.AUDIO_ISSIGNED(x) 36 | end 37 | 38 | function sdl.loadWAV(file, spec, audio_buf, audio_len) 39 | return sdl.loadWAV_RW(sdl.RWFromFile(file, "rb"), 1, spec, audio_buf, audio_len) 40 | end 41 | 42 | -- surface 43 | sdl.blitSurface = sdl.upperBlit 44 | 45 | function sdl.MUSTLOCK(S) 46 | return bit.band(S.flags, sdl.RLEACCEL) 47 | end 48 | 49 | function sdl.loadBMP(file) 50 | return sdl.loadBMP_RW(sdl.RWFromFile(file, 'rb'), 1) 51 | end 52 | 53 | function sdl.saveBMP(surface, file) 54 | return sdl.saveBMP_RW(surface, sdl.RWFromFile(file, 'wb'), 1) 55 | end 56 | end 57 | 58 | return registerdefines 59 | -------------------------------------------------------------------------------- /dev/create-init.lua: -------------------------------------------------------------------------------- 1 | print[[ 2 | -- Do not change this file manually 3 | -- Generated with dev/create-init.lua 4 | 5 | local ffi = require 'ffi' 6 | local C = ffi.load('SDL2') 7 | local sdl = {} 8 | local registerdefines = require 'sdl2.defines' 9 | 10 | require 'sdl2.cdefs' 11 | 12 | local function register(luafuncname, funcname) 13 | local symexists, msg = pcall(function() 14 | local sym = C[funcname] 15 | end) 16 | if symexists then 17 | sdl[luafuncname] = C[funcname] 18 | end 19 | end 20 | ]] 21 | 22 | local defined = {} 23 | 24 | local txt = io.open('cdefs.lua'):read('*all') 25 | for funcname in txt:gmatch('SDL_([^%=,%.%;<%s%(%)]+)%s*%(') do 26 | if funcname and not defined[funcname] then 27 | local luafuncname = funcname:gsub('^..', function(str) 28 | if str == 'RW' then 29 | return str 30 | else 31 | return string.lower(str:sub(1,1)) .. str:sub(2,2) 32 | end 33 | end) 34 | print(string.format("register('%s', 'SDL_%s')", luafuncname, funcname)) 35 | defined[funcname] = true 36 | end 37 | end 38 | 39 | print() 40 | 41 | for defname in txt:gmatch('SDL_([^%=,%.%;<%s%(%)|%[%]]+)') do 42 | if not defined[defname] and defname == string.upper(defname) then 43 | print(string.format("register('%s', 'SDL_%s')", defname, defname)) 44 | end 45 | end 46 | 47 | print[[ 48 | 49 | registerdefines(sdl) 50 | 51 | return sdl 52 | ]] 53 | -------------------------------------------------------------------------------- /init.lua: -------------------------------------------------------------------------------- 1 | -- Do not change this file manually 2 | -- Generated with dev/create-init.lua 3 | 4 | local ffi = require 'ffi' 5 | local C = ffi.load('SDL2') 6 | local sdl = {C=C} 7 | local registerdefines = require 'sdl2.defines' 8 | 9 | require 'sdl2.cdefs' 10 | 11 | local function register(luafuncname, funcname) 12 | local symexists, msg = pcall(function() 13 | local sym = C[funcname] 14 | end) 15 | if symexists then 16 | sdl[luafuncname] = C[funcname] 17 | end 18 | end 19 | 20 | register('getPlatform', 'SDL_GetPlatform') 21 | register('dummy_uint8[', 'SDL_dummy_uint8[') 22 | register('dummy_sint8[', 'SDL_dummy_sint8[') 23 | register('dummy_uint16[', 'SDL_dummy_uint16[') 24 | register('dummy_sint16[', 'SDL_dummy_sint16[') 25 | register('dummy_uint32[', 'SDL_dummy_uint32[') 26 | register('dummy_sint32[', 'SDL_dummy_sint32[') 27 | register('dummy_uint64[', 'SDL_dummy_uint64[') 28 | register('dummy_sint64[', 'SDL_dummy_sint64[') 29 | register('dummy_enum[', 'SDL_dummy_enum[') 30 | register('malloc', 'SDL_malloc') 31 | register('calloc', 'SDL_calloc') 32 | register('realloc', 'SDL_realloc') 33 | register('free', 'SDL_free') 34 | register('getenv', 'SDL_getenv') 35 | register('setenv', 'SDL_setenv') 36 | register('qsort', 'SDL_qsort') 37 | register('abs', 'SDL_abs') 38 | register('isdigit', 'SDL_isdigit') 39 | register('isspace', 'SDL_isspace') 40 | register('toupper', 'SDL_toupper') 41 | register('tolower', 'SDL_tolower') 42 | register('memset', 'SDL_memset') 43 | register('memcpy', 'SDL_memcpy') 44 | register('memmove', 'SDL_memmove') 45 | register('memcmp', 'SDL_memcmp') 46 | register('wcslen', 'SDL_wcslen') 47 | register('wcslcpy', 'SDL_wcslcpy') 48 | register('wcslcat', 'SDL_wcslcat') 49 | register('strlen', 'SDL_strlen') 50 | register('strlcpy', 'SDL_strlcpy') 51 | register('utf8strlcpy', 'SDL_utf8strlcpy') 52 | register('strlcat', 'SDL_strlcat') 53 | register('strdup', 'SDL_strdup') 54 | register('strrev', 'SDL_strrev') 55 | register('strupr', 'SDL_strupr') 56 | register('strlwr', 'SDL_strlwr') 57 | register('strchr', 'SDL_strchr') 58 | register('strrchr', 'SDL_strrchr') 59 | register('strstr', 'SDL_strstr') 60 | register('itoa', 'SDL_itoa') 61 | register('uitoa', 'SDL_uitoa') 62 | register('ltoa', 'SDL_ltoa') 63 | register('ultoa', 'SDL_ultoa') 64 | register('lltoa', 'SDL_lltoa') 65 | register('ulltoa', 'SDL_ulltoa') 66 | register('atoi', 'SDL_atoi') 67 | register('atof', 'SDL_atof') 68 | register('strtol', 'SDL_strtol') 69 | register('strtoul', 'SDL_strtoul') 70 | register('strtoll', 'SDL_strtoll') 71 | register('strtoull', 'SDL_strtoull') 72 | register('strtod', 'SDL_strtod') 73 | register('strcmp', 'SDL_strcmp') 74 | register('strncmp', 'SDL_strncmp') 75 | register('strcasecmp', 'SDL_strcasecmp') 76 | register('strncasecmp', 'SDL_strncasecmp') 77 | register('sscanf', 'SDL_sscanf') 78 | register('snprintf', 'SDL_snprintf') 79 | register('vsnprintf', 'SDL_vsnprintf') 80 | register('atan', 'SDL_atan') 81 | register('atan2', 'SDL_atan2') 82 | register('ceil', 'SDL_ceil') 83 | register('copysign', 'SDL_copysign') 84 | register('cos', 'SDL_cos') 85 | register('cosf', 'SDL_cosf') 86 | register('fabs', 'SDL_fabs') 87 | register('floor', 'SDL_floor') 88 | register('log', 'SDL_log') 89 | register('pow', 'SDL_pow') 90 | register('scalbn', 'SDL_scalbn') 91 | register('sin', 'SDL_sin') 92 | register('sinf', 'SDL_sinf') 93 | register('sqrt', 'SDL_sqrt') 94 | register('iconv_open', 'SDL_iconv_open') 95 | register('iconv_close', 'SDL_iconv_close') 96 | register('iconv', 'SDL_iconv') 97 | register('iconv_string', 'SDL_iconv_string') 98 | register('main', 'SDL_main') 99 | register('setMainReady', 'SDL_SetMainReady') 100 | register('reportAssertion', 'SDL_ReportAssertion') 101 | register('assert_state', 'SDL_assert_state') 102 | register('setAssertionHandler', 'SDL_SetAssertionHandler') 103 | register('getAssertionReport', 'SDL_GetAssertionReport') 104 | register('resetAssertionReport', 'SDL_ResetAssertionReport') 105 | register('atomicTryLock', 'SDL_AtomicTryLock') 106 | register('atomicLock', 'SDL_AtomicLock') 107 | register('atomicUnlock', 'SDL_AtomicUnlock') 108 | register('setError', 'SDL_SetError') 109 | register('getError', 'SDL_GetError') 110 | register('clearError', 'SDL_ClearError') 111 | register('error', 'SDL_Error') 112 | register('createMutex', 'SDL_CreateMutex') 113 | register('lockMutex', 'SDL_LockMutex') 114 | register('tryLockMutex', 'SDL_TryLockMutex') 115 | register('unlockMutex', 'SDL_UnlockMutex') 116 | register('destroyMutex', 'SDL_DestroyMutex') 117 | register('createSemaphore', 'SDL_CreateSemaphore') 118 | register('destroySemaphore', 'SDL_DestroySemaphore') 119 | register('semWait', 'SDL_SemWait') 120 | register('semTryWait', 'SDL_SemTryWait') 121 | register('semWaitTimeout', 'SDL_SemWaitTimeout') 122 | register('semPost', 'SDL_SemPost') 123 | register('semValue', 'SDL_SemValue') 124 | register('createCond', 'SDL_CreateCond') 125 | register('destroyCond', 'SDL_DestroyCond') 126 | register('condSignal', 'SDL_CondSignal') 127 | register('condBroadcast', 'SDL_CondBroadcast') 128 | register('condWait', 'SDL_CondWait') 129 | register('condWaitTimeout', 'SDL_CondWaitTimeout') 130 | 131 | if ffi.os == 'Windows' then 132 | sdl.createThread = 133 | function(fn, name, data) 134 | return C.SDL_CreateThread(fn, name, data, ffi.C._beginthreadex, ffi.C._endthreadex) 135 | end 136 | else 137 | register('createThread', 'SDL_CreateThread') 138 | end 139 | 140 | register('getThreadName', 'SDL_GetThreadName') 141 | register('threadID', 'SDL_ThreadID') 142 | register('getThreadID', 'SDL_GetThreadID') 143 | register('setThreadPriority', 'SDL_SetThreadPriority') 144 | register('waitThread', 'SDL_WaitThread') 145 | register('tLSCreate', 'SDL_TLSCreate') 146 | register('tLSGet', 'SDL_TLSGet') 147 | register('tLSSet', 'SDL_TLSSet') 148 | register('RWFromFile', 'SDL_RWFromFile') 149 | register('RWFromFP', 'SDL_RWFromFP') 150 | register('RWFromMem', 'SDL_RWFromMem') 151 | register('RWFromConstMem', 'SDL_RWFromConstMem') 152 | register('allocRW', 'SDL_AllocRW') 153 | register('freeRW', 'SDL_FreeRW') 154 | register('readU8', 'SDL_ReadU8') 155 | register('readLE16', 'SDL_ReadLE16') 156 | register('readBE16', 'SDL_ReadBE16') 157 | register('readLE32', 'SDL_ReadLE32') 158 | register('readBE32', 'SDL_ReadBE32') 159 | register('readLE64', 'SDL_ReadLE64') 160 | register('readBE64', 'SDL_ReadBE64') 161 | register('writeU8', 'SDL_WriteU8') 162 | register('writeLE16', 'SDL_WriteLE16') 163 | register('writeBE16', 'SDL_WriteBE16') 164 | register('writeLE32', 'SDL_WriteLE32') 165 | register('writeBE32', 'SDL_WriteBE32') 166 | register('writeLE64', 'SDL_WriteLE64') 167 | register('writeBE64', 'SDL_WriteBE64') 168 | register('getNumAudioDrivers', 'SDL_GetNumAudioDrivers') 169 | register('getAudioDriver', 'SDL_GetAudioDriver') 170 | register('audioInit', 'SDL_AudioInit') 171 | register('audioQuit', 'SDL_AudioQuit') 172 | register('getCurrentAudioDriver', 'SDL_GetCurrentAudioDriver') 173 | register('openAudio', 'SDL_OpenAudio') 174 | register('getNumAudioDevices', 'SDL_GetNumAudioDevices') 175 | register('getAudioDeviceName', 'SDL_GetAudioDeviceName') 176 | register('openAudioDevice', 'SDL_OpenAudioDevice') 177 | register('getAudioStatus', 'SDL_GetAudioStatus') 178 | register('getAudioDeviceStatus', 'SDL_GetAudioDeviceStatus') 179 | register('pauseAudio', 'SDL_PauseAudio') 180 | register('pauseAudioDevice', 'SDL_PauseAudioDevice') 181 | register('loadWAV_RW', 'SDL_LoadWAV_RW') 182 | register('freeWAV', 'SDL_FreeWAV') 183 | register('buildAudioCVT', 'SDL_BuildAudioCVT') 184 | register('convertAudio', 'SDL_ConvertAudio') 185 | register('mixAudio', 'SDL_MixAudio') 186 | register('mixAudioFormat', 'SDL_MixAudioFormat') 187 | register('lockAudio', 'SDL_LockAudio') 188 | register('lockAudioDevice', 'SDL_LockAudioDevice') 189 | register('unlockAudio', 'SDL_UnlockAudio') 190 | register('unlockAudioDevice', 'SDL_UnlockAudioDevice') 191 | register('closeAudio', 'SDL_CloseAudio') 192 | register('closeAudioDevice', 'SDL_CloseAudioDevice') 193 | register('setClipboardText', 'SDL_SetClipboardText') 194 | register('getClipboardText', 'SDL_GetClipboardText') 195 | register('hasClipboardText', 'SDL_HasClipboardText') 196 | register('getCPUCount', 'SDL_GetCPUCount') 197 | register('getCPUCacheLineSize', 'SDL_GetCPUCacheLineSize') 198 | register('hasRDTSC', 'SDL_HasRDTSC') 199 | register('hasAltiVec', 'SDL_HasAltiVec') 200 | register('hasMMX', 'SDL_HasMMX') 201 | register('has3DNow', 'SDL_Has3DNow') 202 | register('hasSSE', 'SDL_HasSSE') 203 | register('hasSSE2', 'SDL_HasSSE2') 204 | register('hasSSE3', 'SDL_HasSSE3') 205 | register('hasSSE41', 'SDL_HasSSE41') 206 | register('hasSSE42', 'SDL_HasSSE42') 207 | register('getPixelFormatName', 'SDL_GetPixelFormatName') 208 | register('pixelFormatEnumToMasks', 'SDL_PixelFormatEnumToMasks') 209 | register('masksToPixelFormatEnum', 'SDL_MasksToPixelFormatEnum') 210 | register('allocFormat', 'SDL_AllocFormat') 211 | register('freeFormat', 'SDL_FreeFormat') 212 | register('allocPalette', 'SDL_AllocPalette') 213 | register('setPixelFormatPalette', 'SDL_SetPixelFormatPalette') 214 | register('setPaletteColors', 'SDL_SetPaletteColors') 215 | register('freePalette', 'SDL_FreePalette') 216 | register('mapRGB', 'SDL_MapRGB') 217 | register('mapRGBA', 'SDL_MapRGBA') 218 | register('getRGB', 'SDL_GetRGB') 219 | register('getRGBA', 'SDL_GetRGBA') 220 | register('calculateGammaRamp', 'SDL_CalculateGammaRamp') 221 | register('hasIntersection', 'SDL_HasIntersection') 222 | register('intersectRect', 'SDL_IntersectRect') 223 | register('unionRect', 'SDL_UnionRect') 224 | register('enclosePoints', 'SDL_EnclosePoints') 225 | register('intersectRectAndLine', 'SDL_IntersectRectAndLine') 226 | register('createRGBSurface', 'SDL_CreateRGBSurface') 227 | register('createRGBSurfaceFrom', 'SDL_CreateRGBSurfaceFrom') 228 | register('freeSurface', 'SDL_FreeSurface') 229 | register('setSurfacePalette', 'SDL_SetSurfacePalette') 230 | register('lockSurface', 'SDL_LockSurface') 231 | register('unlockSurface', 'SDL_UnlockSurface') 232 | register('loadBMP_RW', 'SDL_LoadBMP_RW') 233 | register('saveBMP_RW', 'SDL_SaveBMP_RW') 234 | register('setSurfaceRLE', 'SDL_SetSurfaceRLE') 235 | register('setColorKey', 'SDL_SetColorKey') 236 | register('getColorKey', 'SDL_GetColorKey') 237 | register('setSurfaceColorMod', 'SDL_SetSurfaceColorMod') 238 | register('getSurfaceColorMod', 'SDL_GetSurfaceColorMod') 239 | register('setSurfaceAlphaMod', 'SDL_SetSurfaceAlphaMod') 240 | register('getSurfaceAlphaMod', 'SDL_GetSurfaceAlphaMod') 241 | register('setSurfaceBlendMode', 'SDL_SetSurfaceBlendMode') 242 | register('getSurfaceBlendMode', 'SDL_GetSurfaceBlendMode') 243 | register('setClipRect', 'SDL_SetClipRect') 244 | register('getClipRect', 'SDL_GetClipRect') 245 | register('convertSurface', 'SDL_ConvertSurface') 246 | register('convertSurfaceFormat', 'SDL_ConvertSurfaceFormat') 247 | register('convertPixels', 'SDL_ConvertPixels') 248 | register('fillRect', 'SDL_FillRect') 249 | register('fillRects', 'SDL_FillRects') 250 | register('upperBlit', 'SDL_UpperBlit') 251 | register('lowerBlit', 'SDL_LowerBlit') 252 | register('softStretch', 'SDL_SoftStretch') 253 | register('upperBlitScaled', 'SDL_UpperBlitScaled') 254 | register('lowerBlitScaled', 'SDL_LowerBlitScaled') 255 | register('getNumVideoDrivers', 'SDL_GetNumVideoDrivers') 256 | register('getVideoDriver', 'SDL_GetVideoDriver') 257 | register('videoInit', 'SDL_VideoInit') 258 | register('videoQuit', 'SDL_VideoQuit') 259 | register('getCurrentVideoDriver', 'SDL_GetCurrentVideoDriver') 260 | register('getNumVideoDisplays', 'SDL_GetNumVideoDisplays') 261 | register('getDisplayName', 'SDL_GetDisplayName') 262 | register('getDisplayBounds', 'SDL_GetDisplayBounds') 263 | register('getNumDisplayModes', 'SDL_GetNumDisplayModes') 264 | register('getDisplayMode', 'SDL_GetDisplayMode') 265 | register('getDesktopDisplayMode', 'SDL_GetDesktopDisplayMode') 266 | register('getCurrentDisplayMode', 'SDL_GetCurrentDisplayMode') 267 | register('getClosestDisplayMode', 'SDL_GetClosestDisplayMode') 268 | register('getWindowDisplayIndex', 'SDL_GetWindowDisplayIndex') 269 | register('setWindowDisplayMode', 'SDL_SetWindowDisplayMode') 270 | register('getWindowDisplayMode', 'SDL_GetWindowDisplayMode') 271 | register('getWindowPixelFormat', 'SDL_GetWindowPixelFormat') 272 | register('createWindow', 'SDL_CreateWindow') 273 | register('createWindowFrom', 'SDL_CreateWindowFrom') 274 | register('getWindowID', 'SDL_GetWindowID') 275 | register('getWindowFromID', 'SDL_GetWindowFromID') 276 | register('getWindowFlags', 'SDL_GetWindowFlags') 277 | register('setWindowTitle', 'SDL_SetWindowTitle') 278 | register('getWindowTitle', 'SDL_GetWindowTitle') 279 | register('setWindowIcon', 'SDL_SetWindowIcon') 280 | register('setWindowData', 'SDL_SetWindowData') 281 | register('getWindowData', 'SDL_GetWindowData') 282 | register('setWindowPosition', 'SDL_SetWindowPosition') 283 | register('getWindowPosition', 'SDL_GetWindowPosition') 284 | register('setWindowSize', 'SDL_SetWindowSize') 285 | register('getWindowSize', 'SDL_GetWindowSize') 286 | register('setWindowMinimumSize', 'SDL_SetWindowMinimumSize') 287 | register('getWindowMinimumSize', 'SDL_GetWindowMinimumSize') 288 | register('setWindowMaximumSize', 'SDL_SetWindowMaximumSize') 289 | register('getWindowMaximumSize', 'SDL_GetWindowMaximumSize') 290 | register('setWindowBordered', 'SDL_SetWindowBordered') 291 | register('showWindow', 'SDL_ShowWindow') 292 | register('hideWindow', 'SDL_HideWindow') 293 | register('raiseWindow', 'SDL_RaiseWindow') 294 | register('maximizeWindow', 'SDL_MaximizeWindow') 295 | register('minimizeWindow', 'SDL_MinimizeWindow') 296 | register('restoreWindow', 'SDL_RestoreWindow') 297 | register('setWindowFullscreen', 'SDL_SetWindowFullscreen') 298 | register('getWindowSurface', 'SDL_GetWindowSurface') 299 | register('updateWindowSurface', 'SDL_UpdateWindowSurface') 300 | register('updateWindowSurfaceRects', 'SDL_UpdateWindowSurfaceRects') 301 | register('setWindowGrab', 'SDL_SetWindowGrab') 302 | register('getWindowGrab', 'SDL_GetWindowGrab') 303 | register('setWindowBrightness', 'SDL_SetWindowBrightness') 304 | register('getWindowBrightness', 'SDL_GetWindowBrightness') 305 | register('setWindowGammaRamp', 'SDL_SetWindowGammaRamp') 306 | register('getWindowGammaRamp', 'SDL_GetWindowGammaRamp') 307 | register('destroyWindow', 'SDL_DestroyWindow') 308 | register('isScreenSaverEnabled', 'SDL_IsScreenSaverEnabled') 309 | register('enableScreenSaver', 'SDL_EnableScreenSaver') 310 | register('disableScreenSaver', 'SDL_DisableScreenSaver') 311 | register('gL_LoadLibrary', 'SDL_GL_LoadLibrary') 312 | register('gL_GetProcAddress', 'SDL_GL_GetProcAddress') 313 | register('gL_UnloadLibrary', 'SDL_GL_UnloadLibrary') 314 | register('gL_ExtensionSupported', 'SDL_GL_ExtensionSupported') 315 | register('gL_SetAttribute', 'SDL_GL_SetAttribute') 316 | register('gL_GetAttribute', 'SDL_GL_GetAttribute') 317 | register('gL_CreateContext', 'SDL_GL_CreateContext') 318 | register('gL_MakeCurrent', 'SDL_GL_MakeCurrent') 319 | register('gL_GetCurrentWindow', 'SDL_GL_GetCurrentWindow') 320 | register('gL_GetCurrentContext', 'SDL_GL_GetCurrentContext') 321 | register('gL_SetSwapInterval', 'SDL_GL_SetSwapInterval') 322 | register('gL_GetSwapInterval', 'SDL_GL_GetSwapInterval') 323 | register('gL_SwapWindow', 'SDL_GL_SwapWindow') 324 | register('gL_DeleteContext', 'SDL_GL_DeleteContext') 325 | register('getKeyboardFocus', 'SDL_GetKeyboardFocus') 326 | register('getKeyboardState', 'SDL_GetKeyboardState') 327 | register('getModState', 'SDL_GetModState') 328 | register('setModState', 'SDL_SetModState') 329 | register('getKeyFromScancode', 'SDL_GetKeyFromScancode') 330 | register('getScancodeFromKey', 'SDL_GetScancodeFromKey') 331 | register('getScancodeName', 'SDL_GetScancodeName') 332 | register('getScancodeFromName', 'SDL_GetScancodeFromName') 333 | register('getKeyName', 'SDL_GetKeyName') 334 | register('getKeyFromName', 'SDL_GetKeyFromName') 335 | register('startTextInput', 'SDL_StartTextInput') 336 | register('isTextInputActive', 'SDL_IsTextInputActive') 337 | register('stopTextInput', 'SDL_StopTextInput') 338 | register('setTextInputRect', 'SDL_SetTextInputRect') 339 | register('hasScreenKeyboardSupport', 'SDL_HasScreenKeyboardSupport') 340 | register('isScreenKeyboardShown', 'SDL_IsScreenKeyboardShown') 341 | register('getMouseFocus', 'SDL_GetMouseFocus') 342 | register('getMouseState', 'SDL_GetMouseState') 343 | register('getRelativeMouseState', 'SDL_GetRelativeMouseState') 344 | register('warpMouseInWindow', 'SDL_WarpMouseInWindow') 345 | register('setRelativeMouseMode', 'SDL_SetRelativeMouseMode') 346 | register('getRelativeMouseMode', 'SDL_GetRelativeMouseMode') 347 | register('createCursor', 'SDL_CreateCursor') 348 | register('createColorCursor', 'SDL_CreateColorCursor') 349 | register('createSystemCursor', 'SDL_CreateSystemCursor') 350 | register('setCursor', 'SDL_SetCursor') 351 | register('getCursor', 'SDL_GetCursor') 352 | register('getDefaultCursor', 'SDL_GetDefaultCursor') 353 | register('freeCursor', 'SDL_FreeCursor') 354 | register('showCursor', 'SDL_ShowCursor') 355 | register('numJoysticks', 'SDL_NumJoysticks') 356 | register('joystickNameForIndex', 'SDL_JoystickNameForIndex') 357 | register('joystickOpen', 'SDL_JoystickOpen') 358 | register('joystickName', 'SDL_JoystickName') 359 | register('joystickGetDeviceGUID', 'SDL_JoystickGetDeviceGUID') 360 | register('joystickGetGUID', 'SDL_JoystickGetGUID') 361 | register('joystickGetGUIDString', 'SDL_JoystickGetGUIDString') 362 | register('joystickGetGUIDFromString', 'SDL_JoystickGetGUIDFromString') 363 | register('joystickGetAttached', 'SDL_JoystickGetAttached') 364 | register('joystickInstanceID', 'SDL_JoystickInstanceID') 365 | register('joystickNumAxes', 'SDL_JoystickNumAxes') 366 | register('joystickNumBalls', 'SDL_JoystickNumBalls') 367 | register('joystickNumHats', 'SDL_JoystickNumHats') 368 | register('joystickNumButtons', 'SDL_JoystickNumButtons') 369 | register('joystickUpdate', 'SDL_JoystickUpdate') 370 | register('joystickEventState', 'SDL_JoystickEventState') 371 | register('joystickGetAxis', 'SDL_JoystickGetAxis') 372 | register('joystickGetHat', 'SDL_JoystickGetHat') 373 | register('joystickGetBall', 'SDL_JoystickGetBall') 374 | register('joystickGetButton', 'SDL_JoystickGetButton') 375 | register('joystickClose', 'SDL_JoystickClose') 376 | register('gameControllerAddMapping', 'SDL_GameControllerAddMapping') 377 | register('gameControllerMappingForGUID', 'SDL_GameControllerMappingForGUID') 378 | register('gameControllerMapping', 'SDL_GameControllerMapping') 379 | register('isGameController', 'SDL_IsGameController') 380 | register('gameControllerNameForIndex', 'SDL_GameControllerNameForIndex') 381 | register('gameControllerOpen', 'SDL_GameControllerOpen') 382 | register('gameControllerName', 'SDL_GameControllerName') 383 | register('gameControllerGetAttached', 'SDL_GameControllerGetAttached') 384 | register('gameControllerGetJoystick', 'SDL_GameControllerGetJoystick') 385 | register('gameControllerEventState', 'SDL_GameControllerEventState') 386 | register('gameControllerUpdate', 'SDL_GameControllerUpdate') 387 | register('gameControllerGetAxisFromString', 'SDL_GameControllerGetAxisFromString') 388 | register('gameControllerGetStringForAxis', 'SDL_GameControllerGetStringForAxis') 389 | register('gameControllerGetBindForAxis', 'SDL_GameControllerGetBindForAxis') 390 | register('gameControllerGetAxis', 'SDL_GameControllerGetAxis') 391 | register('gameControllerGetButtonFromString', 'SDL_GameControllerGetButtonFromString') 392 | register('gameControllerGetStringForButton', 'SDL_GameControllerGetStringForButton') 393 | register('gameControllerGetBindForButton', 'SDL_GameControllerGetBindForButton') 394 | register('gameControllerGetButton', 'SDL_GameControllerGetButton') 395 | register('gameControllerClose', 'SDL_GameControllerClose') 396 | register('getNumTouchDevices', 'SDL_GetNumTouchDevices') 397 | register('getTouchDevice', 'SDL_GetTouchDevice') 398 | register('getNumTouchFingers', 'SDL_GetNumTouchFingers') 399 | register('getTouchFinger', 'SDL_GetTouchFinger') 400 | register('recordGesture', 'SDL_RecordGesture') 401 | register('saveAllDollarTemplates', 'SDL_SaveAllDollarTemplates') 402 | register('saveDollarTemplate', 'SDL_SaveDollarTemplate') 403 | register('loadDollarTemplates', 'SDL_LoadDollarTemplates') 404 | register('pumpEvents', 'SDL_PumpEvents') 405 | register('peepEvents', 'SDL_PeepEvents') 406 | register('hasEvent', 'SDL_HasEvent') 407 | register('hasEvents', 'SDL_HasEvents') 408 | register('flushEvent', 'SDL_FlushEvent') 409 | register('flushEvents', 'SDL_FlushEvents') 410 | register('pollEvent', 'SDL_PollEvent') 411 | register('waitEvent', 'SDL_WaitEvent') 412 | register('waitEventTimeout', 'SDL_WaitEventTimeout') 413 | register('pushEvent', 'SDL_PushEvent') 414 | register('setEventFilter', 'SDL_SetEventFilter') 415 | register('getEventFilter', 'SDL_GetEventFilter') 416 | register('addEventWatch', 'SDL_AddEventWatch') 417 | register('delEventWatch', 'SDL_DelEventWatch') 418 | register('filterEvents', 'SDL_FilterEvents') 419 | register('eventState', 'SDL_EventState') 420 | register('registerEvents', 'SDL_RegisterEvents') 421 | register('numHaptics', 'SDL_NumHaptics') 422 | register('hapticName', 'SDL_HapticName') 423 | register('hapticOpen', 'SDL_HapticOpen') 424 | register('hapticOpened', 'SDL_HapticOpened') 425 | register('hapticIndex', 'SDL_HapticIndex') 426 | register('mouseIsHaptic', 'SDL_MouseIsHaptic') 427 | register('hapticOpenFromMouse', 'SDL_HapticOpenFromMouse') 428 | register('joystickIsHaptic', 'SDL_JoystickIsHaptic') 429 | register('hapticOpenFromJoystick', 'SDL_HapticOpenFromJoystick') 430 | register('hapticClose', 'SDL_HapticClose') 431 | register('hapticNumEffects', 'SDL_HapticNumEffects') 432 | register('hapticNumEffectsPlaying', 'SDL_HapticNumEffectsPlaying') 433 | register('hapticQuery', 'SDL_HapticQuery') 434 | register('hapticNumAxes', 'SDL_HapticNumAxes') 435 | register('hapticEffectSupported', 'SDL_HapticEffectSupported') 436 | register('hapticNewEffect', 'SDL_HapticNewEffect') 437 | register('hapticUpdateEffect', 'SDL_HapticUpdateEffect') 438 | register('hapticRunEffect', 'SDL_HapticRunEffect') 439 | register('hapticStopEffect', 'SDL_HapticStopEffect') 440 | register('hapticDestroyEffect', 'SDL_HapticDestroyEffect') 441 | register('hapticGetEffectStatus', 'SDL_HapticGetEffectStatus') 442 | register('hapticSetGain', 'SDL_HapticSetGain') 443 | register('hapticSetAutocenter', 'SDL_HapticSetAutocenter') 444 | register('hapticPause', 'SDL_HapticPause') 445 | register('hapticUnpause', 'SDL_HapticUnpause') 446 | register('hapticStopAll', 'SDL_HapticStopAll') 447 | register('hapticRumbleSupported', 'SDL_HapticRumbleSupported') 448 | register('hapticRumbleInit', 'SDL_HapticRumbleInit') 449 | register('hapticRumblePlay', 'SDL_HapticRumblePlay') 450 | register('hapticRumbleStop', 'SDL_HapticRumbleStop') 451 | register('setHintWithPriority', 'SDL_SetHintWithPriority') 452 | register('setHint', 'SDL_SetHint') 453 | register('getHint', 'SDL_GetHint') 454 | register('addHintCallback', 'SDL_AddHintCallback') 455 | register('delHintCallback', 'SDL_DelHintCallback') 456 | register('clearHints', 'SDL_ClearHints') 457 | register('loadObject', 'SDL_LoadObject') 458 | register('loadFunction', 'SDL_LoadFunction') 459 | register('unloadObject', 'SDL_UnloadObject') 460 | register('logSetAllPriority', 'SDL_LogSetAllPriority') 461 | register('logSetPriority', 'SDL_LogSetPriority') 462 | register('logGetPriority', 'SDL_LogGetPriority') 463 | register('logResetPriorities', 'SDL_LogResetPriorities') 464 | register('log', 'SDL_Log') 465 | register('logVerbose', 'SDL_LogVerbose') 466 | register('logDebug', 'SDL_LogDebug') 467 | register('logInfo', 'SDL_LogInfo') 468 | register('logWarn', 'SDL_LogWarn') 469 | register('logError', 'SDL_LogError') 470 | register('logCritical', 'SDL_LogCritical') 471 | register('logMessage', 'SDL_LogMessage') 472 | register('logMessageV', 'SDL_LogMessageV') 473 | register('logGetOutputFunction', 'SDL_LogGetOutputFunction') 474 | register('logSetOutputFunction', 'SDL_LogSetOutputFunction') 475 | register('showMessageBox', 'SDL_ShowMessageBox') 476 | register('showSimpleMessageBox', 'SDL_ShowSimpleMessageBox') 477 | register('getPowerInfo', 'SDL_GetPowerInfo') 478 | register('getNumRenderDrivers', 'SDL_GetNumRenderDrivers') 479 | register('getRenderDriverInfo', 'SDL_GetRenderDriverInfo') 480 | register('createWindowAndRenderer', 'SDL_CreateWindowAndRenderer') 481 | register('createRenderer', 'SDL_CreateRenderer') 482 | register('createSoftwareRenderer', 'SDL_CreateSoftwareRenderer') 483 | register('getRenderer', 'SDL_GetRenderer') 484 | register('getRendererInfo', 'SDL_GetRendererInfo') 485 | register('getRendererOutputSize', 'SDL_GetRendererOutputSize') 486 | register('createTexture', 'SDL_CreateTexture') 487 | register('createTextureFromSurface', 'SDL_CreateTextureFromSurface') 488 | register('queryTexture', 'SDL_QueryTexture') 489 | register('setTextureColorMod', 'SDL_SetTextureColorMod') 490 | register('getTextureColorMod', 'SDL_GetTextureColorMod') 491 | register('setTextureAlphaMod', 'SDL_SetTextureAlphaMod') 492 | register('getTextureAlphaMod', 'SDL_GetTextureAlphaMod') 493 | register('setTextureBlendMode', 'SDL_SetTextureBlendMode') 494 | register('getTextureBlendMode', 'SDL_GetTextureBlendMode') 495 | register('updateTexture', 'SDL_UpdateTexture') 496 | register('lockTexture', 'SDL_LockTexture') 497 | register('unlockTexture', 'SDL_UnlockTexture') 498 | register('renderTargetSupported', 'SDL_RenderTargetSupported') 499 | register('setRenderTarget', 'SDL_SetRenderTarget') 500 | register('getRenderTarget', 'SDL_GetRenderTarget') 501 | register('renderSetLogicalSize', 'SDL_RenderSetLogicalSize') 502 | register('renderGetLogicalSize', 'SDL_RenderGetLogicalSize') 503 | register('renderSetViewport', 'SDL_RenderSetViewport') 504 | register('renderGetViewport', 'SDL_RenderGetViewport') 505 | register('renderSetClipRect', 'SDL_RenderSetClipRect') 506 | register('renderGetClipRect', 'SDL_RenderGetClipRect') 507 | register('renderSetScale', 'SDL_RenderSetScale') 508 | register('renderGetScale', 'SDL_RenderGetScale') 509 | register('setRenderDrawColor', 'SDL_SetRenderDrawColor') 510 | register('getRenderDrawColor', 'SDL_GetRenderDrawColor') 511 | register('setRenderDrawBlendMode', 'SDL_SetRenderDrawBlendMode') 512 | register('getRenderDrawBlendMode', 'SDL_GetRenderDrawBlendMode') 513 | register('renderClear', 'SDL_RenderClear') 514 | register('renderDrawPoint', 'SDL_RenderDrawPoint') 515 | register('renderDrawPoints', 'SDL_RenderDrawPoints') 516 | register('renderDrawLine', 'SDL_RenderDrawLine') 517 | register('renderDrawLines', 'SDL_RenderDrawLines') 518 | register('renderDrawRect', 'SDL_RenderDrawRect') 519 | register('renderDrawRects', 'SDL_RenderDrawRects') 520 | register('renderFillRect', 'SDL_RenderFillRect') 521 | register('renderFillRects', 'SDL_RenderFillRects') 522 | register('renderCopy', 'SDL_RenderCopy') 523 | register('renderCopyEx', 'SDL_RenderCopyEx') 524 | register('renderReadPixels', 'SDL_RenderReadPixels') 525 | register('renderPresent', 'SDL_RenderPresent') 526 | register('destroyTexture', 'SDL_DestroyTexture') 527 | register('destroyRenderer', 'SDL_DestroyRenderer') 528 | register('gL_BindTexture', 'SDL_GL_BindTexture') 529 | register('gL_UnbindTexture', 'SDL_GL_UnbindTexture') 530 | register('getTicks', 'SDL_GetTicks') 531 | register('getPerformanceCounter', 'SDL_GetPerformanceCounter') 532 | register('getPerformanceFrequency', 'SDL_GetPerformanceFrequency') 533 | register('delay', 'SDL_Delay') 534 | register('addTimer', 'SDL_AddTimer') 535 | register('removeTimer', 'SDL_RemoveTimer') 536 | register('getVersion', 'SDL_GetVersion') 537 | register('getRevision', 'SDL_GetRevision') 538 | register('getRevisionNumber', 'SDL_GetRevisionNumber') 539 | register('init', 'SDL_Init') 540 | register('initSubSystem', 'SDL_InitSubSystem') 541 | register('quitSubSystem', 'SDL_QuitSubSystem') 542 | register('wasInit', 'SDL_WasInit') 543 | register('quit', 'SDL_Quit') 544 | register('registerApp', 'SDL_RegisterApp') 545 | register('unregisterApp', 'SDL_UnregisterApp') 546 | 547 | register('FALSE', 'SDL_FALSE') 548 | register('TRUE', 'SDL_TRUE') 549 | register('DUMMY_ENUM', 'SDL_DUMMY_ENUM') 550 | register('DUMMY_ENUM', 'SDL_DUMMY_ENUM') 551 | register('ASSERTION_RETRY', 'SDL_ASSERTION_RETRY') 552 | register('ASSERTION_BREAK', 'SDL_ASSERTION_BREAK') 553 | register('ASSERTION_ABORT', 'SDL_ASSERTION_ABORT') 554 | register('ASSERTION_IGNORE', 'SDL_ASSERTION_IGNORE') 555 | register('ASSERTION_ALWAYS_IGNORE', 'SDL_ASSERTION_ALWAYS_IGNORE') 556 | register('ENOMEM', 'SDL_ENOMEM') 557 | register('EFREAD', 'SDL_EFREAD') 558 | register('EFWRITE', 'SDL_EFWRITE') 559 | register('EFSEEK', 'SDL_EFSEEK') 560 | register('UNSUPPORTED', 'SDL_UNSUPPORTED') 561 | register('LASTERROR', 'SDL_LASTERROR') 562 | register('TLSID', 'SDL_TLSID') 563 | register('THREAD_PRIORITY_LOW', 'SDL_THREAD_PRIORITY_LOW') 564 | register('THREAD_PRIORITY_NORMAL', 'SDL_THREAD_PRIORITY_NORMAL') 565 | register('THREAD_PRIORITY_HIGH', 'SDL_THREAD_PRIORITY_HIGH') 566 | register('TLSID', 'SDL_TLSID') 567 | register('TLSID', 'SDL_TLSID') 568 | register('TLSID', 'SDL_TLSID') 569 | register('AUDIO_STOPPED', 'SDL_AUDIO_STOPPED') 570 | register('AUDIO_PLAYING', 'SDL_AUDIO_PLAYING') 571 | register('AUDIO_PAUSED', 'SDL_AUDIO_PAUSED') 572 | register('PIXELTYPE_UNKNOWN', 'SDL_PIXELTYPE_UNKNOWN') 573 | register('PIXELTYPE_INDEX1', 'SDL_PIXELTYPE_INDEX1') 574 | register('PIXELTYPE_INDEX4', 'SDL_PIXELTYPE_INDEX4') 575 | register('PIXELTYPE_INDEX8', 'SDL_PIXELTYPE_INDEX8') 576 | register('PIXELTYPE_PACKED8', 'SDL_PIXELTYPE_PACKED8') 577 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 578 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 579 | register('PIXELTYPE_ARRAYU8', 'SDL_PIXELTYPE_ARRAYU8') 580 | register('PIXELTYPE_ARRAYU16', 'SDL_PIXELTYPE_ARRAYU16') 581 | register('PIXELTYPE_ARRAYU32', 'SDL_PIXELTYPE_ARRAYU32') 582 | register('PIXELTYPE_ARRAYF16', 'SDL_PIXELTYPE_ARRAYF16') 583 | register('PIXELTYPE_ARRAYF32', 'SDL_PIXELTYPE_ARRAYF32') 584 | register('BITMAPORDER_NONE', 'SDL_BITMAPORDER_NONE') 585 | register('BITMAPORDER_4321', 'SDL_BITMAPORDER_4321') 586 | register('BITMAPORDER_1234', 'SDL_BITMAPORDER_1234') 587 | register('PACKEDORDER_NONE', 'SDL_PACKEDORDER_NONE') 588 | register('PACKEDORDER_XRGB', 'SDL_PACKEDORDER_XRGB') 589 | register('PACKEDORDER_RGBX', 'SDL_PACKEDORDER_RGBX') 590 | register('PACKEDORDER_ARGB', 'SDL_PACKEDORDER_ARGB') 591 | register('PACKEDORDER_RGBA', 'SDL_PACKEDORDER_RGBA') 592 | register('PACKEDORDER_XBGR', 'SDL_PACKEDORDER_XBGR') 593 | register('PACKEDORDER_BGRX', 'SDL_PACKEDORDER_BGRX') 594 | register('PACKEDORDER_ABGR', 'SDL_PACKEDORDER_ABGR') 595 | register('PACKEDORDER_BGRA', 'SDL_PACKEDORDER_BGRA') 596 | register('ARRAYORDER_NONE', 'SDL_ARRAYORDER_NONE') 597 | register('ARRAYORDER_RGB', 'SDL_ARRAYORDER_RGB') 598 | register('ARRAYORDER_RGBA', 'SDL_ARRAYORDER_RGBA') 599 | register('ARRAYORDER_ARGB', 'SDL_ARRAYORDER_ARGB') 600 | register('ARRAYORDER_BGR', 'SDL_ARRAYORDER_BGR') 601 | register('ARRAYORDER_BGRA', 'SDL_ARRAYORDER_BGRA') 602 | register('ARRAYORDER_ABGR', 'SDL_ARRAYORDER_ABGR') 603 | register('PACKEDLAYOUT_NONE', 'SDL_PACKEDLAYOUT_NONE') 604 | register('PACKEDLAYOUT_332', 'SDL_PACKEDLAYOUT_332') 605 | register('PACKEDLAYOUT_4444', 'SDL_PACKEDLAYOUT_4444') 606 | register('PACKEDLAYOUT_1555', 'SDL_PACKEDLAYOUT_1555') 607 | register('PACKEDLAYOUT_5551', 'SDL_PACKEDLAYOUT_5551') 608 | register('PACKEDLAYOUT_565', 'SDL_PACKEDLAYOUT_565') 609 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 610 | register('PACKEDLAYOUT_2101010', 'SDL_PACKEDLAYOUT_2101010') 611 | register('PACKEDLAYOUT_1010102', 'SDL_PACKEDLAYOUT_1010102') 612 | register('PIXELFORMAT_UNKNOWN', 'SDL_PIXELFORMAT_UNKNOWN') 613 | register('PIXELFORMAT_INDEX1LSB', 'SDL_PIXELFORMAT_INDEX1LSB') 614 | register('PIXELTYPE_INDEX1', 'SDL_PIXELTYPE_INDEX1') 615 | register('BITMAPORDER_4321', 'SDL_BITMAPORDER_4321') 616 | register('PIXELFORMAT_INDEX1MSB', 'SDL_PIXELFORMAT_INDEX1MSB') 617 | register('PIXELTYPE_INDEX1', 'SDL_PIXELTYPE_INDEX1') 618 | register('BITMAPORDER_1234', 'SDL_BITMAPORDER_1234') 619 | register('PIXELFORMAT_INDEX4LSB', 'SDL_PIXELFORMAT_INDEX4LSB') 620 | register('PIXELTYPE_INDEX4', 'SDL_PIXELTYPE_INDEX4') 621 | register('BITMAPORDER_4321', 'SDL_BITMAPORDER_4321') 622 | register('PIXELFORMAT_INDEX4MSB', 'SDL_PIXELFORMAT_INDEX4MSB') 623 | register('PIXELTYPE_INDEX4', 'SDL_PIXELTYPE_INDEX4') 624 | register('BITMAPORDER_1234', 'SDL_BITMAPORDER_1234') 625 | register('PIXELFORMAT_INDEX8', 'SDL_PIXELFORMAT_INDEX8') 626 | register('PIXELTYPE_INDEX8', 'SDL_PIXELTYPE_INDEX8') 627 | register('PIXELFORMAT_RGB332', 'SDL_PIXELFORMAT_RGB332') 628 | register('PIXELTYPE_PACKED8', 'SDL_PIXELTYPE_PACKED8') 629 | register('PACKEDORDER_XRGB', 'SDL_PACKEDORDER_XRGB') 630 | register('PACKEDLAYOUT_332', 'SDL_PACKEDLAYOUT_332') 631 | register('PIXELFORMAT_RGB444', 'SDL_PIXELFORMAT_RGB444') 632 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 633 | register('PACKEDORDER_XRGB', 'SDL_PACKEDORDER_XRGB') 634 | register('PACKEDLAYOUT_4444', 'SDL_PACKEDLAYOUT_4444') 635 | register('PIXELFORMAT_RGB555', 'SDL_PIXELFORMAT_RGB555') 636 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 637 | register('PACKEDORDER_XRGB', 'SDL_PACKEDORDER_XRGB') 638 | register('PACKEDLAYOUT_1555', 'SDL_PACKEDLAYOUT_1555') 639 | register('PIXELFORMAT_BGR555', 'SDL_PIXELFORMAT_BGR555') 640 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 641 | register('PACKEDORDER_XBGR', 'SDL_PACKEDORDER_XBGR') 642 | register('PACKEDLAYOUT_1555', 'SDL_PACKEDLAYOUT_1555') 643 | register('PIXELFORMAT_ARGB4444', 'SDL_PIXELFORMAT_ARGB4444') 644 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 645 | register('PACKEDORDER_ARGB', 'SDL_PACKEDORDER_ARGB') 646 | register('PACKEDLAYOUT_4444', 'SDL_PACKEDLAYOUT_4444') 647 | register('PIXELFORMAT_RGBA4444', 'SDL_PIXELFORMAT_RGBA4444') 648 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 649 | register('PACKEDORDER_RGBA', 'SDL_PACKEDORDER_RGBA') 650 | register('PACKEDLAYOUT_4444', 'SDL_PACKEDLAYOUT_4444') 651 | register('PIXELFORMAT_ABGR4444', 'SDL_PIXELFORMAT_ABGR4444') 652 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 653 | register('PACKEDORDER_ABGR', 'SDL_PACKEDORDER_ABGR') 654 | register('PACKEDLAYOUT_4444', 'SDL_PACKEDLAYOUT_4444') 655 | register('PIXELFORMAT_BGRA4444', 'SDL_PIXELFORMAT_BGRA4444') 656 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 657 | register('PACKEDORDER_BGRA', 'SDL_PACKEDORDER_BGRA') 658 | register('PACKEDLAYOUT_4444', 'SDL_PACKEDLAYOUT_4444') 659 | register('PIXELFORMAT_ARGB1555', 'SDL_PIXELFORMAT_ARGB1555') 660 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 661 | register('PACKEDORDER_ARGB', 'SDL_PACKEDORDER_ARGB') 662 | register('PACKEDLAYOUT_1555', 'SDL_PACKEDLAYOUT_1555') 663 | register('PIXELFORMAT_RGBA5551', 'SDL_PIXELFORMAT_RGBA5551') 664 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 665 | register('PACKEDORDER_RGBA', 'SDL_PACKEDORDER_RGBA') 666 | register('PACKEDLAYOUT_5551', 'SDL_PACKEDLAYOUT_5551') 667 | register('PIXELFORMAT_ABGR1555', 'SDL_PIXELFORMAT_ABGR1555') 668 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 669 | register('PACKEDORDER_ABGR', 'SDL_PACKEDORDER_ABGR') 670 | register('PACKEDLAYOUT_1555', 'SDL_PACKEDLAYOUT_1555') 671 | register('PIXELFORMAT_BGRA5551', 'SDL_PIXELFORMAT_BGRA5551') 672 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 673 | register('PACKEDORDER_BGRA', 'SDL_PACKEDORDER_BGRA') 674 | register('PACKEDLAYOUT_5551', 'SDL_PACKEDLAYOUT_5551') 675 | register('PIXELFORMAT_RGB565', 'SDL_PIXELFORMAT_RGB565') 676 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 677 | register('PACKEDORDER_XRGB', 'SDL_PACKEDORDER_XRGB') 678 | register('PACKEDLAYOUT_565', 'SDL_PACKEDLAYOUT_565') 679 | register('PIXELFORMAT_BGR565', 'SDL_PIXELFORMAT_BGR565') 680 | register('PIXELTYPE_PACKED16', 'SDL_PIXELTYPE_PACKED16') 681 | register('PACKEDORDER_XBGR', 'SDL_PACKEDORDER_XBGR') 682 | register('PACKEDLAYOUT_565', 'SDL_PACKEDLAYOUT_565') 683 | register('PIXELFORMAT_RGB24', 'SDL_PIXELFORMAT_RGB24') 684 | register('PIXELTYPE_ARRAYU8', 'SDL_PIXELTYPE_ARRAYU8') 685 | register('ARRAYORDER_RGB', 'SDL_ARRAYORDER_RGB') 686 | register('PIXELFORMAT_BGR24', 'SDL_PIXELFORMAT_BGR24') 687 | register('PIXELTYPE_ARRAYU8', 'SDL_PIXELTYPE_ARRAYU8') 688 | register('ARRAYORDER_BGR', 'SDL_ARRAYORDER_BGR') 689 | register('PIXELFORMAT_RGB888', 'SDL_PIXELFORMAT_RGB888') 690 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 691 | register('PACKEDORDER_XRGB', 'SDL_PACKEDORDER_XRGB') 692 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 693 | register('PIXELFORMAT_RGBX8888', 'SDL_PIXELFORMAT_RGBX8888') 694 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 695 | register('PACKEDORDER_RGBX', 'SDL_PACKEDORDER_RGBX') 696 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 697 | register('PIXELFORMAT_BGR888', 'SDL_PIXELFORMAT_BGR888') 698 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 699 | register('PACKEDORDER_XBGR', 'SDL_PACKEDORDER_XBGR') 700 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 701 | register('PIXELFORMAT_BGRX8888', 'SDL_PIXELFORMAT_BGRX8888') 702 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 703 | register('PACKEDORDER_BGRX', 'SDL_PACKEDORDER_BGRX') 704 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 705 | register('PIXELFORMAT_ARGB8888', 'SDL_PIXELFORMAT_ARGB8888') 706 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 707 | register('PACKEDORDER_ARGB', 'SDL_PACKEDORDER_ARGB') 708 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 709 | register('PIXELFORMAT_RGBA8888', 'SDL_PIXELFORMAT_RGBA8888') 710 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 711 | register('PACKEDORDER_RGBA', 'SDL_PACKEDORDER_RGBA') 712 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 713 | register('PIXELFORMAT_ABGR8888', 'SDL_PIXELFORMAT_ABGR8888') 714 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 715 | register('PACKEDORDER_ABGR', 'SDL_PACKEDORDER_ABGR') 716 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 717 | register('PIXELFORMAT_BGRA8888', 'SDL_PIXELFORMAT_BGRA8888') 718 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 719 | register('PACKEDORDER_BGRA', 'SDL_PACKEDORDER_BGRA') 720 | register('PACKEDLAYOUT_8888', 'SDL_PACKEDLAYOUT_8888') 721 | register('PIXELFORMAT_ARGB2101010', 'SDL_PIXELFORMAT_ARGB2101010') 722 | register('PIXELTYPE_PACKED32', 'SDL_PIXELTYPE_PACKED32') 723 | register('PACKEDORDER_ARGB', 'SDL_PACKEDORDER_ARGB') 724 | register('PACKEDLAYOUT_2101010', 'SDL_PACKEDLAYOUT_2101010') 725 | register('PIXELFORMAT_YV12', 'SDL_PIXELFORMAT_YV12') 726 | register('PIXELFORMAT_IYUV', 'SDL_PIXELFORMAT_IYUV') 727 | register('PIXELFORMAT_YUY2', 'SDL_PIXELFORMAT_YUY2') 728 | register('PIXELFORMAT_UYVY', 'SDL_PIXELFORMAT_UYVY') 729 | register('PIXELFORMAT_YVYU', 'SDL_PIXELFORMAT_YVYU') 730 | register('BLENDMODE_NONE', 'SDL_BLENDMODE_NONE') 731 | register('BLENDMODE_BLEND', 'SDL_BLENDMODE_BLEND') 732 | register('BLENDMODE_ADD', 'SDL_BLENDMODE_ADD') 733 | register('BLENDMODE_MOD', 'SDL_BLENDMODE_MOD') 734 | register('WINDOW_FULLSCREEN', 'SDL_WINDOW_FULLSCREEN') 735 | register('WINDOW_OPENGL', 'SDL_WINDOW_OPENGL') 736 | register('WINDOW_SHOWN', 'SDL_WINDOW_SHOWN') 737 | register('WINDOW_HIDDEN', 'SDL_WINDOW_HIDDEN') 738 | register('WINDOW_BORDERLESS', 'SDL_WINDOW_BORDERLESS') 739 | register('WINDOW_RESIZABLE', 'SDL_WINDOW_RESIZABLE') 740 | register('WINDOW_MINIMIZED', 'SDL_WINDOW_MINIMIZED') 741 | register('WINDOW_MAXIMIZED', 'SDL_WINDOW_MAXIMIZED') 742 | register('WINDOW_INPUT_GRABBED', 'SDL_WINDOW_INPUT_GRABBED') 743 | register('WINDOW_INPUT_FOCUS', 'SDL_WINDOW_INPUT_FOCUS') 744 | register('WINDOW_MOUSE_FOCUS', 'SDL_WINDOW_MOUSE_FOCUS') 745 | register('WINDOW_FULLSCREEN_DESKTOP', 'SDL_WINDOW_FULLSCREEN_DESKTOP') 746 | register('WINDOW_FULLSCREEN', 'SDL_WINDOW_FULLSCREEN') 747 | register('WINDOW_FOREIGN', 'SDL_WINDOW_FOREIGN') 748 | register('WINDOWEVENT_NONE', 'SDL_WINDOWEVENT_NONE') 749 | register('WINDOWEVENT_SHOWN', 'SDL_WINDOWEVENT_SHOWN') 750 | register('WINDOWEVENT_HIDDEN', 'SDL_WINDOWEVENT_HIDDEN') 751 | register('WINDOWEVENT_EXPOSED', 'SDL_WINDOWEVENT_EXPOSED') 752 | register('WINDOWEVENT_MOVED', 'SDL_WINDOWEVENT_MOVED') 753 | register('WINDOWEVENT_RESIZED', 'SDL_WINDOWEVENT_RESIZED') 754 | register('WINDOWEVENT_SIZE_CHANGED', 'SDL_WINDOWEVENT_SIZE_CHANGED') 755 | register('WINDOWEVENT_MINIMIZED', 'SDL_WINDOWEVENT_MINIMIZED') 756 | register('WINDOWEVENT_MAXIMIZED', 'SDL_WINDOWEVENT_MAXIMIZED') 757 | register('WINDOWEVENT_RESTORED', 'SDL_WINDOWEVENT_RESTORED') 758 | register('WINDOWEVENT_ENTER', 'SDL_WINDOWEVENT_ENTER') 759 | register('WINDOWEVENT_LEAVE', 'SDL_WINDOWEVENT_LEAVE') 760 | register('WINDOWEVENT_FOCUS_GAINED', 'SDL_WINDOWEVENT_FOCUS_GAINED') 761 | register('WINDOWEVENT_FOCUS_LOST', 'SDL_WINDOWEVENT_FOCUS_LOST') 762 | register('WINDOWEVENT_CLOSE', 'SDL_WINDOWEVENT_CLOSE') 763 | register('GL_RED_SIZE', 'SDL_GL_RED_SIZE') 764 | register('GL_GREEN_SIZE', 'SDL_GL_GREEN_SIZE') 765 | register('GL_BLUE_SIZE', 'SDL_GL_BLUE_SIZE') 766 | register('GL_ALPHA_SIZE', 'SDL_GL_ALPHA_SIZE') 767 | register('GL_BUFFER_SIZE', 'SDL_GL_BUFFER_SIZE') 768 | register('GL_DOUBLEBUFFER', 'SDL_GL_DOUBLEBUFFER') 769 | register('GL_DEPTH_SIZE', 'SDL_GL_DEPTH_SIZE') 770 | register('GL_STENCIL_SIZE', 'SDL_GL_STENCIL_SIZE') 771 | register('GL_ACCUM_RED_SIZE', 'SDL_GL_ACCUM_RED_SIZE') 772 | register('GL_ACCUM_GREEN_SIZE', 'SDL_GL_ACCUM_GREEN_SIZE') 773 | register('GL_ACCUM_BLUE_SIZE', 'SDL_GL_ACCUM_BLUE_SIZE') 774 | register('GL_ACCUM_ALPHA_SIZE', 'SDL_GL_ACCUM_ALPHA_SIZE') 775 | register('GL_STEREO', 'SDL_GL_STEREO') 776 | register('GL_MULTISAMPLEBUFFERS', 'SDL_GL_MULTISAMPLEBUFFERS') 777 | register('GL_MULTISAMPLESAMPLES', 'SDL_GL_MULTISAMPLESAMPLES') 778 | register('GL_ACCELERATED_VISUAL', 'SDL_GL_ACCELERATED_VISUAL') 779 | register('GL_RETAINED_BACKING', 'SDL_GL_RETAINED_BACKING') 780 | register('GL_CONTEXT_MAJOR_VERSION', 'SDL_GL_CONTEXT_MAJOR_VERSION') 781 | register('GL_CONTEXT_MINOR_VERSION', 'SDL_GL_CONTEXT_MINOR_VERSION') 782 | register('GL_CONTEXT_EGL', 'SDL_GL_CONTEXT_EGL') 783 | register('GL_CONTEXT_FLAGS', 'SDL_GL_CONTEXT_FLAGS') 784 | register('GL_CONTEXT_PROFILE_MASK', 'SDL_GL_CONTEXT_PROFILE_MASK') 785 | register('GL_SHARE_WITH_CURRENT_CONTEXT', 'SDL_GL_SHARE_WITH_CURRENT_CONTEXT') 786 | register('GL_CONTEXT_PROFILE_CORE', 'SDL_GL_CONTEXT_PROFILE_CORE') 787 | register('GL_CONTEXT_PROFILE_COMPATIBILITY', 'SDL_GL_CONTEXT_PROFILE_COMPATIBILITY') 788 | register('GL_CONTEXT_PROFILE_ES', 'SDL_GL_CONTEXT_PROFILE_ES') 789 | register('GL_CONTEXT_DEBUG_FLAG', 'SDL_GL_CONTEXT_DEBUG_FLAG') 790 | register('GL_CONTEXT_FORWARD_COMPATIBLE_FLAG', 'SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG') 791 | register('GL_CONTEXT_ROBUST_ACCESS_FLAG', 'SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG') 792 | register('GL_CONTEXT_RESET_ISOLATION_FLAG', 'SDL_GL_CONTEXT_RESET_ISOLATION_FLAG') 793 | register('SCANCODE_UNKNOWN', 'SDL_SCANCODE_UNKNOWN') 794 | register('SCANCODE_A', 'SDL_SCANCODE_A') 795 | register('SCANCODE_B', 'SDL_SCANCODE_B') 796 | register('SCANCODE_C', 'SDL_SCANCODE_C') 797 | register('SCANCODE_D', 'SDL_SCANCODE_D') 798 | register('SCANCODE_E', 'SDL_SCANCODE_E') 799 | register('SCANCODE_F', 'SDL_SCANCODE_F') 800 | register('SCANCODE_G', 'SDL_SCANCODE_G') 801 | register('SCANCODE_H', 'SDL_SCANCODE_H') 802 | register('SCANCODE_I', 'SDL_SCANCODE_I') 803 | register('SCANCODE_J', 'SDL_SCANCODE_J') 804 | register('SCANCODE_K', 'SDL_SCANCODE_K') 805 | register('SCANCODE_L', 'SDL_SCANCODE_L') 806 | register('SCANCODE_M', 'SDL_SCANCODE_M') 807 | register('SCANCODE_N', 'SDL_SCANCODE_N') 808 | register('SCANCODE_O', 'SDL_SCANCODE_O') 809 | register('SCANCODE_P', 'SDL_SCANCODE_P') 810 | register('SCANCODE_Q', 'SDL_SCANCODE_Q') 811 | register('SCANCODE_R', 'SDL_SCANCODE_R') 812 | register('SCANCODE_S', 'SDL_SCANCODE_S') 813 | register('SCANCODE_T', 'SDL_SCANCODE_T') 814 | register('SCANCODE_U', 'SDL_SCANCODE_U') 815 | register('SCANCODE_V', 'SDL_SCANCODE_V') 816 | register('SCANCODE_W', 'SDL_SCANCODE_W') 817 | register('SCANCODE_X', 'SDL_SCANCODE_X') 818 | register('SCANCODE_Y', 'SDL_SCANCODE_Y') 819 | register('SCANCODE_Z', 'SDL_SCANCODE_Z') 820 | register('SCANCODE_1', 'SDL_SCANCODE_1') 821 | register('SCANCODE_2', 'SDL_SCANCODE_2') 822 | register('SCANCODE_3', 'SDL_SCANCODE_3') 823 | register('SCANCODE_4', 'SDL_SCANCODE_4') 824 | register('SCANCODE_5', 'SDL_SCANCODE_5') 825 | register('SCANCODE_6', 'SDL_SCANCODE_6') 826 | register('SCANCODE_7', 'SDL_SCANCODE_7') 827 | register('SCANCODE_8', 'SDL_SCANCODE_8') 828 | register('SCANCODE_9', 'SDL_SCANCODE_9') 829 | register('SCANCODE_0', 'SDL_SCANCODE_0') 830 | register('SCANCODE_RETURN', 'SDL_SCANCODE_RETURN') 831 | register('SCANCODE_ESCAPE', 'SDL_SCANCODE_ESCAPE') 832 | register('SCANCODE_BACKSPACE', 'SDL_SCANCODE_BACKSPACE') 833 | register('SCANCODE_TAB', 'SDL_SCANCODE_TAB') 834 | register('SCANCODE_SPACE', 'SDL_SCANCODE_SPACE') 835 | register('SCANCODE_MINUS', 'SDL_SCANCODE_MINUS') 836 | register('SCANCODE_EQUALS', 'SDL_SCANCODE_EQUALS') 837 | register('SCANCODE_LEFTBRACKET', 'SDL_SCANCODE_LEFTBRACKET') 838 | register('SCANCODE_RIGHTBRACKET', 'SDL_SCANCODE_RIGHTBRACKET') 839 | register('SCANCODE_BACKSLASH', 'SDL_SCANCODE_BACKSLASH') 840 | register('SCANCODE_NONUSHASH', 'SDL_SCANCODE_NONUSHASH') 841 | register('SCANCODE_SEMICOLON', 'SDL_SCANCODE_SEMICOLON') 842 | register('SCANCODE_APOSTROPHE', 'SDL_SCANCODE_APOSTROPHE') 843 | register('SCANCODE_GRAVE', 'SDL_SCANCODE_GRAVE') 844 | register('SCANCODE_COMMA', 'SDL_SCANCODE_COMMA') 845 | register('SCANCODE_PERIOD', 'SDL_SCANCODE_PERIOD') 846 | register('SCANCODE_SLASH', 'SDL_SCANCODE_SLASH') 847 | register('SCANCODE_CAPSLOCK', 'SDL_SCANCODE_CAPSLOCK') 848 | register('SCANCODE_F1', 'SDL_SCANCODE_F1') 849 | register('SCANCODE_F2', 'SDL_SCANCODE_F2') 850 | register('SCANCODE_F3', 'SDL_SCANCODE_F3') 851 | register('SCANCODE_F4', 'SDL_SCANCODE_F4') 852 | register('SCANCODE_F5', 'SDL_SCANCODE_F5') 853 | register('SCANCODE_F6', 'SDL_SCANCODE_F6') 854 | register('SCANCODE_F7', 'SDL_SCANCODE_F7') 855 | register('SCANCODE_F8', 'SDL_SCANCODE_F8') 856 | register('SCANCODE_F9', 'SDL_SCANCODE_F9') 857 | register('SCANCODE_F10', 'SDL_SCANCODE_F10') 858 | register('SCANCODE_F11', 'SDL_SCANCODE_F11') 859 | register('SCANCODE_F12', 'SDL_SCANCODE_F12') 860 | register('SCANCODE_PRINTSCREEN', 'SDL_SCANCODE_PRINTSCREEN') 861 | register('SCANCODE_SCROLLLOCK', 'SDL_SCANCODE_SCROLLLOCK') 862 | register('SCANCODE_PAUSE', 'SDL_SCANCODE_PAUSE') 863 | register('SCANCODE_INSERT', 'SDL_SCANCODE_INSERT') 864 | register('SCANCODE_HOME', 'SDL_SCANCODE_HOME') 865 | register('SCANCODE_PAGEUP', 'SDL_SCANCODE_PAGEUP') 866 | register('SCANCODE_DELETE', 'SDL_SCANCODE_DELETE') 867 | register('SCANCODE_END', 'SDL_SCANCODE_END') 868 | register('SCANCODE_PAGEDOWN', 'SDL_SCANCODE_PAGEDOWN') 869 | register('SCANCODE_RIGHT', 'SDL_SCANCODE_RIGHT') 870 | register('SCANCODE_LEFT', 'SDL_SCANCODE_LEFT') 871 | register('SCANCODE_DOWN', 'SDL_SCANCODE_DOWN') 872 | register('SCANCODE_UP', 'SDL_SCANCODE_UP') 873 | register('SCANCODE_NUMLOCKCLEAR', 'SDL_SCANCODE_NUMLOCKCLEAR') 874 | register('SCANCODE_KP_DIVIDE', 'SDL_SCANCODE_KP_DIVIDE') 875 | register('SCANCODE_KP_MULTIPLY', 'SDL_SCANCODE_KP_MULTIPLY') 876 | register('SCANCODE_KP_MINUS', 'SDL_SCANCODE_KP_MINUS') 877 | register('SCANCODE_KP_PLUS', 'SDL_SCANCODE_KP_PLUS') 878 | register('SCANCODE_KP_ENTER', 'SDL_SCANCODE_KP_ENTER') 879 | register('SCANCODE_KP_1', 'SDL_SCANCODE_KP_1') 880 | register('SCANCODE_KP_2', 'SDL_SCANCODE_KP_2') 881 | register('SCANCODE_KP_3', 'SDL_SCANCODE_KP_3') 882 | register('SCANCODE_KP_4', 'SDL_SCANCODE_KP_4') 883 | register('SCANCODE_KP_5', 'SDL_SCANCODE_KP_5') 884 | register('SCANCODE_KP_6', 'SDL_SCANCODE_KP_6') 885 | register('SCANCODE_KP_7', 'SDL_SCANCODE_KP_7') 886 | register('SCANCODE_KP_8', 'SDL_SCANCODE_KP_8') 887 | register('SCANCODE_KP_9', 'SDL_SCANCODE_KP_9') 888 | register('SCANCODE_KP_0', 'SDL_SCANCODE_KP_0') 889 | register('SCANCODE_KP_PERIOD', 'SDL_SCANCODE_KP_PERIOD') 890 | register('SCANCODE_NONUSBACKSLASH', 'SDL_SCANCODE_NONUSBACKSLASH') 891 | register('SCANCODE_APPLICATION', 'SDL_SCANCODE_APPLICATION') 892 | register('SCANCODE_POWER', 'SDL_SCANCODE_POWER') 893 | register('SCANCODE_KP_EQUALS', 'SDL_SCANCODE_KP_EQUALS') 894 | register('SCANCODE_F13', 'SDL_SCANCODE_F13') 895 | register('SCANCODE_F14', 'SDL_SCANCODE_F14') 896 | register('SCANCODE_F15', 'SDL_SCANCODE_F15') 897 | register('SCANCODE_F16', 'SDL_SCANCODE_F16') 898 | register('SCANCODE_F17', 'SDL_SCANCODE_F17') 899 | register('SCANCODE_F18', 'SDL_SCANCODE_F18') 900 | register('SCANCODE_F19', 'SDL_SCANCODE_F19') 901 | register('SCANCODE_F20', 'SDL_SCANCODE_F20') 902 | register('SCANCODE_F21', 'SDL_SCANCODE_F21') 903 | register('SCANCODE_F22', 'SDL_SCANCODE_F22') 904 | register('SCANCODE_F23', 'SDL_SCANCODE_F23') 905 | register('SCANCODE_F24', 'SDL_SCANCODE_F24') 906 | register('SCANCODE_EXECUTE', 'SDL_SCANCODE_EXECUTE') 907 | register('SCANCODE_HELP', 'SDL_SCANCODE_HELP') 908 | register('SCANCODE_MENU', 'SDL_SCANCODE_MENU') 909 | register('SCANCODE_SELECT', 'SDL_SCANCODE_SELECT') 910 | register('SCANCODE_STOP', 'SDL_SCANCODE_STOP') 911 | register('SCANCODE_AGAIN', 'SDL_SCANCODE_AGAIN') 912 | register('SCANCODE_UNDO', 'SDL_SCANCODE_UNDO') 913 | register('SCANCODE_CUT', 'SDL_SCANCODE_CUT') 914 | register('SCANCODE_COPY', 'SDL_SCANCODE_COPY') 915 | register('SCANCODE_PASTE', 'SDL_SCANCODE_PASTE') 916 | register('SCANCODE_FIND', 'SDL_SCANCODE_FIND') 917 | register('SCANCODE_MUTE', 'SDL_SCANCODE_MUTE') 918 | register('SCANCODE_VOLUMEUP', 'SDL_SCANCODE_VOLUMEUP') 919 | register('SCANCODE_VOLUMEDOWN', 'SDL_SCANCODE_VOLUMEDOWN') 920 | register('SCANCODE_KP_COMMA', 'SDL_SCANCODE_KP_COMMA') 921 | register('SCANCODE_KP_EQUALSAS400', 'SDL_SCANCODE_KP_EQUALSAS400') 922 | register('SCANCODE_INTERNATIONAL1', 'SDL_SCANCODE_INTERNATIONAL1') 923 | register('SCANCODE_INTERNATIONAL2', 'SDL_SCANCODE_INTERNATIONAL2') 924 | register('SCANCODE_INTERNATIONAL3', 'SDL_SCANCODE_INTERNATIONAL3') 925 | register('SCANCODE_INTERNATIONAL4', 'SDL_SCANCODE_INTERNATIONAL4') 926 | register('SCANCODE_INTERNATIONAL5', 'SDL_SCANCODE_INTERNATIONAL5') 927 | register('SCANCODE_INTERNATIONAL6', 'SDL_SCANCODE_INTERNATIONAL6') 928 | register('SCANCODE_INTERNATIONAL7', 'SDL_SCANCODE_INTERNATIONAL7') 929 | register('SCANCODE_INTERNATIONAL8', 'SDL_SCANCODE_INTERNATIONAL8') 930 | register('SCANCODE_INTERNATIONAL9', 'SDL_SCANCODE_INTERNATIONAL9') 931 | register('SCANCODE_LANG1', 'SDL_SCANCODE_LANG1') 932 | register('SCANCODE_LANG2', 'SDL_SCANCODE_LANG2') 933 | register('SCANCODE_LANG3', 'SDL_SCANCODE_LANG3') 934 | register('SCANCODE_LANG4', 'SDL_SCANCODE_LANG4') 935 | register('SCANCODE_LANG5', 'SDL_SCANCODE_LANG5') 936 | register('SCANCODE_LANG6', 'SDL_SCANCODE_LANG6') 937 | register('SCANCODE_LANG7', 'SDL_SCANCODE_LANG7') 938 | register('SCANCODE_LANG8', 'SDL_SCANCODE_LANG8') 939 | register('SCANCODE_LANG9', 'SDL_SCANCODE_LANG9') 940 | register('SCANCODE_ALTERASE', 'SDL_SCANCODE_ALTERASE') 941 | register('SCANCODE_SYSREQ', 'SDL_SCANCODE_SYSREQ') 942 | register('SCANCODE_CANCEL', 'SDL_SCANCODE_CANCEL') 943 | register('SCANCODE_CLEAR', 'SDL_SCANCODE_CLEAR') 944 | register('SCANCODE_PRIOR', 'SDL_SCANCODE_PRIOR') 945 | register('SCANCODE_RETURN2', 'SDL_SCANCODE_RETURN2') 946 | register('SCANCODE_SEPARATOR', 'SDL_SCANCODE_SEPARATOR') 947 | register('SCANCODE_OUT', 'SDL_SCANCODE_OUT') 948 | register('SCANCODE_OPER', 'SDL_SCANCODE_OPER') 949 | register('SCANCODE_CLEARAGAIN', 'SDL_SCANCODE_CLEARAGAIN') 950 | register('SCANCODE_CRSEL', 'SDL_SCANCODE_CRSEL') 951 | register('SCANCODE_EXSEL', 'SDL_SCANCODE_EXSEL') 952 | register('SCANCODE_KP_00', 'SDL_SCANCODE_KP_00') 953 | register('SCANCODE_KP_000', 'SDL_SCANCODE_KP_000') 954 | register('SCANCODE_THOUSANDSSEPARATOR', 'SDL_SCANCODE_THOUSANDSSEPARATOR') 955 | register('SCANCODE_DECIMALSEPARATOR', 'SDL_SCANCODE_DECIMALSEPARATOR') 956 | register('SCANCODE_CURRENCYUNIT', 'SDL_SCANCODE_CURRENCYUNIT') 957 | register('SCANCODE_CURRENCYSUBUNIT', 'SDL_SCANCODE_CURRENCYSUBUNIT') 958 | register('SCANCODE_KP_LEFTPAREN', 'SDL_SCANCODE_KP_LEFTPAREN') 959 | register('SCANCODE_KP_RIGHTPAREN', 'SDL_SCANCODE_KP_RIGHTPAREN') 960 | register('SCANCODE_KP_LEFTBRACE', 'SDL_SCANCODE_KP_LEFTBRACE') 961 | register('SCANCODE_KP_RIGHTBRACE', 'SDL_SCANCODE_KP_RIGHTBRACE') 962 | register('SCANCODE_KP_TAB', 'SDL_SCANCODE_KP_TAB') 963 | register('SCANCODE_KP_BACKSPACE', 'SDL_SCANCODE_KP_BACKSPACE') 964 | register('SCANCODE_KP_A', 'SDL_SCANCODE_KP_A') 965 | register('SCANCODE_KP_B', 'SDL_SCANCODE_KP_B') 966 | register('SCANCODE_KP_C', 'SDL_SCANCODE_KP_C') 967 | register('SCANCODE_KP_D', 'SDL_SCANCODE_KP_D') 968 | register('SCANCODE_KP_E', 'SDL_SCANCODE_KP_E') 969 | register('SCANCODE_KP_F', 'SDL_SCANCODE_KP_F') 970 | register('SCANCODE_KP_XOR', 'SDL_SCANCODE_KP_XOR') 971 | register('SCANCODE_KP_POWER', 'SDL_SCANCODE_KP_POWER') 972 | register('SCANCODE_KP_PERCENT', 'SDL_SCANCODE_KP_PERCENT') 973 | register('SCANCODE_KP_LESS', 'SDL_SCANCODE_KP_LESS') 974 | register('SCANCODE_KP_GREATER', 'SDL_SCANCODE_KP_GREATER') 975 | register('SCANCODE_KP_AMPERSAND', 'SDL_SCANCODE_KP_AMPERSAND') 976 | register('SCANCODE_KP_DBLAMPERSAND', 'SDL_SCANCODE_KP_DBLAMPERSAND') 977 | register('SCANCODE_KP_VERTICALBAR', 'SDL_SCANCODE_KP_VERTICALBAR') 978 | register('SCANCODE_KP_DBLVERTICALBAR', 'SDL_SCANCODE_KP_DBLVERTICALBAR') 979 | register('SCANCODE_KP_COLON', 'SDL_SCANCODE_KP_COLON') 980 | register('SCANCODE_KP_HASH', 'SDL_SCANCODE_KP_HASH') 981 | register('SCANCODE_KP_SPACE', 'SDL_SCANCODE_KP_SPACE') 982 | register('SCANCODE_KP_AT', 'SDL_SCANCODE_KP_AT') 983 | register('SCANCODE_KP_EXCLAM', 'SDL_SCANCODE_KP_EXCLAM') 984 | register('SCANCODE_KP_MEMSTORE', 'SDL_SCANCODE_KP_MEMSTORE') 985 | register('SCANCODE_KP_MEMRECALL', 'SDL_SCANCODE_KP_MEMRECALL') 986 | register('SCANCODE_KP_MEMCLEAR', 'SDL_SCANCODE_KP_MEMCLEAR') 987 | register('SCANCODE_KP_MEMADD', 'SDL_SCANCODE_KP_MEMADD') 988 | register('SCANCODE_KP_MEMSUBTRACT', 'SDL_SCANCODE_KP_MEMSUBTRACT') 989 | register('SCANCODE_KP_MEMMULTIPLY', 'SDL_SCANCODE_KP_MEMMULTIPLY') 990 | register('SCANCODE_KP_MEMDIVIDE', 'SDL_SCANCODE_KP_MEMDIVIDE') 991 | register('SCANCODE_KP_PLUSMINUS', 'SDL_SCANCODE_KP_PLUSMINUS') 992 | register('SCANCODE_KP_CLEAR', 'SDL_SCANCODE_KP_CLEAR') 993 | register('SCANCODE_KP_CLEARENTRY', 'SDL_SCANCODE_KP_CLEARENTRY') 994 | register('SCANCODE_KP_BINARY', 'SDL_SCANCODE_KP_BINARY') 995 | register('SCANCODE_KP_OCTAL', 'SDL_SCANCODE_KP_OCTAL') 996 | register('SCANCODE_KP_DECIMAL', 'SDL_SCANCODE_KP_DECIMAL') 997 | register('SCANCODE_KP_HEXADECIMAL', 'SDL_SCANCODE_KP_HEXADECIMAL') 998 | register('SCANCODE_LCTRL', 'SDL_SCANCODE_LCTRL') 999 | register('SCANCODE_LSHIFT', 'SDL_SCANCODE_LSHIFT') 1000 | register('SCANCODE_LALT', 'SDL_SCANCODE_LALT') 1001 | register('SCANCODE_LGUI', 'SDL_SCANCODE_LGUI') 1002 | register('SCANCODE_RCTRL', 'SDL_SCANCODE_RCTRL') 1003 | register('SCANCODE_RSHIFT', 'SDL_SCANCODE_RSHIFT') 1004 | register('SCANCODE_RALT', 'SDL_SCANCODE_RALT') 1005 | register('SCANCODE_RGUI', 'SDL_SCANCODE_RGUI') 1006 | register('SCANCODE_MODE', 'SDL_SCANCODE_MODE') 1007 | register('SCANCODE_AUDIONEXT', 'SDL_SCANCODE_AUDIONEXT') 1008 | register('SCANCODE_AUDIOPREV', 'SDL_SCANCODE_AUDIOPREV') 1009 | register('SCANCODE_AUDIOSTOP', 'SDL_SCANCODE_AUDIOSTOP') 1010 | register('SCANCODE_AUDIOPLAY', 'SDL_SCANCODE_AUDIOPLAY') 1011 | register('SCANCODE_AUDIOMUTE', 'SDL_SCANCODE_AUDIOMUTE') 1012 | register('SCANCODE_MEDIASELECT', 'SDL_SCANCODE_MEDIASELECT') 1013 | register('SCANCODE_WWW', 'SDL_SCANCODE_WWW') 1014 | register('SCANCODE_MAIL', 'SDL_SCANCODE_MAIL') 1015 | register('SCANCODE_CALCULATOR', 'SDL_SCANCODE_CALCULATOR') 1016 | register('SCANCODE_COMPUTER', 'SDL_SCANCODE_COMPUTER') 1017 | register('SCANCODE_AC_SEARCH', 'SDL_SCANCODE_AC_SEARCH') 1018 | register('SCANCODE_AC_HOME', 'SDL_SCANCODE_AC_HOME') 1019 | register('SCANCODE_AC_BACK', 'SDL_SCANCODE_AC_BACK') 1020 | register('SCANCODE_AC_FORWARD', 'SDL_SCANCODE_AC_FORWARD') 1021 | register('SCANCODE_AC_STOP', 'SDL_SCANCODE_AC_STOP') 1022 | register('SCANCODE_AC_REFRESH', 'SDL_SCANCODE_AC_REFRESH') 1023 | register('SCANCODE_AC_BOOKMARKS', 'SDL_SCANCODE_AC_BOOKMARKS') 1024 | register('SCANCODE_BRIGHTNESSDOWN', 'SDL_SCANCODE_BRIGHTNESSDOWN') 1025 | register('SCANCODE_BRIGHTNESSUP', 'SDL_SCANCODE_BRIGHTNESSUP') 1026 | register('SCANCODE_DISPLAYSWITCH', 'SDL_SCANCODE_DISPLAYSWITCH') 1027 | register('SCANCODE_KBDILLUMTOGGLE', 'SDL_SCANCODE_KBDILLUMTOGGLE') 1028 | register('SCANCODE_KBDILLUMDOWN', 'SDL_SCANCODE_KBDILLUMDOWN') 1029 | register('SCANCODE_KBDILLUMUP', 'SDL_SCANCODE_KBDILLUMUP') 1030 | register('SCANCODE_EJECT', 'SDL_SCANCODE_EJECT') 1031 | register('SCANCODE_SLEEP', 'SDL_SCANCODE_SLEEP') 1032 | register('SCANCODE_APP1', 'SDL_SCANCODE_APP1') 1033 | register('SCANCODE_APP2', 'SDL_SCANCODE_APP2') 1034 | register('NUM_SCANCODES', 'SDL_NUM_SCANCODES') 1035 | register('SCANCODE_CAPSLOCK', 'SDL_SCANCODE_CAPSLOCK') 1036 | register('SCANCODE_F1', 'SDL_SCANCODE_F1') 1037 | register('SCANCODE_F2', 'SDL_SCANCODE_F2') 1038 | register('SCANCODE_F3', 'SDL_SCANCODE_F3') 1039 | register('SCANCODE_F4', 'SDL_SCANCODE_F4') 1040 | register('SCANCODE_F5', 'SDL_SCANCODE_F5') 1041 | register('SCANCODE_F6', 'SDL_SCANCODE_F6') 1042 | register('SCANCODE_F7', 'SDL_SCANCODE_F7') 1043 | register('SCANCODE_F8', 'SDL_SCANCODE_F8') 1044 | register('SCANCODE_F9', 'SDL_SCANCODE_F9') 1045 | register('SCANCODE_F10', 'SDL_SCANCODE_F10') 1046 | register('SCANCODE_F11', 'SDL_SCANCODE_F11') 1047 | register('SCANCODE_F12', 'SDL_SCANCODE_F12') 1048 | register('SCANCODE_PRINTSCREEN', 'SDL_SCANCODE_PRINTSCREEN') 1049 | register('SCANCODE_SCROLLLOCK', 'SDL_SCANCODE_SCROLLLOCK') 1050 | register('SCANCODE_PAUSE', 'SDL_SCANCODE_PAUSE') 1051 | register('SCANCODE_INSERT', 'SDL_SCANCODE_INSERT') 1052 | register('SCANCODE_HOME', 'SDL_SCANCODE_HOME') 1053 | register('SCANCODE_PAGEUP', 'SDL_SCANCODE_PAGEUP') 1054 | register('SCANCODE_END', 'SDL_SCANCODE_END') 1055 | register('SCANCODE_PAGEDOWN', 'SDL_SCANCODE_PAGEDOWN') 1056 | register('SCANCODE_RIGHT', 'SDL_SCANCODE_RIGHT') 1057 | register('SCANCODE_LEFT', 'SDL_SCANCODE_LEFT') 1058 | register('SCANCODE_DOWN', 'SDL_SCANCODE_DOWN') 1059 | register('SCANCODE_UP', 'SDL_SCANCODE_UP') 1060 | register('SCANCODE_NUMLOCKCLEAR', 'SDL_SCANCODE_NUMLOCKCLEAR') 1061 | register('SCANCODE_KP_DIVIDE', 'SDL_SCANCODE_KP_DIVIDE') 1062 | register('SCANCODE_KP_MULTIPLY', 'SDL_SCANCODE_KP_MULTIPLY') 1063 | register('SCANCODE_KP_MINUS', 'SDL_SCANCODE_KP_MINUS') 1064 | register('SCANCODE_KP_PLUS', 'SDL_SCANCODE_KP_PLUS') 1065 | register('SCANCODE_KP_ENTER', 'SDL_SCANCODE_KP_ENTER') 1066 | register('SCANCODE_KP_1', 'SDL_SCANCODE_KP_1') 1067 | register('SCANCODE_KP_2', 'SDL_SCANCODE_KP_2') 1068 | register('SCANCODE_KP_3', 'SDL_SCANCODE_KP_3') 1069 | register('SCANCODE_KP_4', 'SDL_SCANCODE_KP_4') 1070 | register('SCANCODE_KP_5', 'SDL_SCANCODE_KP_5') 1071 | register('SCANCODE_KP_6', 'SDL_SCANCODE_KP_6') 1072 | register('SCANCODE_KP_7', 'SDL_SCANCODE_KP_7') 1073 | register('SCANCODE_KP_8', 'SDL_SCANCODE_KP_8') 1074 | register('SCANCODE_KP_9', 'SDL_SCANCODE_KP_9') 1075 | register('SCANCODE_KP_0', 'SDL_SCANCODE_KP_0') 1076 | register('SCANCODE_KP_PERIOD', 'SDL_SCANCODE_KP_PERIOD') 1077 | register('SCANCODE_APPLICATION', 'SDL_SCANCODE_APPLICATION') 1078 | register('SCANCODE_POWER', 'SDL_SCANCODE_POWER') 1079 | register('SCANCODE_KP_EQUALS', 'SDL_SCANCODE_KP_EQUALS') 1080 | register('SCANCODE_F13', 'SDL_SCANCODE_F13') 1081 | register('SCANCODE_F14', 'SDL_SCANCODE_F14') 1082 | register('SCANCODE_F15', 'SDL_SCANCODE_F15') 1083 | register('SCANCODE_F16', 'SDL_SCANCODE_F16') 1084 | register('SCANCODE_F17', 'SDL_SCANCODE_F17') 1085 | register('SCANCODE_F18', 'SDL_SCANCODE_F18') 1086 | register('SCANCODE_F19', 'SDL_SCANCODE_F19') 1087 | register('SCANCODE_F20', 'SDL_SCANCODE_F20') 1088 | register('SCANCODE_F21', 'SDL_SCANCODE_F21') 1089 | register('SCANCODE_F22', 'SDL_SCANCODE_F22') 1090 | register('SCANCODE_F23', 'SDL_SCANCODE_F23') 1091 | register('SCANCODE_F24', 'SDL_SCANCODE_F24') 1092 | register('SCANCODE_EXECUTE', 'SDL_SCANCODE_EXECUTE') 1093 | register('SCANCODE_HELP', 'SDL_SCANCODE_HELP') 1094 | register('SCANCODE_MENU', 'SDL_SCANCODE_MENU') 1095 | register('SCANCODE_SELECT', 'SDL_SCANCODE_SELECT') 1096 | register('SCANCODE_STOP', 'SDL_SCANCODE_STOP') 1097 | register('SCANCODE_AGAIN', 'SDL_SCANCODE_AGAIN') 1098 | register('SCANCODE_UNDO', 'SDL_SCANCODE_UNDO') 1099 | register('SCANCODE_CUT', 'SDL_SCANCODE_CUT') 1100 | register('SCANCODE_COPY', 'SDL_SCANCODE_COPY') 1101 | register('SCANCODE_PASTE', 'SDL_SCANCODE_PASTE') 1102 | register('SCANCODE_FIND', 'SDL_SCANCODE_FIND') 1103 | register('SCANCODE_MUTE', 'SDL_SCANCODE_MUTE') 1104 | register('SCANCODE_VOLUMEUP', 'SDL_SCANCODE_VOLUMEUP') 1105 | register('SCANCODE_VOLUMEDOWN', 'SDL_SCANCODE_VOLUMEDOWN') 1106 | register('SCANCODE_KP_COMMA', 'SDL_SCANCODE_KP_COMMA') 1107 | register('SCANCODE_KP_EQUALSAS400', 'SDL_SCANCODE_KP_EQUALSAS400') 1108 | register('SCANCODE_ALTERASE', 'SDL_SCANCODE_ALTERASE') 1109 | register('SCANCODE_SYSREQ', 'SDL_SCANCODE_SYSREQ') 1110 | register('SCANCODE_CANCEL', 'SDL_SCANCODE_CANCEL') 1111 | register('SCANCODE_CLEAR', 'SDL_SCANCODE_CLEAR') 1112 | register('SCANCODE_PRIOR', 'SDL_SCANCODE_PRIOR') 1113 | register('SCANCODE_RETURN2', 'SDL_SCANCODE_RETURN2') 1114 | register('SCANCODE_SEPARATOR', 'SDL_SCANCODE_SEPARATOR') 1115 | register('SCANCODE_OUT', 'SDL_SCANCODE_OUT') 1116 | register('SCANCODE_OPER', 'SDL_SCANCODE_OPER') 1117 | register('SCANCODE_CLEARAGAIN', 'SDL_SCANCODE_CLEARAGAIN') 1118 | register('SCANCODE_CRSEL', 'SDL_SCANCODE_CRSEL') 1119 | register('SCANCODE_EXSEL', 'SDL_SCANCODE_EXSEL') 1120 | register('SCANCODE_KP_00', 'SDL_SCANCODE_KP_00') 1121 | register('SCANCODE_KP_000', 'SDL_SCANCODE_KP_000') 1122 | register('SCANCODE_THOUSANDSSEPARATOR', 'SDL_SCANCODE_THOUSANDSSEPARATOR') 1123 | register('SCANCODE_DECIMALSEPARATOR', 'SDL_SCANCODE_DECIMALSEPARATOR') 1124 | register('SCANCODE_CURRENCYUNIT', 'SDL_SCANCODE_CURRENCYUNIT') 1125 | register('SCANCODE_CURRENCYSUBUNIT', 'SDL_SCANCODE_CURRENCYSUBUNIT') 1126 | register('SCANCODE_KP_LEFTPAREN', 'SDL_SCANCODE_KP_LEFTPAREN') 1127 | register('SCANCODE_KP_RIGHTPAREN', 'SDL_SCANCODE_KP_RIGHTPAREN') 1128 | register('SCANCODE_KP_LEFTBRACE', 'SDL_SCANCODE_KP_LEFTBRACE') 1129 | register('SCANCODE_KP_RIGHTBRACE', 'SDL_SCANCODE_KP_RIGHTBRACE') 1130 | register('SCANCODE_KP_TAB', 'SDL_SCANCODE_KP_TAB') 1131 | register('SCANCODE_KP_BACKSPACE', 'SDL_SCANCODE_KP_BACKSPACE') 1132 | register('SCANCODE_KP_A', 'SDL_SCANCODE_KP_A') 1133 | register('SCANCODE_KP_B', 'SDL_SCANCODE_KP_B') 1134 | register('SCANCODE_KP_C', 'SDL_SCANCODE_KP_C') 1135 | register('SCANCODE_KP_D', 'SDL_SCANCODE_KP_D') 1136 | register('SCANCODE_KP_E', 'SDL_SCANCODE_KP_E') 1137 | register('SCANCODE_KP_F', 'SDL_SCANCODE_KP_F') 1138 | register('SCANCODE_KP_XOR', 'SDL_SCANCODE_KP_XOR') 1139 | register('SCANCODE_KP_POWER', 'SDL_SCANCODE_KP_POWER') 1140 | register('SCANCODE_KP_PERCENT', 'SDL_SCANCODE_KP_PERCENT') 1141 | register('SCANCODE_KP_LESS', 'SDL_SCANCODE_KP_LESS') 1142 | register('SCANCODE_KP_GREATER', 'SDL_SCANCODE_KP_GREATER') 1143 | register('SCANCODE_KP_AMPERSAND', 'SDL_SCANCODE_KP_AMPERSAND') 1144 | register('SCANCODE_KP_DBLAMPERSAND', 'SDL_SCANCODE_KP_DBLAMPERSAND') 1145 | register('SCANCODE_KP_VERTICALBAR', 'SDL_SCANCODE_KP_VERTICALBAR') 1146 | register('SCANCODE_KP_DBLVERTICALBAR', 'SDL_SCANCODE_KP_DBLVERTICALBAR') 1147 | register('SCANCODE_KP_COLON', 'SDL_SCANCODE_KP_COLON') 1148 | register('SCANCODE_KP_HASH', 'SDL_SCANCODE_KP_HASH') 1149 | register('SCANCODE_KP_SPACE', 'SDL_SCANCODE_KP_SPACE') 1150 | register('SCANCODE_KP_AT', 'SDL_SCANCODE_KP_AT') 1151 | register('SCANCODE_KP_EXCLAM', 'SDL_SCANCODE_KP_EXCLAM') 1152 | register('SCANCODE_KP_MEMSTORE', 'SDL_SCANCODE_KP_MEMSTORE') 1153 | register('SCANCODE_KP_MEMRECALL', 'SDL_SCANCODE_KP_MEMRECALL') 1154 | register('SCANCODE_KP_MEMCLEAR', 'SDL_SCANCODE_KP_MEMCLEAR') 1155 | register('SCANCODE_KP_MEMADD', 'SDL_SCANCODE_KP_MEMADD') 1156 | register('SCANCODE_KP_MEMSUBTRACT', 'SDL_SCANCODE_KP_MEMSUBTRACT') 1157 | register('SCANCODE_KP_MEMMULTIPLY', 'SDL_SCANCODE_KP_MEMMULTIPLY') 1158 | register('SCANCODE_KP_MEMDIVIDE', 'SDL_SCANCODE_KP_MEMDIVIDE') 1159 | register('SCANCODE_KP_PLUSMINUS', 'SDL_SCANCODE_KP_PLUSMINUS') 1160 | register('SCANCODE_KP_CLEAR', 'SDL_SCANCODE_KP_CLEAR') 1161 | register('SCANCODE_KP_CLEARENTRY', 'SDL_SCANCODE_KP_CLEARENTRY') 1162 | register('SCANCODE_KP_BINARY', 'SDL_SCANCODE_KP_BINARY') 1163 | register('SCANCODE_KP_OCTAL', 'SDL_SCANCODE_KP_OCTAL') 1164 | register('SCANCODE_KP_DECIMAL', 'SDL_SCANCODE_KP_DECIMAL') 1165 | register('SCANCODE_KP_HEXADECIMAL', 'SDL_SCANCODE_KP_HEXADECIMAL') 1166 | register('SCANCODE_LCTRL', 'SDL_SCANCODE_LCTRL') 1167 | register('SCANCODE_LSHIFT', 'SDL_SCANCODE_LSHIFT') 1168 | register('SCANCODE_LALT', 'SDL_SCANCODE_LALT') 1169 | register('SCANCODE_LGUI', 'SDL_SCANCODE_LGUI') 1170 | register('SCANCODE_RCTRL', 'SDL_SCANCODE_RCTRL') 1171 | register('SCANCODE_RSHIFT', 'SDL_SCANCODE_RSHIFT') 1172 | register('SCANCODE_RALT', 'SDL_SCANCODE_RALT') 1173 | register('SCANCODE_RGUI', 'SDL_SCANCODE_RGUI') 1174 | register('SCANCODE_MODE', 'SDL_SCANCODE_MODE') 1175 | register('SCANCODE_AUDIONEXT', 'SDL_SCANCODE_AUDIONEXT') 1176 | register('SCANCODE_AUDIOPREV', 'SDL_SCANCODE_AUDIOPREV') 1177 | register('SCANCODE_AUDIOSTOP', 'SDL_SCANCODE_AUDIOSTOP') 1178 | register('SCANCODE_AUDIOPLAY', 'SDL_SCANCODE_AUDIOPLAY') 1179 | register('SCANCODE_AUDIOMUTE', 'SDL_SCANCODE_AUDIOMUTE') 1180 | register('SCANCODE_MEDIASELECT', 'SDL_SCANCODE_MEDIASELECT') 1181 | register('SCANCODE_WWW', 'SDL_SCANCODE_WWW') 1182 | register('SCANCODE_MAIL', 'SDL_SCANCODE_MAIL') 1183 | register('SCANCODE_CALCULATOR', 'SDL_SCANCODE_CALCULATOR') 1184 | register('SCANCODE_COMPUTER', 'SDL_SCANCODE_COMPUTER') 1185 | register('SCANCODE_AC_SEARCH', 'SDL_SCANCODE_AC_SEARCH') 1186 | register('SCANCODE_AC_HOME', 'SDL_SCANCODE_AC_HOME') 1187 | register('SCANCODE_AC_BACK', 'SDL_SCANCODE_AC_BACK') 1188 | register('SCANCODE_AC_FORWARD', 'SDL_SCANCODE_AC_FORWARD') 1189 | register('SCANCODE_AC_STOP', 'SDL_SCANCODE_AC_STOP') 1190 | register('SCANCODE_AC_REFRESH', 'SDL_SCANCODE_AC_REFRESH') 1191 | register('SCANCODE_AC_BOOKMARKS', 'SDL_SCANCODE_AC_BOOKMARKS') 1192 | register('SCANCODE_BRIGHTNESSDOWN', 'SDL_SCANCODE_BRIGHTNESSDOWN') 1193 | register('SCANCODE_BRIGHTNESSUP', 'SDL_SCANCODE_BRIGHTNESSUP') 1194 | register('SCANCODE_DISPLAYSWITCH', 'SDL_SCANCODE_DISPLAYSWITCH') 1195 | register('SCANCODE_KBDILLUMTOGGLE', 'SDL_SCANCODE_KBDILLUMTOGGLE') 1196 | register('SCANCODE_KBDILLUMDOWN', 'SDL_SCANCODE_KBDILLUMDOWN') 1197 | register('SCANCODE_KBDILLUMUP', 'SDL_SCANCODE_KBDILLUMUP') 1198 | register('SCANCODE_EJECT', 'SDL_SCANCODE_EJECT') 1199 | register('SCANCODE_SLEEP', 'SDL_SCANCODE_SLEEP') 1200 | register('KMOD_NONE', 'SDL_KMOD_NONE') 1201 | register('KMOD_LSHIFT', 'SDL_KMOD_LSHIFT') 1202 | register('KMOD_RSHIFT', 'SDL_KMOD_RSHIFT') 1203 | register('KMOD_LCTRL', 'SDL_KMOD_LCTRL') 1204 | register('KMOD_RCTRL', 'SDL_KMOD_RCTRL') 1205 | register('KMOD_LALT', 'SDL_KMOD_LALT') 1206 | register('KMOD_RALT', 'SDL_KMOD_RALT') 1207 | register('KMOD_LGUI', 'SDL_KMOD_LGUI') 1208 | register('KMOD_RGUI', 'SDL_KMOD_RGUI') 1209 | register('KMOD_NUM', 'SDL_KMOD_NUM') 1210 | register('KMOD_CAPS', 'SDL_KMOD_CAPS') 1211 | register('KMOD_MODE', 'SDL_KMOD_MODE') 1212 | register('KMOD_RESERVED', 'SDL_KMOD_RESERVED') 1213 | register('SYSTEM_CURSOR_ARROW', 'SDL_SYSTEM_CURSOR_ARROW') 1214 | register('SYSTEM_CURSOR_IBEAM', 'SDL_SYSTEM_CURSOR_IBEAM') 1215 | register('SYSTEM_CURSOR_WAIT', 'SDL_SYSTEM_CURSOR_WAIT') 1216 | register('SYSTEM_CURSOR_CROSSHAIR', 'SDL_SYSTEM_CURSOR_CROSSHAIR') 1217 | register('SYSTEM_CURSOR_WAITARROW', 'SDL_SYSTEM_CURSOR_WAITARROW') 1218 | register('SYSTEM_CURSOR_SIZENWSE', 'SDL_SYSTEM_CURSOR_SIZENWSE') 1219 | register('SYSTEM_CURSOR_SIZENESW', 'SDL_SYSTEM_CURSOR_SIZENESW') 1220 | register('SYSTEM_CURSOR_SIZEWE', 'SDL_SYSTEM_CURSOR_SIZEWE') 1221 | register('SYSTEM_CURSOR_SIZENS', 'SDL_SYSTEM_CURSOR_SIZENS') 1222 | register('SYSTEM_CURSOR_SIZEALL', 'SDL_SYSTEM_CURSOR_SIZEALL') 1223 | register('SYSTEM_CURSOR_NO', 'SDL_SYSTEM_CURSOR_NO') 1224 | register('SYSTEM_CURSOR_HAND', 'SDL_SYSTEM_CURSOR_HAND') 1225 | register('NUM_SYSTEM_CURSORS', 'SDL_NUM_SYSTEM_CURSORS') 1226 | register('CONTROLLER_BINDTYPE_NONE', 'SDL_CONTROLLER_BINDTYPE_NONE') 1227 | register('CONTROLLER_BINDTYPE_BUTTON', 'SDL_CONTROLLER_BINDTYPE_BUTTON') 1228 | register('CONTROLLER_BINDTYPE_AXIS', 'SDL_CONTROLLER_BINDTYPE_AXIS') 1229 | register('CONTROLLER_BINDTYPE_HAT', 'SDL_CONTROLLER_BINDTYPE_HAT') 1230 | register('CONTROLLER_AXIS_INVALID', 'SDL_CONTROLLER_AXIS_INVALID') 1231 | register('CONTROLLER_AXIS_LEFTX', 'SDL_CONTROLLER_AXIS_LEFTX') 1232 | register('CONTROLLER_AXIS_LEFTY', 'SDL_CONTROLLER_AXIS_LEFTY') 1233 | register('CONTROLLER_AXIS_RIGHTX', 'SDL_CONTROLLER_AXIS_RIGHTX') 1234 | register('CONTROLLER_AXIS_RIGHTY', 'SDL_CONTROLLER_AXIS_RIGHTY') 1235 | register('CONTROLLER_AXIS_TRIGGERLEFT', 'SDL_CONTROLLER_AXIS_TRIGGERLEFT') 1236 | register('CONTROLLER_AXIS_TRIGGERRIGHT', 'SDL_CONTROLLER_AXIS_TRIGGERRIGHT') 1237 | register('CONTROLLER_AXIS_MAX', 'SDL_CONTROLLER_AXIS_MAX') 1238 | register('CONTROLLER_BUTTON_INVALID', 'SDL_CONTROLLER_BUTTON_INVALID') 1239 | register('CONTROLLER_BUTTON_A', 'SDL_CONTROLLER_BUTTON_A') 1240 | register('CONTROLLER_BUTTON_B', 'SDL_CONTROLLER_BUTTON_B') 1241 | register('CONTROLLER_BUTTON_X', 'SDL_CONTROLLER_BUTTON_X') 1242 | register('CONTROLLER_BUTTON_Y', 'SDL_CONTROLLER_BUTTON_Y') 1243 | register('CONTROLLER_BUTTON_BACK', 'SDL_CONTROLLER_BUTTON_BACK') 1244 | register('CONTROLLER_BUTTON_GUIDE', 'SDL_CONTROLLER_BUTTON_GUIDE') 1245 | register('CONTROLLER_BUTTON_START', 'SDL_CONTROLLER_BUTTON_START') 1246 | register('CONTROLLER_BUTTON_LEFTSTICK', 'SDL_CONTROLLER_BUTTON_LEFTSTICK') 1247 | register('CONTROLLER_BUTTON_RIGHTSTICK', 'SDL_CONTROLLER_BUTTON_RIGHTSTICK') 1248 | register('CONTROLLER_BUTTON_LEFTSHOULDER', 'SDL_CONTROLLER_BUTTON_LEFTSHOULDER') 1249 | register('CONTROLLER_BUTTON_RIGHTSHOULDER', 'SDL_CONTROLLER_BUTTON_RIGHTSHOULDER') 1250 | register('CONTROLLER_BUTTON_DPAD_UP', 'SDL_CONTROLLER_BUTTON_DPAD_UP') 1251 | register('CONTROLLER_BUTTON_DPAD_DOWN', 'SDL_CONTROLLER_BUTTON_DPAD_DOWN') 1252 | register('CONTROLLER_BUTTON_DPAD_LEFT', 'SDL_CONTROLLER_BUTTON_DPAD_LEFT') 1253 | register('CONTROLLER_BUTTON_DPAD_RIGHT', 'SDL_CONTROLLER_BUTTON_DPAD_RIGHT') 1254 | register('CONTROLLER_BUTTON_MAX', 'SDL_CONTROLLER_BUTTON_MAX') 1255 | register('FIRSTEVENT', 'SDL_FIRSTEVENT') 1256 | register('QUIT', 'SDL_QUIT') 1257 | register('APP_TERMINATING', 'SDL_APP_TERMINATING') 1258 | register('APP_LOWMEMORY', 'SDL_APP_LOWMEMORY') 1259 | register('APP_WILLENTERBACKGROUND', 'SDL_APP_WILLENTERBACKGROUND') 1260 | register('APP_DIDENTERBACKGROUND', 'SDL_APP_DIDENTERBACKGROUND') 1261 | register('APP_WILLENTERFOREGROUND', 'SDL_APP_WILLENTERFOREGROUND') 1262 | register('APP_DIDENTERFOREGROUND', 'SDL_APP_DIDENTERFOREGROUND') 1263 | register('WINDOWEVENT', 'SDL_WINDOWEVENT') 1264 | register('SYSWMEVENT', 'SDL_SYSWMEVENT') 1265 | register('KEYDOWN', 'SDL_KEYDOWN') 1266 | register('KEYUP', 'SDL_KEYUP') 1267 | register('TEXTEDITING', 'SDL_TEXTEDITING') 1268 | register('TEXTINPUT', 'SDL_TEXTINPUT') 1269 | register('MOUSEMOTION', 'SDL_MOUSEMOTION') 1270 | register('MOUSEBUTTONDOWN', 'SDL_MOUSEBUTTONDOWN') 1271 | register('MOUSEBUTTONUP', 'SDL_MOUSEBUTTONUP') 1272 | register('MOUSEWHEEL', 'SDL_MOUSEWHEEL') 1273 | register('JOYAXISMOTION', 'SDL_JOYAXISMOTION') 1274 | register('JOYBALLMOTION', 'SDL_JOYBALLMOTION') 1275 | register('JOYHATMOTION', 'SDL_JOYHATMOTION') 1276 | register('JOYBUTTONDOWN', 'SDL_JOYBUTTONDOWN') 1277 | register('JOYBUTTONUP', 'SDL_JOYBUTTONUP') 1278 | register('JOYDEVICEADDED', 'SDL_JOYDEVICEADDED') 1279 | register('JOYDEVICEREMOVED', 'SDL_JOYDEVICEREMOVED') 1280 | register('CONTROLLERAXISMOTION', 'SDL_CONTROLLERAXISMOTION') 1281 | register('CONTROLLERBUTTONDOWN', 'SDL_CONTROLLERBUTTONDOWN') 1282 | register('CONTROLLERBUTTONUP', 'SDL_CONTROLLERBUTTONUP') 1283 | register('CONTROLLERDEVICEADDED', 'SDL_CONTROLLERDEVICEADDED') 1284 | register('CONTROLLERDEVICEREMOVED', 'SDL_CONTROLLERDEVICEREMOVED') 1285 | register('CONTROLLERDEVICEREMAPPED', 'SDL_CONTROLLERDEVICEREMAPPED') 1286 | register('FINGERDOWN', 'SDL_FINGERDOWN') 1287 | register('FINGERUP', 'SDL_FINGERUP') 1288 | register('FINGERMOTION', 'SDL_FINGERMOTION') 1289 | register('DOLLARGESTURE', 'SDL_DOLLARGESTURE') 1290 | register('DOLLARRECORD', 'SDL_DOLLARRECORD') 1291 | register('MULTIGESTURE', 'SDL_MULTIGESTURE') 1292 | register('CLIPBOARDUPDATE', 'SDL_CLIPBOARDUPDATE') 1293 | register('DROPFILE', 'SDL_DROPFILE') 1294 | register('USEREVENT', 'SDL_USEREVENT') 1295 | register('LASTEVENT', 'SDL_LASTEVENT') 1296 | register('ADDEVENT', 'SDL_ADDEVENT') 1297 | register('PEEKEVENT', 'SDL_PEEKEVENT') 1298 | register('GETEVENT', 'SDL_GETEVENT') 1299 | register('HINT_DEFAULT', 'SDL_HINT_DEFAULT') 1300 | register('HINT_NORMAL', 'SDL_HINT_NORMAL') 1301 | register('HINT_OVERRIDE', 'SDL_HINT_OVERRIDE') 1302 | register('LOG_CATEGORY_APPLICATION', 'SDL_LOG_CATEGORY_APPLICATION') 1303 | register('LOG_CATEGORY_ERROR', 'SDL_LOG_CATEGORY_ERROR') 1304 | register('LOG_CATEGORY_ASSERT', 'SDL_LOG_CATEGORY_ASSERT') 1305 | register('LOG_CATEGORY_SYSTEM', 'SDL_LOG_CATEGORY_SYSTEM') 1306 | register('LOG_CATEGORY_AUDIO', 'SDL_LOG_CATEGORY_AUDIO') 1307 | register('LOG_CATEGORY_VIDEO', 'SDL_LOG_CATEGORY_VIDEO') 1308 | register('LOG_CATEGORY_RENDER', 'SDL_LOG_CATEGORY_RENDER') 1309 | register('LOG_CATEGORY_INPUT', 'SDL_LOG_CATEGORY_INPUT') 1310 | register('LOG_CATEGORY_TEST', 'SDL_LOG_CATEGORY_TEST') 1311 | register('LOG_CATEGORY_RESERVED1', 'SDL_LOG_CATEGORY_RESERVED1') 1312 | register('LOG_CATEGORY_RESERVED2', 'SDL_LOG_CATEGORY_RESERVED2') 1313 | register('LOG_CATEGORY_RESERVED3', 'SDL_LOG_CATEGORY_RESERVED3') 1314 | register('LOG_CATEGORY_RESERVED4', 'SDL_LOG_CATEGORY_RESERVED4') 1315 | register('LOG_CATEGORY_RESERVED5', 'SDL_LOG_CATEGORY_RESERVED5') 1316 | register('LOG_CATEGORY_RESERVED6', 'SDL_LOG_CATEGORY_RESERVED6') 1317 | register('LOG_CATEGORY_RESERVED7', 'SDL_LOG_CATEGORY_RESERVED7') 1318 | register('LOG_CATEGORY_RESERVED8', 'SDL_LOG_CATEGORY_RESERVED8') 1319 | register('LOG_CATEGORY_RESERVED9', 'SDL_LOG_CATEGORY_RESERVED9') 1320 | register('LOG_CATEGORY_RESERVED10', 'SDL_LOG_CATEGORY_RESERVED10') 1321 | register('LOG_CATEGORY_CUSTOM', 'SDL_LOG_CATEGORY_CUSTOM') 1322 | register('LOG_PRIORITY_VERBOSE', 'SDL_LOG_PRIORITY_VERBOSE') 1323 | register('LOG_PRIORITY_DEBUG', 'SDL_LOG_PRIORITY_DEBUG') 1324 | register('LOG_PRIORITY_INFO', 'SDL_LOG_PRIORITY_INFO') 1325 | register('LOG_PRIORITY_WARN', 'SDL_LOG_PRIORITY_WARN') 1326 | register('LOG_PRIORITY_ERROR', 'SDL_LOG_PRIORITY_ERROR') 1327 | register('LOG_PRIORITY_CRITICAL', 'SDL_LOG_PRIORITY_CRITICAL') 1328 | register('NUM_LOG_PRIORITIES', 'SDL_NUM_LOG_PRIORITIES') 1329 | register('MESSAGEBOX_ERROR', 'SDL_MESSAGEBOX_ERROR') 1330 | register('MESSAGEBOX_WARNING', 'SDL_MESSAGEBOX_WARNING') 1331 | register('MESSAGEBOX_INFORMATION', 'SDL_MESSAGEBOX_INFORMATION') 1332 | register('MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT', 'SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT') 1333 | register('MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT', 'SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT') 1334 | register('MESSAGEBOX_COLOR_BACKGROUND', 'SDL_MESSAGEBOX_COLOR_BACKGROUND') 1335 | register('MESSAGEBOX_COLOR_TEXT', 'SDL_MESSAGEBOX_COLOR_TEXT') 1336 | register('MESSAGEBOX_COLOR_BUTTON_BORDER', 'SDL_MESSAGEBOX_COLOR_BUTTON_BORDER') 1337 | register('MESSAGEBOX_COLOR_BUTTON_BACKGROUND', 'SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND') 1338 | register('MESSAGEBOX_COLOR_BUTTON_SELECTED', 'SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED') 1339 | register('MESSAGEBOX_COLOR_MAX', 'SDL_MESSAGEBOX_COLOR_MAX') 1340 | register('MESSAGEBOX_COLOR_MAX', 'SDL_MESSAGEBOX_COLOR_MAX') 1341 | register('POWERSTATE_UNKNOWN', 'SDL_POWERSTATE_UNKNOWN') 1342 | register('POWERSTATE_ON_BATTERY', 'SDL_POWERSTATE_ON_BATTERY') 1343 | register('POWERSTATE_NO_BATTERY', 'SDL_POWERSTATE_NO_BATTERY') 1344 | register('POWERSTATE_CHARGING', 'SDL_POWERSTATE_CHARGING') 1345 | register('POWERSTATE_CHARGED', 'SDL_POWERSTATE_CHARGED') 1346 | register('RENDERER_SOFTWARE', 'SDL_RENDERER_SOFTWARE') 1347 | register('RENDERER_ACCELERATED', 'SDL_RENDERER_ACCELERATED') 1348 | register('RENDERER_PRESENTVSYNC', 'SDL_RENDERER_PRESENTVSYNC') 1349 | register('RENDERER_TARGETTEXTURE', 'SDL_RENDERER_TARGETTEXTURE') 1350 | register('TEXTUREACCESS_STATIC', 'SDL_TEXTUREACCESS_STATIC') 1351 | register('TEXTUREACCESS_STREAMING', 'SDL_TEXTUREACCESS_STREAMING') 1352 | register('TEXTUREACCESS_TARGET', 'SDL_TEXTUREACCESS_TARGET') 1353 | register('TEXTUREMODULATE_NONE', 'SDL_TEXTUREMODULATE_NONE') 1354 | register('TEXTUREMODULATE_COLOR', 'SDL_TEXTUREMODULATE_COLOR') 1355 | register('TEXTUREMODULATE_ALPHA', 'SDL_TEXTUREMODULATE_ALPHA') 1356 | register('FLIP_NONE', 'SDL_FLIP_NONE') 1357 | register('FLIP_HORIZONTAL', 'SDL_FLIP_HORIZONTAL') 1358 | register('FLIP_VERTICAL', 'SDL_FLIP_VERTICAL') 1359 | register('INIT_TIMER', 'SDL_INIT_TIMER') 1360 | register('INIT_AUDIO', 'SDL_INIT_AUDIO') 1361 | register('INIT_VIDEO', 'SDL_INIT_VIDEO') 1362 | register('INIT_JOYSTICK', 'SDL_INIT_JOYSTICK') 1363 | register('INIT_HAPTIC', 'SDL_INIT_HAPTIC') 1364 | register('INIT_GAMECONTROLLER', 'SDL_INIT_GAMECONTROLLER') 1365 | register('INIT_EVENTS', 'SDL_INIT_EVENTS') 1366 | register('INIT_NOPARACHUTE', 'SDL_INIT_NOPARACHUTE') 1367 | register('INIT_EVERYTHING', 'SDL_INIT_EVERYTHING') 1368 | register('INIT_TIMER', 'SDL_INIT_TIMER') 1369 | register('INIT_AUDIO', 'SDL_INIT_AUDIO') 1370 | register('INIT_VIDEO', 'SDL_INIT_VIDEO') 1371 | register('INIT_EVENTS', 'SDL_INIT_EVENTS') 1372 | register('INIT_JOYSTICK', 'SDL_INIT_JOYSTICK') 1373 | register('INIT_HAPTIC', 'SDL_INIT_HAPTIC') 1374 | register('INIT_GAMECONTROLLER', 'SDL_INIT_GAMECONTROLLER') 1375 | register('AUDIO_MASK_BITSIZE', 'SDL_AUDIO_MASK_BITSIZE') 1376 | register('AUDIO_MASK_DATATYPE', 'SDL_AUDIO_MASK_DATATYPE') 1377 | register('AUDIO_MASK_ENDIAN', 'SDL_AUDIO_MASK_ENDIAN') 1378 | register('AUDIO_MASK_SIGNED', 'SDL_AUDIO_MASK_SIGNED') 1379 | register('AUDIO_U8', 'SDL_AUDIO_U8') 1380 | register('AUDIO_S8', 'SDL_AUDIO_S8') 1381 | register('AUDIO_U16LSB', 'SDL_AUDIO_U16LSB') 1382 | register('AUDIO_S16LSB', 'SDL_AUDIO_S16LSB') 1383 | register('AUDIO_U16MSB', 'SDL_AUDIO_U16MSB') 1384 | register('AUDIO_S16MSB', 'SDL_AUDIO_S16MSB') 1385 | register('AUDIO_U16', 'SDL_AUDIO_U16') 1386 | register('AUDIO_U16LSB', 'SDL_AUDIO_U16LSB') 1387 | register('AUDIO_S16', 'SDL_AUDIO_S16') 1388 | register('AUDIO_S16LSB', 'SDL_AUDIO_S16LSB') 1389 | register('AUDIO_S32LSB', 'SDL_AUDIO_S32LSB') 1390 | register('AUDIO_S32MSB', 'SDL_AUDIO_S32MSB') 1391 | register('AUDIO_S32', 'SDL_AUDIO_S32') 1392 | register('AUDIO_S32LSB', 'SDL_AUDIO_S32LSB') 1393 | register('AUDIO_F32LSB', 'SDL_AUDIO_F32LSB') 1394 | register('AUDIO_F32MSB', 'SDL_AUDIO_F32MSB') 1395 | register('AUDIO_F32', 'SDL_AUDIO_F32') 1396 | register('AUDIO_F32LSB', 'SDL_AUDIO_F32LSB') 1397 | register('AUDIO_ALLOW_FREQUENCY_CHANGE', 'SDL_AUDIO_ALLOW_FREQUENCY_CHANGE') 1398 | register('AUDIO_ALLOW_FORMAT_CHANGE', 'SDL_AUDIO_ALLOW_FORMAT_CHANGE') 1399 | register('AUDIO_ALLOW_CHANNELS_CHANGE', 'SDL_AUDIO_ALLOW_CHANNELS_CHANGE') 1400 | register('AUDIO_ALLOW_ANY_CHANGE', 'SDL_AUDIO_ALLOW_ANY_CHANGE') 1401 | register('AUDIO_ALLOW_FREQUENCY_CHANGE', 'SDL_AUDIO_ALLOW_FREQUENCY_CHANGE') 1402 | register('AUDIO_ALLOW_FORMAT_CHANGE', 'SDL_AUDIO_ALLOW_FORMAT_CHANGE') 1403 | register('AUDIO_ALLOW_CHANNELS_CHANGE', 'SDL_AUDIO_ALLOW_CHANNELS_CHANGE') 1404 | register('MIX_MAXVOLUME', 'SDL_MIX_MAXVOLUME') 1405 | register('RELEASED', 'SDL_RELEASED') 1406 | register('PRESSED', 'SDL_PRESSED') 1407 | register('QUERY', 'SDL_QUERY') 1408 | register('IGNORE', 'SDL_IGNORE') 1409 | register('DISABLE', 'SDL_DISABLE') 1410 | register('ENABLE', 'SDL_ENABLE') 1411 | register('HAPTIC_CONSTANT', 'SDL_HAPTIC_CONSTANT') 1412 | register('HAPTIC_SINE', 'SDL_HAPTIC_SINE') 1413 | register('HAPTIC_LEFTRIGHT', 'SDL_HAPTIC_LEFTRIGHT') 1414 | register('HAPTIC_TRIANGLE', 'SDL_HAPTIC_TRIANGLE') 1415 | register('HAPTIC_SAWTOOTHUP', 'SDL_HAPTIC_SAWTOOTHUP') 1416 | register('HAPTIC_SAWTOOTHDOWN', 'SDL_HAPTIC_SAWTOOTHDOWN') 1417 | register('HAPTIC_RAMP', 'SDL_HAPTIC_RAMP') 1418 | register('HAPTIC_SPRING', 'SDL_HAPTIC_SPRING') 1419 | register('HAPTIC_DAMPER', 'SDL_HAPTIC_DAMPER') 1420 | register('HAPTIC_INERTIA', 'SDL_HAPTIC_INERTIA') 1421 | register('HAPTIC_FRICTION', 'SDL_HAPTIC_FRICTION') 1422 | register('HAPTIC_CUSTOM', 'SDL_HAPTIC_CUSTOM') 1423 | register('HAPTIC_GAIN', 'SDL_HAPTIC_GAIN') 1424 | register('HAPTIC_AUTOCENTER', 'SDL_HAPTIC_AUTOCENTER') 1425 | register('HAPTIC_STATUS', 'SDL_HAPTIC_STATUS') 1426 | register('HAPTIC_PAUSE', 'SDL_HAPTIC_PAUSE') 1427 | register('HAPTIC_POLAR', 'SDL_HAPTIC_POLAR') 1428 | register('HAPTIC_CARTESIAN', 'SDL_HAPTIC_CARTESIAN') 1429 | register('HAPTIC_SPHERICAL', 'SDL_HAPTIC_SPHERICAL') 1430 | register('HAPTIC_INFINITY', 'SDL_HAPTIC_INFINITY') 1431 | register('HAT_CENTERED', 'SDL_HAT_CENTERED') 1432 | register('HAT_UP', 'SDL_HAT_UP') 1433 | register('HAT_RIGHT', 'SDL_HAT_RIGHT') 1434 | register('HAT_DOWN', 'SDL_HAT_DOWN') 1435 | register('HAT_LEFT', 'SDL_HAT_LEFT') 1436 | register('HAT_RIGHTUP', 'SDL_HAT_RIGHTUP') 1437 | register('HAT_RIGHT', 'SDL_HAT_RIGHT') 1438 | register('HAT_UP', 'SDL_HAT_UP') 1439 | register('HAT_RIGHTDOWN', 'SDL_HAT_RIGHTDOWN') 1440 | register('HAT_RIGHT', 'SDL_HAT_RIGHT') 1441 | register('HAT_DOWN', 'SDL_HAT_DOWN') 1442 | register('HAT_LEFTUP', 'SDL_HAT_LEFTUP') 1443 | register('HAT_LEFT', 'SDL_HAT_LEFT') 1444 | register('HAT_UP', 'SDL_HAT_UP') 1445 | register('HAT_LEFTDOWN', 'SDL_HAT_LEFTDOWN') 1446 | register('HAT_LEFT', 'SDL_HAT_LEFT') 1447 | register('HAT_DOWN', 'SDL_HAT_DOWN') 1448 | register('SCANCODE_MASK', 'SDL_SCANCODE_MASK') 1449 | register('KMOD_CTRL', 'SDL_KMOD_CTRL') 1450 | register('KMOD_LCTRL', 'SDL_KMOD_LCTRL') 1451 | register('KMOD_RCTRL', 'SDL_KMOD_RCTRL') 1452 | register('KMOD_SHIFT', 'SDL_KMOD_SHIFT') 1453 | register('KMOD_LSHIFT', 'SDL_KMOD_LSHIFT') 1454 | register('KMOD_RSHIFT', 'SDL_KMOD_RSHIFT') 1455 | register('KMOD_ALT', 'SDL_KMOD_ALT') 1456 | register('KMOD_LALT', 'SDL_KMOD_LALT') 1457 | register('KMOD_RALT', 'SDL_KMOD_RALT') 1458 | register('KMOD_GUI', 'SDL_KMOD_GUI') 1459 | register('KMOD_LGUI', 'SDL_KMOD_LGUI') 1460 | register('KMOD_RGUI', 'SDL_KMOD_RGUI') 1461 | register('BUTTON_LEFT', 'SDL_BUTTON_LEFT') 1462 | register('BUTTON_MIDDLE', 'SDL_BUTTON_MIDDLE') 1463 | register('BUTTON_RIGHT', 'SDL_BUTTON_RIGHT') 1464 | register('BUTTON_X1', 'SDL_BUTTON_X1') 1465 | register('BUTTON_X2', 'SDL_BUTTON_X2') 1466 | register('BUTTON_LMASK', 'SDL_BUTTON_LMASK') 1467 | register('BUTTON_LEFT-1', 'SDL_BUTTON_LEFT-1') 1468 | register('BUTTON_MMASK', 'SDL_BUTTON_MMASK') 1469 | register('BUTTON_MIDDLE-1', 'SDL_BUTTON_MIDDLE-1') 1470 | register('BUTTON_RMASK', 'SDL_BUTTON_RMASK') 1471 | register('BUTTON_RIGHT-1', 'SDL_BUTTON_RIGHT-1') 1472 | register('BUTTON_X1MASK', 'SDL_BUTTON_X1MASK') 1473 | register('BUTTON_X1-1', 'SDL_BUTTON_X1-1') 1474 | register('BUTTON_X2MASK', 'SDL_BUTTON_X2MASK') 1475 | register('BUTTON_X2-1', 'SDL_BUTTON_X2-1') 1476 | register('MUTEX_TIMEDOUT', 'SDL_MUTEX_TIMEDOUT') 1477 | register('MUTEX_MAXWAIT', 'SDL_MUTEX_MAXWAIT') 1478 | register('ALPHA_OPAQUE', 'SDL_ALPHA_OPAQUE') 1479 | register('ALPHA_TRANSPARENT', 'SDL_ALPHA_TRANSPARENT') 1480 | register('RWOPS_UNKNOWN', 'SDL_RWOPS_UNKNOWN') 1481 | register('RWOPS_WINFILE', 'SDL_RWOPS_WINFILE') 1482 | register('RWOPS_STDFILE', 'SDL_RWOPS_STDFILE') 1483 | register('RWOPS_JNIFILE', 'SDL_RWOPS_JNIFILE') 1484 | register('RWOPS_MEMORY', 'SDL_RWOPS_MEMORY') 1485 | register('RWOPS_MEMORY_RO', 'SDL_RWOPS_MEMORY_RO') 1486 | register('NONSHAPEABLE_WINDOW', 'SDL_NONSHAPEABLE_WINDOW') 1487 | register('INVALID_SHAPE_ARGUMENT', 'SDL_INVALID_SHAPE_ARGUMENT') 1488 | register('WINDOW_LACKS_SHAPE', 'SDL_WINDOW_LACKS_SHAPE') 1489 | register('SWSURFACE', 'SDL_SWSURFACE') 1490 | register('PREALLOC', 'SDL_PREALLOC') 1491 | register('RLEACCEL', 'SDL_RLEACCEL') 1492 | register('DONTFREE', 'SDL_DONTFREE') 1493 | register('WINDOWPOS_CENTERED_MASK', 'SDL_WINDOWPOS_CENTERED_MASK') 1494 | register('WINDOWPOS_CENTERED', 'SDL_WINDOWPOS_CENTERED') 1495 | 1496 | registerdefines(sdl) 1497 | 1498 | return sdl 1499 | -------------------------------------------------------------------------------- /rocks/sdl2-scm-1.rockspec: -------------------------------------------------------------------------------- 1 | package = "sdl2" 2 | version = "scm-1" 3 | 4 | source = { 5 | url = "git://github.com/torch/sdl2-ffi.git" 6 | } 7 | 8 | description = { 9 | summary = "A FFI interface to SDL2", 10 | detailed = [[ 11 | See http://libsdl.org for more details. 12 | ]], 13 | homepage = "https://github.com/torch/sdl2-ffi", 14 | license = "BSD" 15 | } 16 | 17 | dependencies = { 18 | "lua >= 5.1", 19 | } 20 | 21 | build = { 22 | type = "builtin", 23 | modules = { 24 | ["sdl2.init"] = "init.lua", 25 | ["sdl2.cdefs"] = "cdefs.lua", 26 | ["sdl2.defines"] = "defines.lua" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/audio/arugh.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torch/sdl2-ffi/50659fbeca83d667240b197298a0462c7ec0ad21/test/audio/arugh.wav -------------------------------------------------------------------------------- /test/audio/audiocallback.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | struct MySound { 5 | unsigned char* data; 6 | unsigned int length; 7 | unsigned int pos; 8 | }; 9 | 10 | void audiocallback(void *userdata, unsigned char *stream, int len) 11 | { 12 | struct MySound *sound = userdata; 13 | printf("playing len=%d pos=%d\n", sound->length, sound->pos); 14 | int tocopy = (sound->length - sound->pos > len ? len : sound->length - sound->pos); 15 | memcpy(stream, sound->data + sound->pos, tocopy); 16 | sound->pos = sound->pos + tocopy; 17 | } 18 | -------------------------------------------------------------------------------- /test/audio/test-wav.lua: -------------------------------------------------------------------------------- 1 | -- mostly inspired by: 2 | -- http://www.gnurou.org/book/export/html/35 3 | 4 | local sdl = require 'sdl2' 5 | local ffi = require 'ffi' 6 | 7 | ffi.cdef[[ 8 | void *malloc(size_t size); 9 | void free(void *ptr); 10 | 11 | struct MySound { 12 | Uint8* data; 13 | Uint32 length; 14 | Uint32 pos; 15 | }; 16 | ]] 17 | 18 | local function mixaudio(userdata, stream, len) 19 | local sound = ffi.cast('struct MySound*', userdata) 20 | print(string.format("playing len=%d pos=%d\n", sound.length, sound.pos)) 21 | local tocopy = sound.length - sound.pos > len and len or sound.length - sound.pos 22 | ffi.copy(stream, sound.data + sound.pos, tocopy) 23 | sound.pos = sound.pos + tocopy 24 | end 25 | 26 | if sdl.init(sdl.INIT_AUDIO) == -1 then 27 | error('could not initialize SDL') 28 | end 29 | 30 | for i=0,sdl.getNumAudioDrivers()-1 do 31 | print('driver:', ffi.string(sdl.getAudioDriver(i))) 32 | end 33 | 34 | local desired = ffi.new('SDL_AudioSpec') 35 | local obtained = ffi.new('SDL_AudioSpec') 36 | local soundfile = ffi.new('SDL_AudioSpec') 37 | 38 | local cb = ffi.load('audiocallback') 39 | ffi.cdef[[ 40 | void audiocallback(void *userdata, unsigned char *stream, int len); 41 | ]] 42 | 43 | local sound = ffi.new('struct MySound') 44 | 45 | desired.freq = 44100 46 | desired.format = sdl.AUDIO_U16 47 | desired.channels = 2 48 | desired.samples = 512 49 | desired.callback = cb.audiocallback --mixaudio 50 | desired.userdata = sound 51 | 52 | if sdl.openAudio(desired, obtained) ~= 0 then 53 | error(string.format('could not open audio device: %s', ffi.string(sdl.getError()))) 54 | end 55 | 56 | print(string.format('obtained parameters: format=%s, channels=%s freq=%s size=%s bytes', 57 | bit.band(obtained.format, 0xff), obtained.channels, obtained.freq, obtained.samples)) 58 | 59 | do 60 | local sounddata = ffi.new('Uint8*[1]') 61 | local soundlength = ffi.new('Uint32[1]') 62 | if sdl.loadWAV("arugh.wav", soundfile, sounddata, soundlength) == 0 then 63 | error(string.format('could not read audio file: %s', ffi.string(sdl.getError()))) 64 | end 65 | sound.data = sounddata[0] 66 | sound.length = soundlength[0] 67 | end 68 | 69 | local cvt = ffi.new('SDL_AudioCVT') 70 | if sdl.buildAudioCVT(cvt, soundfile.format, soundfile.channels, soundfile.freq, 71 | obtained.format, obtained.channels, obtained.freq) < 0 then 72 | error('could not build audio converter') 73 | end 74 | 75 | cvt.buf = ffi.C.malloc(sound.length * cvt.len_mult) 76 | cvt.len = sound.length 77 | ffi.copy(cvt.buf, sound.data, sound.length) 78 | 79 | if sdl.convertAudio(cvt) ~= 0 then 80 | error(string.format('problem during audio conversion: %s', sdl.getError())) 81 | end 82 | 83 | sdl.freeWAV(sound.data) 84 | sound.data = ffi.C.malloc(cvt.len_cvt) 85 | ffi.copy(sound.data, cvt.buf, cvt.len_cvt) 86 | ffi.C.free(cvt.buf) 87 | 88 | sound.length = cvt.len_cvt 89 | print(string.format('converted audio size: %s bytes', sound.length)) 90 | 91 | sdl.pauseAudio(0) 92 | 93 | jit.off() 94 | 95 | while sound.pos < sound.length do 96 | end 97 | 98 | jit.on() 99 | 100 | sdl.pauseAudio(1) 101 | 102 | sdl.closeAudio() 103 | 104 | sdl.quit() 105 | -------------------------------------------------------------------------------- /test/video/lena.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torch/sdl2-ffi/50659fbeca83d667240b197298a0462c7ec0ad21/test/video/lena.bmp -------------------------------------------------------------------------------- /test/video/test-bmp.lua: -------------------------------------------------------------------------------- 1 | local sdl = require 'sdl2' 2 | local ffi = require 'ffi' 3 | local C = ffi.C 4 | 5 | sdl.init(sdl.INIT_VIDEO) 6 | 7 | local window = sdl.createWindow("Hello Lena", 8 | sdl.WINDOWPOS_CENTERED, 9 | sdl.WINDOWPOS_CENTERED, 10 | 512, 11 | 512, 12 | sdl.WINDOW_SHOWN) 13 | 14 | local windowsurface = sdl.getWindowSurface(window) 15 | 16 | local image = sdl.loadBMP("lena.bmp") 17 | 18 | sdl.upperBlit(image, nil, windowsurface, nil) 19 | 20 | sdl.updateWindowSurface(window) 21 | sdl.freeSurface(image) 22 | 23 | local running = true 24 | local event = ffi.new('SDL_Event') 25 | while running do 26 | while sdl.pollEvent(event) ~= 0 do 27 | if event.type == sdl.QUIT then 28 | running = false 29 | end 30 | end 31 | end 32 | 33 | sdl.destroyWindow(window) 34 | sdl.quit() 35 | --------------------------------------------------------------------------------