ruby2d 0.11.3 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (221) hide show
  1. checksums.yaml +4 -4
  2. data/assets/include/GLES2/gl2.h +656 -0
  3. data/assets/include/GLES2/gl2ext.h +3949 -0
  4. data/assets/include/GLES2/gl2ext_angle.h +701 -0
  5. data/assets/include/GLES2/gl2platform.h +27 -0
  6. data/assets/include/GLES3/gl3.h +1192 -0
  7. data/assets/include/GLES3/gl31.h +1507 -0
  8. data/assets/include/GLES3/gl32.h +1808 -0
  9. data/assets/include/GLES3/gl3platform.h +27 -0
  10. data/assets/include/KHR/khrplatform.h +290 -0
  11. data/assets/include/SDL2/SDL.h +1 -0
  12. data/assets/include/SDL2/SDL_assert.h +4 -2
  13. data/assets/include/SDL2/SDL_atomic.h +20 -0
  14. data/assets/include/SDL2/SDL_audio.h +40 -4
  15. data/assets/include/SDL2/SDL_blendmode.h +4 -6
  16. data/assets/include/SDL2/SDL_clipboard.h +47 -0
  17. data/assets/include/SDL2/SDL_config.h +6 -2
  18. data/assets/include/SDL2/SDL_config_android.h +2 -0
  19. data/assets/include/SDL2/SDL_config_emscripten.h +2 -0
  20. data/assets/include/SDL2/SDL_config_iphoneos.h +3 -1
  21. data/assets/include/SDL2/SDL_config_macosx.h +3 -6
  22. data/assets/include/SDL2/SDL_config_minimal.h +18 -11
  23. data/assets/include/SDL2/SDL_config_ngage.h +89 -0
  24. data/assets/include/SDL2/SDL_config_os2.h +5 -3
  25. data/assets/include/SDL2/SDL_config_pandora.h +1 -0
  26. data/assets/include/SDL2/SDL_config_windows.h +71 -45
  27. data/assets/include/SDL2/SDL_config_wingdk.h +253 -0
  28. data/assets/include/SDL2/SDL_config_winrt.h +11 -49
  29. data/assets/include/SDL2/SDL_config_xbox.h +235 -0
  30. data/assets/include/SDL2/SDL_cpuinfo.h +39 -4
  31. data/assets/include/SDL2/SDL_egl.h +59 -9
  32. data/assets/include/SDL2/SDL_endian.h +34 -3
  33. data/assets/include/SDL2/SDL_events.h +32 -1
  34. data/assets/include/SDL2/SDL_filesystem.h +5 -1
  35. data/assets/include/SDL2/SDL_gamecontroller.h +78 -5
  36. data/assets/include/SDL2/SDL_guid.h +100 -0
  37. data/assets/include/SDL2/SDL_hints.h +645 -43
  38. data/assets/include/SDL2/SDL_image.h +2045 -33
  39. data/assets/include/SDL2/SDL_joystick.h +127 -7
  40. data/assets/include/SDL2/SDL_keyboard.h +38 -1
  41. data/assets/include/SDL2/SDL_keycode.h +6 -1
  42. data/assets/include/SDL2/SDL_log.h +2 -2
  43. data/assets/include/SDL2/SDL_main.h +42 -2
  44. data/assets/include/SDL2/SDL_metal.h +2 -1
  45. data/assets/include/SDL2/SDL_mixer.h +2529 -396
  46. data/assets/include/SDL2/SDL_mouse.h +12 -1
  47. data/assets/include/SDL2/SDL_opengl.h +0 -51
  48. data/assets/include/SDL2/SDL_opengl_glext.h +2260 -231
  49. data/assets/include/SDL2/SDL_opengles2_gl2.h +374 -339
  50. data/assets/include/SDL2/SDL_opengles2_gl2ext.h +3479 -1496
  51. data/assets/include/SDL2/SDL_opengles2_gl2platform.h +6 -9
  52. data/assets/include/SDL2/SDL_opengles2_khrplatform.h +43 -14
  53. data/assets/include/SDL2/SDL_platform.h +32 -6
  54. data/assets/include/SDL2/SDL_rect.h +154 -2
  55. data/assets/include/SDL2/SDL_render.h +46 -17
  56. data/assets/include/SDL2/SDL_revision.h +4 -0
  57. data/assets/include/SDL2/SDL_rwops.h +1 -15
  58. data/assets/include/SDL2/SDL_scancode.h +46 -21
  59. data/assets/include/SDL2/SDL_sensor.h +24 -3
  60. data/assets/include/SDL2/SDL_stdinc.h +119 -8
  61. data/assets/include/SDL2/SDL_surface.h +3 -1
  62. data/assets/include/SDL2/SDL_system.h +66 -6
  63. data/assets/include/SDL2/SDL_syswm.h +2 -0
  64. data/assets/include/SDL2/SDL_test_common.h +1 -0
  65. data/assets/include/SDL2/SDL_test_font.h +90 -3
  66. data/assets/include/SDL2/SDL_thread.h +3 -3
  67. data/assets/include/SDL2/SDL_touch.h +8 -0
  68. data/assets/include/SDL2/SDL_ttf.h +2084 -155
  69. data/assets/include/SDL2/SDL_version.h +19 -3
  70. data/assets/include/SDL2/SDL_video.h +71 -9
  71. data/assets/include/SDL2/begin_code.h +4 -4
  72. data/assets/include/mrbconf.h +15 -17
  73. data/assets/include/mruby/array.h +8 -21
  74. data/assets/include/mruby/boxing_nan.h +115 -86
  75. data/assets/include/mruby/boxing_word.h +104 -78
  76. data/assets/include/mruby/common.h +6 -0
  77. data/assets/include/mruby/compile.h +3 -4
  78. data/assets/include/mruby/debug.h +4 -2
  79. data/assets/include/mruby/dump.h +5 -2
  80. data/assets/include/mruby/error.h +12 -2
  81. data/assets/include/mruby/gc.h +2 -0
  82. data/assets/include/mruby/hash.h +1 -3
  83. data/assets/include/mruby/irep.h +4 -4
  84. data/assets/include/mruby/numeric.h +21 -13
  85. data/assets/include/mruby/opcode.h +30 -0
  86. data/assets/include/mruby/ops.h +99 -101
  87. data/assets/include/mruby/presym/scanning.h +15 -9
  88. data/assets/include/mruby/proc.h +4 -2
  89. data/assets/include/mruby/string.h +3 -24
  90. data/assets/include/mruby/value.h +80 -40
  91. data/assets/include/mruby/variable.h +0 -15
  92. data/assets/include/mruby/version.h +5 -5
  93. data/assets/include/mruby.h +86 -16
  94. data/assets/macos/universal/bin/mrbc +0 -0
  95. data/assets/macos/universal/lib/libFLAC.a +0 -0
  96. data/assets/macos/universal/lib/libSDL2.a +0 -0
  97. data/assets/macos/universal/lib/libSDL2_image.a +0 -0
  98. data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
  99. data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
  100. data/assets/macos/universal/lib/libavif.a +0 -0
  101. data/assets/macos/universal/lib/libbrotlicommon-static.a +0 -0
  102. data/assets/macos/universal/lib/libbrotlidec-static.a +0 -0
  103. data/assets/macos/universal/lib/libfreetype.a +0 -0
  104. data/assets/macos/universal/lib/libgraphite2.a +0 -0
  105. data/assets/macos/universal/lib/libharfbuzz.a +0 -0
  106. data/assets/macos/universal/lib/libhwy.a +0 -0
  107. data/assets/macos/universal/lib/libjpeg.a +0 -0
  108. data/assets/macos/universal/lib/libjxl.a +0 -0
  109. data/assets/macos/universal/lib/libmodplug.a +0 -0
  110. data/assets/macos/universal/lib/libmpg123.a +0 -0
  111. data/assets/macos/universal/lib/libmruby.a +0 -0
  112. data/assets/macos/universal/lib/libogg.a +0 -0
  113. data/assets/macos/universal/lib/libpng.a +0 -0
  114. data/assets/macos/universal/lib/libtiff.a +0 -0
  115. data/assets/macos/universal/lib/libvorbis.a +0 -0
  116. data/assets/macos/universal/lib/libvorbisfile.a +0 -0
  117. data/assets/macos/universal/lib/libwebp.a +0 -0
  118. data/assets/macos/universal/lib/libzstd.a +0 -0
  119. data/assets/wasm/template.html +2 -1
  120. data/assets/windows/mingw-w64-ucrt-x86_64/bin/mrbc.exe +0 -0
  121. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
  122. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libLerc.a +0 -0
  123. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
  124. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_image.a +0 -0
  125. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
  126. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_ttf.a +0 -0
  127. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlicommon.a +0 -0
  128. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlidec.a +0 -0
  129. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libdeflate.a +0 -0
  130. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libfreetype.a +0 -0
  131. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
  132. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libharfbuzz.a +0 -0
  133. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libhwy.a +0 -0
  134. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjpeg.a +0 -0
  135. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjxl.a +0 -0
  136. data/assets/windows/mingw-w64-ucrt-x86_64/lib/liblzma.a +0 -0
  137. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
  138. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmruby.a +0 -0
  139. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
  140. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libpng.a +0 -0
  141. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
  142. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +0 -0
  143. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
  144. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libtiff.a +0 -0
  145. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libwebp.a +0 -0
  146. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
  147. data/assets/windows/mingw-w64-x86_64/bin/mrbc.exe +0 -0
  148. data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
  149. data/assets/windows/mingw-w64-x86_64/lib/libLerc.a +0 -0
  150. data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
  151. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_image.a +0 -0
  152. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
  153. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_ttf.a +0 -0
  154. data/assets/windows/mingw-w64-x86_64/lib/libbrotlicommon.a +0 -0
  155. data/assets/windows/mingw-w64-x86_64/lib/libbrotlidec.a +0 -0
  156. data/assets/windows/mingw-w64-x86_64/lib/libdeflate.a +0 -0
  157. data/assets/windows/mingw-w64-x86_64/lib/libfreetype.a +0 -0
  158. data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
  159. data/assets/windows/mingw-w64-x86_64/lib/libharfbuzz.a +0 -0
  160. data/assets/windows/mingw-w64-x86_64/lib/libhwy.a +0 -0
  161. data/assets/windows/mingw-w64-x86_64/lib/libjpeg.a +0 -0
  162. data/assets/windows/mingw-w64-x86_64/lib/libjxl.a +0 -0
  163. data/assets/windows/mingw-w64-x86_64/lib/liblzma.a +0 -0
  164. data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
  165. data/assets/windows/mingw-w64-x86_64/lib/libmruby.a +0 -0
  166. data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
  167. data/assets/windows/mingw-w64-x86_64/lib/libpng.a +0 -0
  168. data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
  169. data/assets/windows/mingw-w64-x86_64/lib/libssp.a +0 -0
  170. data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
  171. data/assets/windows/mingw-w64-x86_64/lib/libtiff.a +0 -0
  172. data/assets/windows/mingw-w64-x86_64/lib/libwebp.a +0 -0
  173. data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
  174. data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
  175. data/ext/ruby2d/canvas.c +540 -0
  176. data/ext/ruby2d/extconf.rb +33 -20
  177. data/ext/ruby2d/gl.c +3 -3
  178. data/ext/ruby2d/image.c +7 -7
  179. data/ext/ruby2d/ruby2d.c +741 -24
  180. data/ext/ruby2d/ruby2d.h +66 -3
  181. data/ext/ruby2d/sound.c +16 -2
  182. data/lib/ruby2d/canvas.rb +315 -0
  183. data/lib/ruby2d/circle.rb +30 -15
  184. data/lib/ruby2d/cli/build.rb +5 -3
  185. data/lib/ruby2d/cli/enable_console.rb +3 -1
  186. data/lib/ruby2d/color.rb +133 -77
  187. data/lib/ruby2d/core.rb +32 -0
  188. data/lib/ruby2d/dsl.rb +38 -32
  189. data/lib/ruby2d/exceptions.rb +2 -1
  190. data/lib/ruby2d/font.rb +97 -62
  191. data/lib/ruby2d/image.rb +48 -27
  192. data/lib/ruby2d/line.rb +84 -45
  193. data/lib/ruby2d/music.rb +33 -23
  194. data/lib/ruby2d/pixel.rb +10 -9
  195. data/lib/ruby2d/pixmap.rb +39 -0
  196. data/lib/ruby2d/pixmap_atlas.rb +56 -0
  197. data/lib/ruby2d/quad.rb +98 -49
  198. data/lib/ruby2d/rectangle.rb +35 -36
  199. data/lib/ruby2d/renderable.rb +7 -6
  200. data/lib/ruby2d/sound.rb +23 -17
  201. data/lib/ruby2d/sprite.rb +181 -140
  202. data/lib/ruby2d/square.rb +21 -20
  203. data/lib/ruby2d/text.rb +47 -19
  204. data/lib/ruby2d/texture.rb +13 -3
  205. data/lib/ruby2d/tileset.rb +97 -44
  206. data/lib/ruby2d/triangle.rb +91 -42
  207. data/lib/ruby2d/version.rb +3 -1
  208. data/lib/ruby2d/vertices.rb +81 -45
  209. data/lib/ruby2d/window.rb +508 -371
  210. data/lib/ruby2d.rb +11 -29
  211. metadata +51 -16
  212. data/assets/include/SDL2/SDL_config_psp.h +0 -165
  213. data/assets/include/SDL2/SDL_config_wiz.h +0 -154
  214. data/assets/include/glew.h +0 -23686
  215. data/assets/macos/universal/lib/libpng16.a +0 -0
  216. data/assets/windows/glew/README.md +0 -10
  217. data/assets/windows/glew/glew.h +0 -23686
  218. data/assets/windows/glew/libglew32.a +0 -0
  219. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libpng16.a +0 -0
  220. data/assets/windows/mingw-w64-x86_64/lib/libpng16.a +0 -0
  221. data/lib/ruby2d/entity.rb +0 -17
@@ -34,22 +34,29 @@
34
34
  #define HAVE_STDARG_H 1
35
35
  #define HAVE_STDDEF_H 1
36
36
 
37
+ #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H)
37
38
  /* Most everything except Visual Studio 2008 and earlier has stdint.h now */
38
39
  #if defined(_MSC_VER) && (_MSC_VER < 1600)
39
- /* Here are some reasonable defaults */
40
- typedef unsigned int size_t;
41
- typedef signed char int8_t;
42
- typedef unsigned char uint8_t;
43
- typedef signed short int16_t;
44
- typedef unsigned short uint16_t;
45
- typedef signed int int32_t;
46
- typedef unsigned int uint32_t;
47
- typedef signed long long int64_t;
48
- typedef unsigned long long uint64_t;
49
- typedef unsigned long uintptr_t;
40
+ typedef signed __int8 int8_t;
41
+ typedef unsigned __int8 uint8_t;
42
+ typedef signed __int16 int16_t;
43
+ typedef unsigned __int16 uint16_t;
44
+ typedef signed __int32 int32_t;
45
+ typedef unsigned __int32 uint32_t;
46
+ typedef signed __int64 int64_t;
47
+ typedef unsigned __int64 uint64_t;
48
+ #ifndef _UINTPTR_T_DEFINED
49
+ #ifdef _WIN64
50
+ typedef unsigned __int64 uintptr_t;
51
+ #else
52
+ typedef unsigned int uintptr_t;
53
+ #endif
54
+ #define _UINTPTR_T_DEFINED
55
+ #endif
50
56
  #else
51
57
  #define HAVE_STDINT_H 1
52
58
  #endif /* Visual Studio 2008 */
59
+ #endif /* !_STDINT_H_ && !HAVE_STDINT_H */
53
60
 
54
61
  #ifdef __GNUC__
55
62
  #define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1
@@ -0,0 +1,89 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ #ifndef SDL_config_ngage_h_
23
+ #define SDL_config_ngage_h_
24
+ #define SDL_config_h_
25
+
26
+ #include "SDL_platform.h"
27
+
28
+ typedef signed char int8_t;
29
+ typedef unsigned char uint8_t;
30
+ typedef signed short int16_t;
31
+ typedef unsigned short uint16_t;
32
+ typedef signed int int32_t;
33
+ typedef unsigned int uint32_t;
34
+ typedef signed long long int64_t;
35
+ typedef unsigned long long uint64_t;
36
+ typedef unsigned long uintptr_t;
37
+
38
+ #define HAVE_STDARG_H 1
39
+ #define HAVE_STDDEF_H 1
40
+ #define HAVE_STDIO_H 1
41
+ #define HAVE_STDLIB_H 1
42
+ #define HAVE_MATH_H 1
43
+ #define HAVE_CEIL 1
44
+ #define HAVE_COPYSIGN 1
45
+ #define HAVE_COS 1
46
+ #define HAVE_EXP 1
47
+ #define HAVE_FABS 1
48
+ #define HAVE_FLOOR 1
49
+ #define HAVE_LOG 1
50
+ #define HAVE_LOG10 1
51
+ #define HAVE_SCALBN 1
52
+ #define HAVE_SIN 1
53
+ #define HAVE_SQRT 1
54
+ #define HAVE_TAN 1
55
+ #define HAVE_MALLOC 1
56
+ #define SDL_MAIN_NEEDED 1
57
+ #define LACKS_SYS_MMAN_H 1
58
+
59
+ /* Enable the N-Gage thread support (src/thread/ngage/\*.c) */
60
+ #define SDL_THREAD_NGAGE 1
61
+
62
+ /* Enable the N-Gage timer support (src/timer/ngage/\*.c) */
63
+ #define SDL_TIMER_NGAGE 1
64
+
65
+ /* Enable the N-Gage video driver (src/video/ngage/\*.c) */
66
+ #define SDL_VIDEO_DRIVER_NGAGE 1
67
+
68
+ /* Enable the dummy audio driver (src/audio/dummy/\*.c) */
69
+ #define SDL_AUDIO_DRIVER_DUMMY 1
70
+
71
+ /* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
72
+ #define SDL_JOYSTICK_DISABLED 1
73
+
74
+ /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
75
+ #define SDL_HAPTIC_DISABLED 1
76
+
77
+ /* Enable the stub HIDAPI */
78
+ #define SDL_HIDAPI_DISABLED 1
79
+
80
+ /* Enable the stub sensor driver (src/sensor/dummy/\*.c) */
81
+ #define SDL_SENSOR_DISABLED 1
82
+
83
+ /* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
84
+ #define SDL_LOADSO_DISABLED 1
85
+
86
+ /* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */
87
+ #define SDL_FILESYSTEM_DUMMY 1
88
+
89
+ #endif /* SDL_config_ngage_h_ */
@@ -43,6 +43,7 @@
43
43
  /*#undef SDL_JOYSTICK_HIDAPI */
44
44
  #else
45
45
  #define SDL_JOYSTICK_HIDAPI 1
46
+ #define HAVE_LIBUSB 1
46
47
  /* dynamically loaded libusb-1.0 dll: */
47
48
  #define SDL_LIBUSB_DYNAMIC "usb100.dll"
48
49
  #endif
@@ -56,9 +57,6 @@
56
57
  #define SDL_TIMER_OS2 1
57
58
  #define SDL_FILESYSTEM_OS2 1
58
59
 
59
- /* Enable assembly routines */
60
- #define SDL_ASSEMBLY_ROUTINES 1
61
-
62
60
  /* use libsamplerate for audio rate conversion. */
63
61
  /*#define HAVE_LIBSAMPLERATE_H 1 */
64
62
 
@@ -105,7 +103,11 @@
105
103
  #define HAVE_GETENV 1
106
104
  #define HAVE_SETENV 1
107
105
  #define HAVE_PUTENV 1
106
+ /* OpenWatcom requires specific calling conventions for qsort and bsearch */
107
+ #ifndef __WATCOMC__
108
108
  #define HAVE_QSORT 1
109
+ #define HAVE_BSEARCH 1
110
+ #endif
109
111
  #define HAVE_ABS 1
110
112
  #define HAVE_BCOPY 1
111
113
  #define HAVE_MEMSET 1
@@ -65,6 +65,7 @@
65
65
  #define HAVE_PUTENV 1
66
66
  #define HAVE_UNSETENV 1
67
67
  #define HAVE_QSORT 1
68
+ #define HAVE_BSEARCH 1
68
69
  #define HAVE_ABS 1
69
70
  #define HAVE_BCOPY 1
70
71
  #define HAVE_MEMSET 1
@@ -38,12 +38,23 @@
38
38
  #include <winsdkver.h>
39
39
  #endif
40
40
 
41
+ /* sdkddkver.h defines more specific SDK version numbers. This is needed because older versions of the
42
+ * Windows 10 SDK have broken declarations for the C API for DirectX 12. */
43
+ #if !defined(HAVE_SDKDDKVER_H) && defined(__has_include)
44
+ #if __has_include(<sdkddkver.h>)
45
+ #define HAVE_SDKDDKVER_H 1
46
+ #endif
47
+ #endif
48
+
49
+ #ifdef HAVE_SDKDDKVER_H
50
+ #include <sdkddkver.h>
51
+ #endif
52
+
41
53
  /* This is a set of defines to configure the SDL features */
42
54
 
43
55
  #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H)
44
- #if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) || defined(__clang__) || defined(__BORLANDC__) || defined(__CODEGEARC__)
45
- #define HAVE_STDINT_H 1
46
- #elif defined(_MSC_VER)
56
+ /* Most everything except Visual Studio 2008 and earlier has stdint.h now */
57
+ #if defined(_MSC_VER) && (_MSC_VER < 1600)
47
58
  typedef signed __int8 int8_t;
48
59
  typedef unsigned __int8 uint8_t;
49
60
  typedef signed __int16 int16_t;
@@ -60,28 +71,9 @@ typedef unsigned int uintptr_t;
60
71
  #endif
61
72
  #define _UINTPTR_T_DEFINED
62
73
  #endif
63
- /* Older Visual C++ headers don't have the Win64-compatible typedefs... */
64
- #if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR)))
65
- #define DWORD_PTR DWORD
66
- #endif
67
- #if ((_MSC_VER <= 1200) && (!defined(LONG_PTR)))
68
- #define LONG_PTR LONG
69
- #endif
70
- #else /* !__GNUC__ && !_MSC_VER */
71
- typedef signed char int8_t;
72
- typedef unsigned char uint8_t;
73
- typedef signed short int16_t;
74
- typedef unsigned short uint16_t;
75
- typedef signed int int32_t;
76
- typedef unsigned int uint32_t;
77
- typedef signed long long int64_t;
78
- typedef unsigned long long uint64_t;
79
- #ifndef _SIZE_T_DEFINED_
80
- #define _SIZE_T_DEFINED_
81
- typedef unsigned int size_t;
82
- #endif
83
- typedef unsigned int uintptr_t;
84
- #endif /* __GNUC__ || _MSC_VER */
74
+ #else
75
+ #define HAVE_STDINT_H 1
76
+ #endif /* Visual Studio 2008 */
85
77
  #endif /* !_STDINT_H_ && !HAVE_STDINT_H */
86
78
 
87
79
  #ifdef _WIN64
@@ -90,9 +82,14 @@ typedef unsigned int uintptr_t;
90
82
  # define SIZEOF_VOIDP 4
91
83
  #endif
92
84
 
85
+ #ifdef __clang__
86
+ # define HAVE_GCC_ATOMICS 1
87
+ #endif
88
+
93
89
  #define HAVE_DDRAW_H 1
94
90
  #define HAVE_DINPUT_H 1
95
91
  #define HAVE_DSOUND_H 1
92
+ #ifndef __WATCOMC__
96
93
  #define HAVE_DXGI_H 1
97
94
  #define HAVE_XINPUT_H 1
98
95
  #if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0A00 /* Windows 10 SDK */
@@ -100,11 +97,19 @@ typedef unsigned int uintptr_t;
100
97
  #endif
101
98
  #if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0602 /* Windows 8 SDK */
102
99
  #define HAVE_D3D11_H 1
100
+ #define HAVE_ROAPI_H 1
101
+ #endif
102
+ #if defined(WDK_NTDDI_VERSION) && WDK_NTDDI_VERSION > 0x0A000008 /* 10.0.19041.0 */
103
+ #define HAVE_D3D12_H 1
104
+ #endif
105
+ #if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603 /* Windows 8.1 SDK */
106
+ #define HAVE_SHELLSCALINGAPI_H 1
103
107
  #endif
104
108
  #define HAVE_MMDEVICEAPI_H 1
105
109
  #define HAVE_AUDIOCLIENT_H 1
106
110
  #define HAVE_TPCSHRD_H 1
107
111
  #define HAVE_SENSORSAPI_H 1
112
+ #endif
108
113
  #if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
109
114
  #define HAVE_IMMINTRIN_H 1
110
115
  #elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
@@ -131,7 +136,11 @@ typedef unsigned int uintptr_t;
131
136
  #define HAVE_REALLOC 1
132
137
  #define HAVE_FREE 1
133
138
  #define HAVE_ALLOCA 1
139
+ /* OpenWatcom requires specific calling conventions for qsort and bsearch */
140
+ #ifndef __WATCOMC__
134
141
  #define HAVE_QSORT 1
142
+ #define HAVE_BSEARCH 1
143
+ #endif
135
144
  #define HAVE_ABS 1
136
145
  #define HAVE_MEMSET 1
137
146
  #define HAVE_MEMCPY 1
@@ -162,37 +171,40 @@ typedef unsigned int uintptr_t;
162
171
  #define HAVE__WCSNICMP 1
163
172
  #define HAVE__WCSDUP 1
164
173
  #define HAVE_ACOS 1
165
- #define HAVE_ACOSF 1
166
174
  #define HAVE_ASIN 1
167
- #define HAVE_ASINF 1
168
175
  #define HAVE_ATAN 1
169
- #define HAVE_ATANF 1
170
176
  #define HAVE_ATAN2 1
177
+ #define HAVE_CEIL 1
178
+ #define HAVE_COS 1
179
+ #define HAVE_EXP 1
180
+ #define HAVE_FABS 1
181
+ #define HAVE_FLOOR 1
182
+ #define HAVE_FMOD 1
183
+ #define HAVE_LOG 1
184
+ #define HAVE_LOG10 1
185
+ #define HAVE_POW 1
186
+ #define HAVE_SIN 1
187
+ #define HAVE_SQRT 1
188
+ #define HAVE_TAN 1
189
+ #ifndef __WATCOMC__
190
+ #define HAVE_ACOSF 1
191
+ #define HAVE_ASINF 1
192
+ #define HAVE_ATANF 1
171
193
  #define HAVE_ATAN2F 1
172
194
  #define HAVE_CEILF 1
173
195
  #define HAVE__COPYSIGN 1
174
- #define HAVE_COS 1
175
196
  #define HAVE_COSF 1
176
- #define HAVE_EXP 1
177
197
  #define HAVE_EXPF 1
178
- #define HAVE_FABS 1
179
198
  #define HAVE_FABSF 1
180
- #define HAVE_FLOOR 1
181
199
  #define HAVE_FLOORF 1
182
- #define HAVE_FMOD 1
183
200
  #define HAVE_FMODF 1
184
- #define HAVE_LOG 1
185
201
  #define HAVE_LOGF 1
186
- #define HAVE_LOG10 1
187
202
  #define HAVE_LOG10F 1
188
- #define HAVE_POW 1
189
203
  #define HAVE_POWF 1
190
- #define HAVE_SIN 1
191
204
  #define HAVE_SINF 1
192
- #define HAVE_SQRT 1
193
205
  #define HAVE_SQRTF 1
194
- #define HAVE_TAN 1
195
206
  #define HAVE_TANF 1
207
+ #endif
196
208
  #if defined(_MSC_VER)
197
209
  /* These functions were added with the VC++ 2013 C runtime library */
198
210
  #if _MSC_VER >= 1800
@@ -212,8 +224,18 @@ typedef unsigned int uintptr_t;
212
224
  #if _MSC_VER >= 1400
213
225
  #define HAVE__FSEEKI64 1
214
226
  #endif
227
+ #ifdef _USE_MATH_DEFINES
228
+ #define HAVE_M_PI 1
215
229
  #endif
216
- #if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES)
230
+ #elif defined(__WATCOMC__)
231
+ #define HAVE__FSEEKI64 1
232
+ #define HAVE_STRTOLL 1
233
+ #define HAVE_STRTOULL 1
234
+ #define HAVE_VSSCANF 1
235
+ #define HAVE_ROUND 1
236
+ #define HAVE_SCALBN 1
237
+ #define HAVE_TRUNC 1
238
+ #else
217
239
  #define HAVE_M_PI 1
218
240
  #endif
219
241
  #else
@@ -222,7 +244,9 @@ typedef unsigned int uintptr_t;
222
244
  #endif
223
245
 
224
246
  /* Enable various audio drivers */
247
+ #if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
225
248
  #define SDL_AUDIO_DRIVER_WASAPI 1
249
+ #endif
226
250
  #define SDL_AUDIO_DRIVER_DSOUND 1
227
251
  #define SDL_AUDIO_DRIVER_WINMM 1
228
252
  #define SDL_AUDIO_DRIVER_DISK 1
@@ -243,7 +267,11 @@ typedef unsigned int uintptr_t;
243
267
  #define SDL_HAPTIC_XINPUT 1
244
268
 
245
269
  /* Enable the sensor driver */
270
+ #ifdef HAVE_SENSORSAPI_H
246
271
  #define SDL_SENSOR_WINDOWS 1
272
+ #else
273
+ #define SDL_SENSOR_DUMMY 1
274
+ #endif
247
275
 
248
276
  /* Enable various shared object loading systems */
249
277
  #define SDL_LOADSO_WINDOWS 1
@@ -265,6 +293,9 @@ typedef unsigned int uintptr_t;
265
293
  #if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H)
266
294
  #define SDL_VIDEO_RENDER_D3D11 1
267
295
  #endif
296
+ #if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H)
297
+ #define SDL_VIDEO_RENDER_D3D12 1
298
+ #endif
268
299
 
269
300
  /* Enable OpenGL support */
270
301
  #ifndef SDL_VIDEO_OPENGL
@@ -295,11 +326,6 @@ typedef unsigned int uintptr_t;
295
326
  /* Enable filesystem support */
296
327
  #define SDL_FILESYSTEM_WINDOWS 1
297
328
 
298
- /* Enable assembly routines (Win64 doesn't have inline asm) */
299
- #ifndef _WIN64
300
- #define SDL_ASSEMBLY_ROUTINES 1
301
- #endif
302
-
303
329
  #endif /* SDL_config_windows_h_ */
304
330
 
305
331
  /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,253 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ #ifndef SDL_config_wingdk_h_
23
+ #define SDL_config_wingdk_h_
24
+ #define SDL_config_h_
25
+
26
+ #include "SDL_platform.h"
27
+
28
+ /* Windows GDK does not need Windows SDK version checks because it requires
29
+ * a recent version of the Windows 10 SDK. */
30
+
31
+ /* GDK only supports 64-bit */
32
+ # define SIZEOF_VOIDP 8
33
+
34
+ #ifdef __clang__
35
+ # define HAVE_GCC_ATOMICS 1
36
+ #endif
37
+
38
+ #define HAVE_DDRAW_H 1
39
+ #define HAVE_DINPUT_H 1
40
+ #define HAVE_DSOUND_H 1
41
+ /* No SDK version checks needed for these because the SDK has to be new. */
42
+ #define HAVE_DXGI_H 1
43
+ #define HAVE_XINPUT_H 1
44
+ #define HAVE_WINDOWS_GAMING_INPUT_H 1
45
+ #define HAVE_D3D11_H 1
46
+ #define HAVE_ROAPI_H 1
47
+ #define HAVE_D3D12_H 1
48
+ #define HAVE_SHELLSCALINGAPI_H 1
49
+ #define HAVE_MMDEVICEAPI_H 1
50
+ #define HAVE_AUDIOCLIENT_H 1
51
+ #define HAVE_TPCSHRD_H 1
52
+ #define HAVE_SENSORSAPI_H 1
53
+ #if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
54
+ #define HAVE_IMMINTRIN_H 1
55
+ #elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
56
+ # if __has_include(<immintrin.h>)
57
+ # define HAVE_IMMINTRIN_H 1
58
+ # endif
59
+ #endif
60
+
61
+ /* This is disabled by default to avoid C runtime dependencies and manifest requirements */
62
+ #ifdef HAVE_LIBC
63
+ /* Useful headers */
64
+ #define STDC_HEADERS 1
65
+ #define HAVE_CTYPE_H 1
66
+ #define HAVE_FLOAT_H 1
67
+ #define HAVE_LIMITS_H 1
68
+ #define HAVE_MATH_H 1
69
+ #define HAVE_SIGNAL_H 1
70
+ #define HAVE_STDINT_H 1
71
+ #define HAVE_STDIO_H 1
72
+ #define HAVE_STRING_H 1
73
+
74
+ /* C library functions */
75
+ #define HAVE_MALLOC 1
76
+ #define HAVE_CALLOC 1
77
+ #define HAVE_REALLOC 1
78
+ #define HAVE_FREE 1
79
+ #define HAVE_ALLOCA 1
80
+ #define HAVE_QSORT 1
81
+ #define HAVE_BSEARCH 1
82
+ #define HAVE_ABS 1
83
+ #define HAVE_MEMSET 1
84
+ #define HAVE_MEMCPY 1
85
+ #define HAVE_MEMMOVE 1
86
+ #define HAVE_MEMCMP 1
87
+ #define HAVE_STRLEN 1
88
+ #define HAVE__STRREV 1
89
+ /* These functions have security warnings, so we won't use them */
90
+ /* #undef HAVE__STRUPR */
91
+ /* #undef HAVE__STRLWR */
92
+ #define HAVE_STRCHR 1
93
+ #define HAVE_STRRCHR 1
94
+ #define HAVE_STRSTR 1
95
+ /* #undef HAVE_STRTOK_R */
96
+ /* These functions have security warnings, so we won't use them */
97
+ /* #undef HAVE__LTOA */
98
+ /* #undef HAVE__ULTOA */
99
+ #define HAVE_STRTOL 1
100
+ #define HAVE_STRTOUL 1
101
+ #define HAVE_STRTOD 1
102
+ #define HAVE_ATOI 1
103
+ #define HAVE_ATOF 1
104
+ #define HAVE_STRCMP 1
105
+ #define HAVE_STRNCMP 1
106
+ #define HAVE__STRICMP 1
107
+ #define HAVE__STRNICMP 1
108
+ #define HAVE__WCSICMP 1
109
+ #define HAVE__WCSNICMP 1
110
+ #define HAVE__WCSDUP 1
111
+ #define HAVE_ACOS 1
112
+ #define HAVE_ASIN 1
113
+ #define HAVE_ATAN 1
114
+ #define HAVE_ATAN2 1
115
+ #define HAVE_CEIL 1
116
+ #define HAVE_COS 1
117
+ #define HAVE_EXP 1
118
+ #define HAVE_FABS 1
119
+ #define HAVE_FLOOR 1
120
+ #define HAVE_FMOD 1
121
+ #define HAVE_LOG 1
122
+ #define HAVE_LOG10 1
123
+ #define HAVE_POW 1
124
+ #define HAVE_SIN 1
125
+ #define HAVE_SQRT 1
126
+ #define HAVE_TAN 1
127
+ #define HAVE_ACOSF 1
128
+ #define HAVE_ASINF 1
129
+ #define HAVE_ATANF 1
130
+ #define HAVE_ATAN2F 1
131
+ #define HAVE_CEILF 1
132
+ #define HAVE__COPYSIGN 1
133
+ #define HAVE_COSF 1
134
+ #define HAVE_EXPF 1
135
+ #define HAVE_FABSF 1
136
+ #define HAVE_FLOORF 1
137
+ #define HAVE_FMODF 1
138
+ #define HAVE_LOGF 1
139
+ #define HAVE_LOG10F 1
140
+ #define HAVE_POWF 1
141
+ #define HAVE_SINF 1
142
+ #define HAVE_SQRTF 1
143
+ #define HAVE_TANF 1
144
+ #if defined(_MSC_VER)
145
+ /* These functions were added with the VC++ 2013 C runtime library */
146
+ #define HAVE_STRTOLL 1
147
+ #define HAVE_STRTOULL 1
148
+ #define HAVE_VSSCANF 1
149
+ #define HAVE_LROUND 1
150
+ #define HAVE_LROUNDF 1
151
+ #define HAVE_ROUND 1
152
+ #define HAVE_ROUNDF 1
153
+ #define HAVE_SCALBN 1
154
+ #define HAVE_SCALBNF 1
155
+ #define HAVE_TRUNC 1
156
+ #define HAVE_TRUNCF 1
157
+ #define HAVE__FSEEKI64 1
158
+ #ifdef _USE_MATH_DEFINES
159
+ #define HAVE_M_PI 1
160
+ #endif
161
+ #else
162
+ #define HAVE_M_PI 1
163
+ #endif
164
+ #else
165
+ #define HAVE_STDARG_H 1
166
+ #define HAVE_STDDEF_H 1
167
+ #define HAVE_STDINT_H 1
168
+ #endif
169
+
170
+ /* Enable various audio drivers */
171
+ #if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
172
+ #define SDL_AUDIO_DRIVER_WASAPI 1
173
+ #endif
174
+ #define SDL_AUDIO_DRIVER_DSOUND 1
175
+ #define SDL_AUDIO_DRIVER_WINMM 1
176
+ #define SDL_AUDIO_DRIVER_DISK 1
177
+ #define SDL_AUDIO_DRIVER_DUMMY 1
178
+
179
+ /* Enable various input drivers */
180
+ #define SDL_JOYSTICK_DINPUT 1
181
+ #define SDL_JOYSTICK_HIDAPI 1
182
+ #define SDL_JOYSTICK_RAWINPUT 1
183
+ #define SDL_JOYSTICK_VIRTUAL 1
184
+ #ifdef HAVE_WINDOWS_GAMING_INPUT_H
185
+ #define SDL_JOYSTICK_WGI 1
186
+ #endif
187
+ #define SDL_JOYSTICK_XINPUT 1
188
+ #define SDL_HAPTIC_DINPUT 1
189
+ #define SDL_HAPTIC_XINPUT 1
190
+
191
+ /* Enable the sensor driver */
192
+ #ifdef HAVE_SENSORSAPI_H
193
+ #define SDL_SENSOR_WINDOWS 1
194
+ #else
195
+ #define SDL_SENSOR_DUMMY 1
196
+ #endif
197
+
198
+ /* Enable various shared object loading systems */
199
+ #define SDL_LOADSO_WINDOWS 1
200
+
201
+ /* Enable various threading systems */
202
+ #define SDL_THREAD_GENERIC_COND_SUFFIX 1
203
+ #define SDL_THREAD_WINDOWS 1
204
+
205
+ /* Enable various timer systems */
206
+ #define SDL_TIMER_WINDOWS 1
207
+
208
+ /* Enable various video drivers */
209
+ #define SDL_VIDEO_DRIVER_DUMMY 1
210
+ #define SDL_VIDEO_DRIVER_WINDOWS 1
211
+
212
+ #ifndef SDL_VIDEO_RENDER_D3D
213
+ #define SDL_VIDEO_RENDER_D3D 1
214
+ #endif
215
+ #if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H)
216
+ #define SDL_VIDEO_RENDER_D3D11 1
217
+ #endif
218
+ #if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H)
219
+ #define SDL_VIDEO_RENDER_D3D12 1
220
+ #endif
221
+
222
+ /* Enable OpenGL support */
223
+ #ifndef SDL_VIDEO_OPENGL
224
+ #define SDL_VIDEO_OPENGL 1
225
+ #endif
226
+ #ifndef SDL_VIDEO_OPENGL_WGL
227
+ #define SDL_VIDEO_OPENGL_WGL 1
228
+ #endif
229
+ #ifndef SDL_VIDEO_RENDER_OGL
230
+ #define SDL_VIDEO_RENDER_OGL 1
231
+ #endif
232
+ #ifndef SDL_VIDEO_RENDER_OGL_ES2
233
+ #define SDL_VIDEO_RENDER_OGL_ES2 1
234
+ #endif
235
+ #ifndef SDL_VIDEO_OPENGL_ES2
236
+ #define SDL_VIDEO_OPENGL_ES2 1
237
+ #endif
238
+ #ifndef SDL_VIDEO_OPENGL_EGL
239
+ #define SDL_VIDEO_OPENGL_EGL 1
240
+ #endif
241
+
242
+ /* Enable Vulkan support */
243
+ #define SDL_VIDEO_VULKAN 1
244
+
245
+ /* Enable system power support */
246
+ #define SDL_POWER_WINDOWS 1
247
+
248
+ /* Enable filesystem support */
249
+ #define SDL_FILESYSTEM_WINDOWS 1
250
+
251
+ #endif /* SDL_config_wingdk_h_ */
252
+
253
+ /* vi: set ts=4 sw=4 expandtab: */