ruby2d 0.9.5 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/assets/include/SDL2/SDL.h +4 -1
  3. data/assets/include/SDL2/SDL_assert.h +3 -1
  4. data/assets/include/SDL2/SDL_atomic.h +1 -1
  5. data/assets/include/SDL2/SDL_audio.h +1 -1
  6. data/assets/include/SDL2/SDL_bits.h +1 -1
  7. data/assets/include/SDL2/SDL_blendmode.h +4 -1
  8. data/assets/include/SDL2/SDL_clipboard.h +1 -1
  9. data/assets/include/SDL2/SDL_config.h +1 -1
  10. data/assets/include/SDL2/SDL_config_android.h +7 -3
  11. data/assets/include/SDL2/SDL_config_iphoneos.h +16 -10
  12. data/assets/include/SDL2/SDL_config_macosx.h +40 -14
  13. data/assets/include/SDL2/SDL_config_minimal.h +1 -1
  14. data/assets/include/SDL2/SDL_config_os2.h +26 -8
  15. data/assets/include/SDL2/SDL_config_pandora.h +4 -2
  16. data/assets/include/SDL2/SDL_config_psp.h +2 -1
  17. data/assets/include/SDL2/SDL_config_windows.h +40 -9
  18. data/assets/include/SDL2/SDL_config_winrt.h +5 -2
  19. data/assets/include/SDL2/SDL_config_wiz.h +5 -2
  20. data/assets/include/SDL2/SDL_copying.h +1 -1
  21. data/assets/include/SDL2/SDL_cpuinfo.h +32 -3
  22. data/assets/include/SDL2/SDL_egl.h +4 -1
  23. data/assets/include/SDL2/SDL_endian.h +6 -3
  24. data/assets/include/SDL2/SDL_error.h +38 -2
  25. data/assets/include/SDL2/SDL_events.h +64 -28
  26. data/assets/include/SDL2/SDL_filesystem.h +1 -1
  27. data/assets/include/SDL2/SDL_gamecontroller.h +160 -9
  28. data/assets/include/SDL2/SDL_gesture.h +1 -1
  29. data/assets/include/SDL2/SDL_haptic.h +10 -1
  30. data/assets/include/SDL2/SDL_hints.h +316 -4
  31. data/assets/include/SDL2/SDL_joystick.h +115 -24
  32. data/assets/include/SDL2/SDL_keyboard.h +1 -1
  33. data/assets/include/SDL2/SDL_keycode.h +11 -9
  34. data/assets/include/SDL2/SDL_loadso.h +1 -1
  35. data/assets/include/SDL2/SDL_locale.h +101 -0
  36. data/assets/include/SDL2/SDL_log.h +3 -3
  37. data/assets/include/SDL2/SDL_main.h +1 -1
  38. data/assets/include/SDL2/SDL_messagebox.h +6 -4
  39. data/assets/include/SDL2/SDL_metal.h +117 -0
  40. data/assets/include/SDL2/SDL_misc.h +75 -0
  41. data/assets/include/SDL2/SDL_mouse.h +1 -1
  42. data/assets/include/SDL2/SDL_mutex.h +1 -1
  43. data/assets/include/SDL2/SDL_name.h +1 -1
  44. data/assets/include/SDL2/SDL_opengl.h +1 -1
  45. data/assets/include/SDL2/SDL_opengl_glext.h +3 -0
  46. data/assets/include/SDL2/SDL_opengles.h +1 -1
  47. data/assets/include/SDL2/SDL_opengles2.h +1 -1
  48. data/assets/include/SDL2/SDL_pixels.h +25 -16
  49. data/assets/include/SDL2/SDL_platform.h +1 -1
  50. data/assets/include/SDL2/SDL_power.h +1 -1
  51. data/assets/include/SDL2/SDL_quit.h +1 -1
  52. data/assets/include/SDL2/SDL_rect.h +1 -1
  53. data/assets/include/SDL2/SDL_render.h +63 -3
  54. data/assets/include/SDL2/SDL_revision.h +2 -2
  55. data/assets/include/SDL2/SDL_rwops.h +2 -10
  56. data/assets/include/SDL2/SDL_scancode.h +1 -1
  57. data/assets/include/SDL2/SDL_sensor.h +25 -9
  58. data/assets/include/SDL2/SDL_shape.h +1 -1
  59. data/assets/include/SDL2/SDL_stdinc.h +44 -4
  60. data/assets/include/SDL2/SDL_surface.h +11 -2
  61. data/assets/include/SDL2/SDL_system.h +50 -4
  62. data/assets/include/SDL2/SDL_syswm.h +29 -2
  63. data/assets/include/SDL2/SDL_test.h +1 -1
  64. data/assets/include/SDL2/SDL_test_assert.h +1 -1
  65. data/assets/include/SDL2/SDL_test_common.h +14 -1
  66. data/assets/include/SDL2/SDL_test_compare.h +1 -1
  67. data/assets/include/SDL2/SDL_test_crc32.h +1 -1
  68. data/assets/include/SDL2/SDL_test_font.h +1 -1
  69. data/assets/include/SDL2/SDL_test_fuzzer.h +1 -1
  70. data/assets/include/SDL2/SDL_test_harness.h +1 -1
  71. data/assets/include/SDL2/SDL_test_images.h +1 -1
  72. data/assets/include/SDL2/SDL_test_log.h +1 -1
  73. data/assets/include/SDL2/SDL_test_md5.h +1 -1
  74. data/assets/include/SDL2/SDL_test_memory.h +1 -1
  75. data/assets/include/SDL2/SDL_test_random.h +1 -1
  76. data/assets/include/SDL2/SDL_thread.h +34 -11
  77. data/assets/include/SDL2/SDL_timer.h +1 -1
  78. data/assets/include/SDL2/SDL_touch.h +1 -1
  79. data/assets/include/SDL2/SDL_types.h +1 -1
  80. data/assets/include/SDL2/SDL_version.h +2 -2
  81. data/assets/include/SDL2/SDL_video.h +11 -5
  82. data/assets/include/SDL2/SDL_vulkan.h +6 -8
  83. data/assets/include/SDL2/begin_code.h +5 -9
  84. data/assets/include/SDL2/close_code.h +1 -1
  85. data/assets/macos/lib/libFLAC.a +0 -0
  86. data/assets/macos/lib/libSDL2.a +0 -0
  87. data/assets/macos/lib/libSDL2_image.a +0 -0
  88. data/assets/macos/lib/libSDL2_mixer.a +0 -0
  89. data/assets/macos/lib/libSDL2_ttf.a +0 -0
  90. data/assets/macos/lib/libfreetype.a +0 -0
  91. data/assets/macos/lib/libjpeg.a +0 -0
  92. data/assets/macos/lib/libmpg123.a +0 -0
  93. data/assets/macos/lib/libogg.a +0 -0
  94. data/assets/macos/lib/libpng16.a +0 -0
  95. data/assets/macos/lib/libtiff.a +0 -0
  96. data/assets/macos/lib/libvorbis.a +0 -0
  97. data/assets/macos/lib/libvorbisfile.a +0 -0
  98. data/assets/macos/lib/libwebp.a +0 -0
  99. data/assets/mingw/bin/SDL2.dll +0 -0
  100. data/assets/mingw/lib/libSDL2.a +0 -0
  101. data/assets/mingw/lib/libSDL2.dll.a +0 -0
  102. data/assets/mingw/lib/libSDL2_test.a +0 -0
  103. data/assets/mingw/lib/libSDL2main.a +0 -0
  104. data/ext/ruby2d/extconf.rb +1 -1
  105. data/ext/ruby2d/gl.c +17 -0
  106. data/ext/ruby2d/gl2.c +15 -0
  107. data/ext/ruby2d/gl3.c +15 -0
  108. data/ext/ruby2d/gles.c +15 -0
  109. data/ext/ruby2d/music.c +13 -0
  110. data/ext/ruby2d/ruby2d.c +306 -168
  111. data/ext/ruby2d/ruby2d.h +32 -0
  112. data/ext/ruby2d/sound.c +25 -0
  113. data/ext/ruby2d/tileset.c +30 -0
  114. data/lib/ruby2d.rb +4 -1
  115. data/lib/ruby2d/circle.rb +18 -2
  116. data/lib/ruby2d/dsl.rb +16 -9
  117. data/lib/ruby2d/entity.rb +17 -0
  118. data/lib/ruby2d/font.rb +4 -3
  119. data/lib/ruby2d/image.rb +24 -1
  120. data/lib/ruby2d/line.rb +20 -0
  121. data/lib/ruby2d/music.rb +5 -0
  122. data/lib/ruby2d/pixel.rb +17 -0
  123. data/lib/ruby2d/quad.rb +18 -0
  124. data/lib/ruby2d/rectangle.rb +11 -2
  125. data/lib/ruby2d/renderable.rb +4 -8
  126. data/lib/ruby2d/sound.rb +5 -0
  127. data/lib/ruby2d/sprite.rb +35 -3
  128. data/lib/ruby2d/square.rb +9 -0
  129. data/lib/ruby2d/text.rb +22 -1
  130. data/lib/ruby2d/tileset.rb +69 -0
  131. data/lib/ruby2d/triangle.rb +16 -0
  132. data/lib/ruby2d/version.rb +1 -1
  133. data/lib/ruby2d/window.rb +249 -22
  134. metadata +10 -3
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -102,6 +102,8 @@
102
102
  #define HAVE_SQRTF 1
103
103
  #define HAVE_TAN 1
104
104
  #define HAVE_TANF 1
105
+ #define HAVE_TRUNC 1
106
+ #define HAVE_TRUNCF 1
105
107
  #define HAVE_SIGACTION 1
106
108
  #define HAVE_SETJMP 1
107
109
  #define HAVE_NANOSLEEP 1
@@ -110,8 +112,8 @@
110
112
  #define SDL_AUDIO_DRIVER_OSS 1
111
113
 
112
114
  #define SDL_INPUT_LINUXEV 1
113
- #define SDL_INPUT_TSLIB 1
114
115
  #define SDL_JOYSTICK_LINUX 1
116
+ #define SDL_JOYSTICK_VIRTUAL 1
115
117
  #define SDL_HAPTIC_LINUX 1
116
118
 
117
119
  #define SDL_SENSOR_DUMMY 1
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -136,6 +136,7 @@
136
136
 
137
137
  /* Enable the PSP joystick driver (src/joystick/psp/\*.c) */
138
138
  #define SDL_JOYSTICK_PSP 1
139
+ #define SDL_JOYSTICK_VIRTUAL 1
139
140
 
140
141
  /* Enable the dummy sensor driver */
141
142
  #define SDL_SENSOR_DUMMY 1
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -84,7 +84,7 @@ typedef unsigned int uintptr_t;
84
84
  #define HAVE_XINPUT_H 1
85
85
  #define HAVE_MMDEVICEAPI_H 1
86
86
  #define HAVE_AUDIOCLIENT_H 1
87
- #define HAVE_ENDPOINTVOLUME_H 1
87
+ #define HAVE_SENSORSAPI_H
88
88
 
89
89
  /* This is disabled by default to avoid C runtime dependencies and manifest requirements */
90
90
  #ifdef HAVE_LIBC
@@ -118,6 +118,10 @@ typedef unsigned int uintptr_t;
118
118
  #define HAVE_STRCHR 1
119
119
  #define HAVE_STRRCHR 1
120
120
  #define HAVE_STRSTR 1
121
+ /* #undef HAVE_STRTOK_R */
122
+ #if defined(_MSC_VER)
123
+ #define HAVE_STRTOK_S 1
124
+ #endif
121
125
  /* These functions have security warnings, so we won't use them */
122
126
  /* #undef HAVE__LTOA */
123
127
  /* #undef HAVE__ULTOA */
@@ -130,6 +134,8 @@ typedef unsigned int uintptr_t;
130
134
  #define HAVE_STRNCMP 1
131
135
  #define HAVE__STRICMP 1
132
136
  #define HAVE__STRNICMP 1
137
+ #define HAVE__WCSICMP 1
138
+ #define HAVE__WCSNICMP 1
133
139
  #define HAVE_ACOS 1
134
140
  #define HAVE_ACOSF 1
135
141
  #define HAVE_ASIN 1
@@ -139,7 +145,7 @@ typedef unsigned int uintptr_t;
139
145
  #define HAVE_ATAN2 1
140
146
  #define HAVE_ATAN2F 1
141
147
  #define HAVE_CEILF 1
142
- #define HAVE__COPYSIGN 1
148
+ #define HAVE__COPYSIGN 1
143
149
  #define HAVE_COS 1
144
150
  #define HAVE_COSF 1
145
151
  #define HAVE_EXP 1
@@ -168,7 +174,9 @@ typedef unsigned int uintptr_t;
168
174
  #define HAVE_STRTOLL 1
169
175
  #define HAVE_VSSCANF 1
170
176
  #define HAVE_SCALBN 1
171
- #define HAVE_SCALBNF 1
177
+ #define HAVE_SCALBNF 1
178
+ #define HAVE_TRUNC 1
179
+ #define HAVE_TRUNCF 1
172
180
  #endif
173
181
  /* This function is available with at least the VC++ 2008 C runtime library */
174
182
  #if _MSC_VER >= 1400
@@ -183,6 +191,20 @@ typedef unsigned int uintptr_t;
183
191
  #define HAVE_STDDEF_H 1
184
192
  #endif
185
193
 
194
+ /* Check to see if we have Windows 10 build environment */
195
+ #if _MSC_VER >= 1911 /* Visual Studio 15.3 */
196
+ #include <sdkddkver.h>
197
+ #if _WIN32_WINNT >= 0x0601 /* Windows 7 */
198
+ #define SDL_WINDOWS7_SDK
199
+ #endif
200
+ #if _WIN32_WINNT >= 0x0602 /* Windows 8 */
201
+ #define SDL_WINDOWS8_SDK
202
+ #endif
203
+ #if _WIN32_WINNT >= 0x0A00 /* Windows 10 */
204
+ #define SDL_WINDOWS10_SDK
205
+ #endif
206
+ #endif /* _MSC_VER >= 1911 */
207
+
186
208
  /* Enable various audio drivers */
187
209
  #define SDL_AUDIO_DRIVER_WASAPI 1
188
210
  #define SDL_AUDIO_DRIVER_DSOUND 1
@@ -192,13 +214,20 @@ typedef unsigned int uintptr_t;
192
214
 
193
215
  /* Enable various input drivers */
194
216
  #define SDL_JOYSTICK_DINPUT 1
195
- #define SDL_JOYSTICK_XINPUT 1
196
217
  #define SDL_JOYSTICK_HIDAPI 1
218
+ #ifndef __WINRT__
219
+ #define SDL_JOYSTICK_RAWINPUT 1
220
+ #endif
221
+ #define SDL_JOYSTICK_VIRTUAL 1
222
+ #ifdef SDL_WINDOWS10_SDK
223
+ #define SDL_JOYSTICK_WGI 1
224
+ #endif
225
+ #define SDL_JOYSTICK_XINPUT 1
197
226
  #define SDL_HAPTIC_DINPUT 1
198
227
  #define SDL_HAPTIC_XINPUT 1
199
228
 
200
- /* Enable the dummy sensor driver */
201
- #define SDL_SENSOR_DUMMY 1
229
+ /* Enable the sensor driver */
230
+ #define SDL_SENSOR_WINDOWS 1
202
231
 
203
232
  /* Enable various shared object loading systems */
204
233
  #define SDL_LOADSO_WINDOWS 1
@@ -216,8 +245,8 @@ typedef unsigned int uintptr_t;
216
245
  #ifndef SDL_VIDEO_RENDER_D3D
217
246
  #define SDL_VIDEO_RENDER_D3D 1
218
247
  #endif
219
- #ifndef SDL_VIDEO_RENDER_D3D11
220
- #define SDL_VIDEO_RENDER_D3D11 0
248
+ #ifdef SDL_WINDOWS7_SDK
249
+ #define SDL_VIDEO_RENDER_D3D11 1
221
250
  #endif
222
251
 
223
252
  /* Enable OpenGL support */
@@ -255,3 +284,5 @@ typedef unsigned int uintptr_t;
255
284
  #endif
256
285
 
257
286
  #endif /* SDL_config_windows_h_ */
287
+
288
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -100,7 +100,6 @@ typedef unsigned int uintptr_t;
100
100
 
101
101
  #define HAVE_MMDEVICEAPI_H 1
102
102
  #define HAVE_AUDIOCLIENT_H 1
103
- #define HAVE_ENDPOINTVOLUME_H 1
104
103
 
105
104
  #define HAVE_LIBC 1
106
105
  #define STDC_HEADERS 1
@@ -131,6 +130,7 @@ typedef unsigned int uintptr_t;
131
130
  #define HAVE_STRCHR 1
132
131
  #define HAVE_STRRCHR 1
133
132
  #define HAVE_STRSTR 1
133
+ #define HAVE_STRTOK_S 1
134
134
  //#define HAVE_ITOA 1 // TODO, WinRT: consider using _itoa_s instead
135
135
  //#define HAVE__LTOA 1 // TODO, WinRT: consider using _ltoa_s instead
136
136
  //#define HAVE__ULTOA 1 // TODO, WinRT: consider using _ultoa_s instead
@@ -181,6 +181,8 @@ typedef unsigned int uintptr_t;
181
181
  #define HAVE_SQRTF 1
182
182
  #define HAVE_TAN 1
183
183
  #define HAVE_TANF 1
184
+ #define HAVE_TRUNC 1
185
+ #define HAVE_TRUNCF 1
184
186
  #define HAVE__FSEEKI64 1
185
187
 
186
188
  /* Enable various audio drivers */
@@ -193,6 +195,7 @@ typedef unsigned int uintptr_t;
193
195
  #define SDL_JOYSTICK_DISABLED 1
194
196
  #define SDL_HAPTIC_DISABLED 1
195
197
  #else
198
+ #define SDL_JOYSTICK_VIRTUAL 1
196
199
  #define SDL_JOYSTICK_XINPUT 1
197
200
  #define SDL_HAPTIC_XINPUT 1
198
201
  #endif
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -67,6 +67,7 @@
67
67
  #define HAVE_STRCHR 1
68
68
  #define HAVE_STRRCHR 1
69
69
  #define HAVE_STRSTR 1
70
+ #define HAVE_STRTOK_R 1
70
71
  #define HAVE_STRTOL 1
71
72
  #define HAVE_STRTOUL 1
72
73
  #define HAVE_STRTOLL 1
@@ -116,6 +117,8 @@
116
117
  #define HAVE_SQRTF 1
117
118
  #define HAVE_TAN 1
118
119
  #define HAVE_TANF 1
120
+ #define HAVE_TRUNC 1
121
+ #define HAVE_TRUNCF 1
119
122
  #define HAVE_SIGACTION 1
120
123
  #define HAVE_SETJMP 1
121
124
  #define HAVE_NANOSLEEP 1
@@ -125,8 +128,8 @@
125
128
  #define SDL_AUDIO_DRIVER_OSS 1
126
129
 
127
130
  #define SDL_INPUT_LINUXEV 1
128
- #define SDL_INPUT_TSLIB 1
129
131
  #define SDL_JOYSTICK_LINUX 1
132
+ #define SDL_JOYSTICK_VIRTUAL 1
130
133
  #define SDL_HAPTIC_LINUX 1
131
134
 
132
135
  #define SDL_SENSOR_DUMMY 1
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -73,8 +73,8 @@
73
73
  # define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */
74
74
  # endif
75
75
  # if defined (_M_ARM64)
76
- # include <armintr.h>
77
- # include <arm_neon.h>
76
+ # include <arm64intr.h>
77
+ # include <arm64_neon.h>
78
78
  # define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */
79
79
  # endif
80
80
  # endif
@@ -186,6 +186,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void);
186
186
  */
187
187
  extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void);
188
188
 
189
+ /**
190
+ * This function returns true if the CPU has ARM SIMD (ARMv6) features.
191
+ */
192
+ extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void);
193
+
189
194
  /**
190
195
  * This function returns true if the CPU has NEON (ARM SIMD) features.
191
196
  */
@@ -241,10 +246,33 @@ extern DECLSPEC size_t SDLCALL SDL_SIMDGetAlignment(void);
241
246
  * \return Pointer to newly-allocated block, NULL if out of memory.
242
247
  *
243
248
  * \sa SDL_SIMDAlignment
249
+ * \sa SDL_SIMDRealloc
244
250
  * \sa SDL_SIMDFree
245
251
  */
246
252
  extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len);
247
253
 
254
+ /**
255
+ * \brief Reallocate memory obtained from SDL_SIMDAlloc
256
+ *
257
+ * It is not valid to use this function on a pointer from anything but
258
+ * SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc,
259
+ * SDL_malloc, memalign, new[], etc.
260
+ *
261
+ * \param mem The pointer obtained from SDL_SIMDAlloc. This function also
262
+ * accepts NULL, at which point this function is the same as
263
+ * calling SDL_realloc with a NULL pointer.
264
+ * \param len The length, in bytes, of the block to allocated. The actual
265
+ * allocated block might be larger due to padding, etc. Passing 0
266
+ * will return a non-NULL pointer, assuming the system isn't out of
267
+ * memory.
268
+ * \return Pointer to newly-reallocated block, NULL if out of memory.
269
+ *
270
+ * \sa SDL_SIMDAlignment
271
+ * \sa SDL_SIMDAlloc
272
+ * \sa SDL_SIMDFree
273
+ */
274
+ extern DECLSPEC void * SDLCALL SDL_SIMDRealloc(void *mem, const size_t len);
275
+
248
276
  /**
249
277
  * \brief Deallocate memory obtained from SDL_SIMDAlloc
250
278
  *
@@ -255,6 +283,7 @@ extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len);
255
283
  * However, SDL_SIMDFree(NULL) is a legal no-op.
256
284
  *
257
285
  * \sa SDL_SIMDAlloc
286
+ * \sa SDL_SIMDRealloc
258
287
  */
259
288
  extern DECLSPEC void SDLCALL SDL_SIMDFree(void *ptr);
260
289
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -390,6 +390,9 @@ typedef enum {
390
390
  #ifndef WIN32_LEAN_AND_MEAN
391
391
  #define WIN32_LEAN_AND_MEAN 1
392
392
  #endif
393
+ #ifndef NOMINMAX /* don't define min() and max(). */
394
+ #define NOMINMAX
395
+ #endif
393
396
  #include <windows.h>
394
397
 
395
398
  #if __WINRT__
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -42,10 +42,13 @@
42
42
  #ifdef __linux__
43
43
  #include <endian.h>
44
44
  #define SDL_BYTEORDER __BYTE_ORDER
45
- #else /* __linux__ */
45
+ #elif defined(__OpenBSD__)
46
+ #include <endian.h>
47
+ #define SDL_BYTEORDER BYTE_ORDER
48
+ #else
46
49
  #if defined(__hppa__) || \
47
50
  defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
48
- (defined(__MIPS__) && defined(__MISPEB__)) || \
51
+ (defined(__MIPS__) && defined(__MIPSEB__)) || \
49
52
  defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
50
53
  defined(__sparc__)
51
54
  #define SDL_BYTEORDER SDL_BIG_ENDIAN
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -37,9 +37,45 @@ extern "C" {
37
37
  #endif
38
38
 
39
39
  /* Public functions */
40
- /* SDL_SetError() unconditionally returns -1. */
40
+
41
+
42
+ /**
43
+ * \brief Set the error message for the current thread
44
+ *
45
+ * \return -1, there is no error handling for this function
46
+ */
41
47
  extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
48
+
49
+ /**
50
+ * \brief Get the last error message that was set
51
+ *
52
+ * SDL API functions may set error messages and then succeed, so you should
53
+ * only use the error value if a function fails.
54
+ *
55
+ * This returns a pointer to a static buffer for convenience and should not
56
+ * be called by multiple threads simultaneously.
57
+ *
58
+ * \return a pointer to the last error message that was set
59
+ */
42
60
  extern DECLSPEC const char *SDLCALL SDL_GetError(void);
61
+
62
+ /**
63
+ * \brief Get the last error message that was set for the current thread
64
+ *
65
+ * SDL API functions may set error messages and then succeed, so you should
66
+ * only use the error value if a function fails.
67
+ *
68
+ * \param errstr A buffer to fill with the last error message that was set
69
+ * for the current thread
70
+ * \param maxlen The size of the buffer pointed to by the errstr parameter
71
+ *
72
+ * \return errstr
73
+ */
74
+ extern DECLSPEC char * SDLCALL SDL_GetErrorMsg(char *errstr, int maxlen);
75
+
76
+ /**
77
+ * \brief Clear the error message for the current thread
78
+ */
43
79
  extern DECLSPEC void SDLCALL SDL_ClearError(void);
44
80
 
45
81
  /**
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2019 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -85,6 +85,8 @@ typedef enum
85
85
  Called on Android in onResume()
86
86
  */
87
87
 
88
+ SDL_LOCALECHANGED, /**< The user's locale preferences have changed. */
89
+
88
90
  /* Display events */
89
91
  SDL_DISPLAYEVENT = 0x150, /**< Display state change */
90
92
 
@@ -123,6 +125,10 @@ typedef enum
123
125
  SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */
124
126
  SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */
125
127
  SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */
128
+ SDL_CONTROLLERTOUCHPADDOWN, /**< Game controller touchpad was touched */
129
+ SDL_CONTROLLERTOUCHPADMOTION, /**< Game controller touchpad finger was moved */
130
+ SDL_CONTROLLERTOUCHPADUP, /**< Game controller touchpad finger was lifted */
131
+ SDL_CONTROLLERSENSORUPDATE, /**< Game controller sensor was updated */
126
132
 
127
133
  /* Touch events */
128
134
  SDL_FINGERDOWN = 0x700,
@@ -413,6 +419,33 @@ typedef struct SDL_ControllerDeviceEvent
413
419
  Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */
414
420
  } SDL_ControllerDeviceEvent;
415
421
 
422
+ /**
423
+ * \brief Game controller touchpad event structure (event.ctouchpad.*)
424
+ */
425
+ typedef struct SDL_ControllerTouchpadEvent
426
+ {
427
+ Uint32 type; /**< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP */
428
+ Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */
429
+ SDL_JoystickID which; /**< The joystick instance id */
430
+ Sint32 touchpad; /**< The index of the touchpad */
431
+ Sint32 finger; /**< The index of the finger on the touchpad */
432
+ float x; /**< Normalized in the range 0...1 with 0 being on the left */
433
+ float y; /**< Normalized in the range 0...1 with 0 being at the top */
434
+ float pressure; /**< Normalized in the range 0...1 */
435
+ } SDL_ControllerTouchpadEvent;
436
+
437
+ /**
438
+ * \brief Game controller sensor event structure (event.csensor.*)
439
+ */
440
+ typedef struct SDL_ControllerSensorEvent
441
+ {
442
+ Uint32 type; /**< ::SDL_CONTROLLERSENSORUPDATE */
443
+ Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */
444
+ SDL_JoystickID which; /**< The joystick instance id */
445
+ Sint32 sensor; /**< The type of the sensor, one of the values of ::SDL_SensorType */
446
+ float data[3]; /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */
447
+ } SDL_ControllerSensorEvent;
448
+
416
449
  /**
417
450
  * \brief Audio device event structure (event.adevice.*)
418
451
  */
@@ -442,6 +475,7 @@ typedef struct SDL_TouchFingerEvent
442
475
  float dx; /**< Normalized in the range -1...1 */
443
476
  float dy; /**< Normalized in the range -1...1 */
444
477
  float pressure; /**< Normalized in the range 0...1 */
478
+ Uint32 windowID; /**< The window underneath the finger, if any */
445
479
  } SDL_TouchFingerEvent;
446
480
 
447
481
 
@@ -556,33 +590,35 @@ typedef struct SDL_SysWMEvent
556
590
  */
557
591
  typedef union SDL_Event
558
592
  {
559
- Uint32 type; /**< Event type, shared with all events */
560
- SDL_CommonEvent common; /**< Common event data */
561
- SDL_DisplayEvent display; /**< Window event data */
562
- SDL_WindowEvent window; /**< Window event data */
563
- SDL_KeyboardEvent key; /**< Keyboard event data */
564
- SDL_TextEditingEvent edit; /**< Text editing event data */
565
- SDL_TextInputEvent text; /**< Text input event data */
566
- SDL_MouseMotionEvent motion; /**< Mouse motion event data */
567
- SDL_MouseButtonEvent button; /**< Mouse button event data */
568
- SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */
569
- SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */
570
- SDL_JoyBallEvent jball; /**< Joystick ball event data */
571
- SDL_JoyHatEvent jhat; /**< Joystick hat event data */
572
- SDL_JoyButtonEvent jbutton; /**< Joystick button event data */
573
- SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */
574
- SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */
575
- SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */
576
- SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */
577
- SDL_AudioDeviceEvent adevice; /**< Audio device event data */
578
- SDL_SensorEvent sensor; /**< Sensor event data */
579
- SDL_QuitEvent quit; /**< Quit request event data */
580
- SDL_UserEvent user; /**< Custom event data */
581
- SDL_SysWMEvent syswm; /**< System dependent window event data */
582
- SDL_TouchFingerEvent tfinger; /**< Touch finger event data */
583
- SDL_MultiGestureEvent mgesture; /**< Gesture event data */
584
- SDL_DollarGestureEvent dgesture; /**< Gesture event data */
585
- SDL_DropEvent drop; /**< Drag and drop event data */
593
+ Uint32 type; /**< Event type, shared with all events */
594
+ SDL_CommonEvent common; /**< Common event data */
595
+ SDL_DisplayEvent display; /**< Display event data */
596
+ SDL_WindowEvent window; /**< Window event data */
597
+ SDL_KeyboardEvent key; /**< Keyboard event data */
598
+ SDL_TextEditingEvent edit; /**< Text editing event data */
599
+ SDL_TextInputEvent text; /**< Text input event data */
600
+ SDL_MouseMotionEvent motion; /**< Mouse motion event data */
601
+ SDL_MouseButtonEvent button; /**< Mouse button event data */
602
+ SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */
603
+ SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */
604
+ SDL_JoyBallEvent jball; /**< Joystick ball event data */
605
+ SDL_JoyHatEvent jhat; /**< Joystick hat event data */
606
+ SDL_JoyButtonEvent jbutton; /**< Joystick button event data */
607
+ SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */
608
+ SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */
609
+ SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */
610
+ SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */
611
+ SDL_ControllerTouchpadEvent ctouchpad; /**< Game Controller touchpad event data */
612
+ SDL_ControllerSensorEvent csensor; /**< Game Controller sensor event data */
613
+ SDL_AudioDeviceEvent adevice; /**< Audio device event data */
614
+ SDL_SensorEvent sensor; /**< Sensor event data */
615
+ SDL_QuitEvent quit; /**< Quit request event data */
616
+ SDL_UserEvent user; /**< Custom event data */
617
+ SDL_SysWMEvent syswm; /**< System dependent window event data */
618
+ SDL_TouchFingerEvent tfinger; /**< Touch finger event data */
619
+ SDL_MultiGestureEvent mgesture; /**< Gesture event data */
620
+ SDL_DollarGestureEvent dgesture; /**< Gesture event data */
621
+ SDL_DropEvent drop; /**< Drag and drop event data */
586
622
 
587
623
  /* This is necessary for ABI compatibility between Visual C++ and GCC
588
624
  Visual C++ will respect the push pack pragma and use 52 bytes for