ruby2d-rpeck-windows 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. checksums.yaml +7 -0
  2. data/assets/README.md +22 -0
  3. data/assets/Rakefile +85 -0
  4. data/assets/app.icns +0 -0
  5. data/assets/include/SDL2/SDL.h +138 -0
  6. data/assets/include/SDL2/SDL_assert.h +293 -0
  7. data/assets/include/SDL2/SDL_atomic.h +295 -0
  8. data/assets/include/SDL2/SDL_audio.h +859 -0
  9. data/assets/include/SDL2/SDL_bits.h +121 -0
  10. data/assets/include/SDL2/SDL_blendmode.h +123 -0
  11. data/assets/include/SDL2/SDL_clipboard.h +71 -0
  12. data/assets/include/SDL2/SDL_config.h +55 -0
  13. data/assets/include/SDL2/SDL_config_android.h +182 -0
  14. data/assets/include/SDL2/SDL_config_iphoneos.h +207 -0
  15. data/assets/include/SDL2/SDL_config_macosx.h +266 -0
  16. data/assets/include/SDL2/SDL_config_minimal.h +85 -0
  17. data/assets/include/SDL2/SDL_config_os2.h +188 -0
  18. data/assets/include/SDL2/SDL_config_pandora.h +135 -0
  19. data/assets/include/SDL2/SDL_config_psp.h +165 -0
  20. data/assets/include/SDL2/SDL_config_windows.h +288 -0
  21. data/assets/include/SDL2/SDL_config_winrt.h +243 -0
  22. data/assets/include/SDL2/SDL_config_wiz.h +149 -0
  23. data/assets/include/SDL2/SDL_copying.h +20 -0
  24. data/assets/include/SDL2/SDL_cpuinfo.h +299 -0
  25. data/assets/include/SDL2/SDL_egl.h +1676 -0
  26. data/assets/include/SDL2/SDL_endian.h +263 -0
  27. data/assets/include/SDL2/SDL_error.h +112 -0
  28. data/assets/include/SDL2/SDL_events.h +827 -0
  29. data/assets/include/SDL2/SDL_filesystem.h +136 -0
  30. data/assets/include/SDL2/SDL_gamecontroller.h +541 -0
  31. data/assets/include/SDL2/SDL_gesture.h +87 -0
  32. data/assets/include/SDL2/SDL_haptic.h +1247 -0
  33. data/assets/include/SDL2/SDL_hints.h +1578 -0
  34. data/assets/include/SDL2/SDL_image.h +161 -0
  35. data/assets/include/SDL2/SDL_joystick.h +499 -0
  36. data/assets/include/SDL2/SDL_keyboard.h +217 -0
  37. data/assets/include/SDL2/SDL_keycode.h +351 -0
  38. data/assets/include/SDL2/SDL_loadso.h +81 -0
  39. data/assets/include/SDL2/SDL_locale.h +101 -0
  40. data/assets/include/SDL2/SDL_log.h +211 -0
  41. data/assets/include/SDL2/SDL_main.h +180 -0
  42. data/assets/include/SDL2/SDL_messagebox.h +146 -0
  43. data/assets/include/SDL2/SDL_metal.h +117 -0
  44. data/assets/include/SDL2/SDL_misc.h +75 -0
  45. data/assets/include/SDL2/SDL_mixer.h +651 -0
  46. data/assets/include/SDL2/SDL_mouse.h +302 -0
  47. data/assets/include/SDL2/SDL_mutex.h +251 -0
  48. data/assets/include/SDL2/SDL_name.h +33 -0
  49. data/assets/include/SDL2/SDL_opengl.h +2183 -0
  50. data/assets/include/SDL2/SDL_opengl_glext.h +11180 -0
  51. data/assets/include/SDL2/SDL_opengles.h +39 -0
  52. data/assets/include/SDL2/SDL_opengles2.h +52 -0
  53. data/assets/include/SDL2/SDL_opengles2_gl2.h +621 -0
  54. data/assets/include/SDL2/SDL_opengles2_gl2ext.h +2050 -0
  55. data/assets/include/SDL2/SDL_opengles2_gl2platform.h +30 -0
  56. data/assets/include/SDL2/SDL_opengles2_khrplatform.h +282 -0
  57. data/assets/include/SDL2/SDL_pixels.h +479 -0
  58. data/assets/include/SDL2/SDL_platform.h +198 -0
  59. data/assets/include/SDL2/SDL_power.h +75 -0
  60. data/assets/include/SDL2/SDL_quit.h +58 -0
  61. data/assets/include/SDL2/SDL_rect.h +174 -0
  62. data/assets/include/SDL2/SDL_render.h +1158 -0
  63. data/assets/include/SDL2/SDL_revision.h +2 -0
  64. data/assets/include/SDL2/SDL_rwops.h +283 -0
  65. data/assets/include/SDL2/SDL_scancode.h +413 -0
  66. data/assets/include/SDL2/SDL_sensor.h +267 -0
  67. data/assets/include/SDL2/SDL_shape.h +144 -0
  68. data/assets/include/SDL2/SDL_stdinc.h +647 -0
  69. data/assets/include/SDL2/SDL_surface.h +563 -0
  70. data/assets/include/SDL2/SDL_system.h +325 -0
  71. data/assets/include/SDL2/SDL_syswm.h +354 -0
  72. data/assets/include/SDL2/SDL_test.h +69 -0
  73. data/assets/include/SDL2/SDL_test_assert.h +105 -0
  74. data/assets/include/SDL2/SDL_test_common.h +218 -0
  75. data/assets/include/SDL2/SDL_test_compare.h +69 -0
  76. data/assets/include/SDL2/SDL_test_crc32.h +124 -0
  77. data/assets/include/SDL2/SDL_test_font.h +81 -0
  78. data/assets/include/SDL2/SDL_test_fuzzer.h +384 -0
  79. data/assets/include/SDL2/SDL_test_harness.h +134 -0
  80. data/assets/include/SDL2/SDL_test_images.h +78 -0
  81. data/assets/include/SDL2/SDL_test_log.h +67 -0
  82. data/assets/include/SDL2/SDL_test_md5.h +129 -0
  83. data/assets/include/SDL2/SDL_test_memory.h +63 -0
  84. data/assets/include/SDL2/SDL_test_random.h +115 -0
  85. data/assets/include/SDL2/SDL_thread.h +366 -0
  86. data/assets/include/SDL2/SDL_timer.h +115 -0
  87. data/assets/include/SDL2/SDL_touch.h +102 -0
  88. data/assets/include/SDL2/SDL_ttf.h +294 -0
  89. data/assets/include/SDL2/SDL_types.h +29 -0
  90. data/assets/include/SDL2/SDL_version.h +162 -0
  91. data/assets/include/SDL2/SDL_video.h +1282 -0
  92. data/assets/include/SDL2/SDL_vulkan.h +276 -0
  93. data/assets/include/SDL2/begin_code.h +166 -0
  94. data/assets/include/SDL2/close_code.h +40 -0
  95. data/assets/include/glew.h +23686 -0
  96. data/assets/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  97. data/assets/ios/Assets.xcassets/Contents.json +6 -0
  98. data/assets/ios/Base.lproj/LaunchScreen.storyboard +27 -0
  99. data/assets/ios/Info.plist +43 -0
  100. data/assets/ios/MRuby.framework/Headers/mrbconf.h +143 -0
  101. data/assets/ios/MRuby.framework/Headers/mruby/array.h +280 -0
  102. data/assets/ios/MRuby.framework/Headers/mruby/boxing_nan.h +102 -0
  103. data/assets/ios/MRuby.framework/Headers/mruby/boxing_no.h +56 -0
  104. data/assets/ios/MRuby.framework/Headers/mruby/boxing_word.h +144 -0
  105. data/assets/ios/MRuby.framework/Headers/mruby/class.h +97 -0
  106. data/assets/ios/MRuby.framework/Headers/mruby/common.h +77 -0
  107. data/assets/ios/MRuby.framework/Headers/mruby/compile.h +195 -0
  108. data/assets/ios/MRuby.framework/Headers/mruby/data.h +75 -0
  109. data/assets/ios/MRuby.framework/Headers/mruby/debug.h +67 -0
  110. data/assets/ios/MRuby.framework/Headers/mruby/dump.h +196 -0
  111. data/assets/ios/MRuby.framework/Headers/mruby/error.h +75 -0
  112. data/assets/ios/MRuby.framework/Headers/mruby/gc.h +91 -0
  113. data/assets/ios/MRuby.framework/Headers/mruby/hash.h +215 -0
  114. data/assets/ios/MRuby.framework/Headers/mruby/irep.h +75 -0
  115. data/assets/ios/MRuby.framework/Headers/mruby/istruct.h +47 -0
  116. data/assets/ios/MRuby.framework/Headers/mruby/khash.h +274 -0
  117. data/assets/ios/MRuby.framework/Headers/mruby/numeric.h +161 -0
  118. data/assets/ios/MRuby.framework/Headers/mruby/object.h +44 -0
  119. data/assets/ios/MRuby.framework/Headers/mruby/opcode.h +69 -0
  120. data/assets/ios/MRuby.framework/Headers/mruby/ops.h +117 -0
  121. data/assets/ios/MRuby.framework/Headers/mruby/proc.h +131 -0
  122. data/assets/ios/MRuby.framework/Headers/mruby/range.h +49 -0
  123. data/assets/ios/MRuby.framework/Headers/mruby/re.h +16 -0
  124. data/assets/ios/MRuby.framework/Headers/mruby/string.h +444 -0
  125. data/assets/ios/MRuby.framework/Headers/mruby/throw.h +55 -0
  126. data/assets/ios/MRuby.framework/Headers/mruby/value.h +309 -0
  127. data/assets/ios/MRuby.framework/Headers/mruby/variable.h +136 -0
  128. data/assets/ios/MRuby.framework/Headers/mruby/version.h +110 -0
  129. data/assets/ios/MRuby.framework/Headers/mruby.h +1282 -0
  130. data/assets/ios/MRuby.framework/Info.plist +20 -0
  131. data/assets/ios/MRuby.framework/MRuby +0 -0
  132. data/assets/ios/MyApp.xcodeproj/project.pbxproj +368 -0
  133. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  134. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  135. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +30 -0
  136. data/assets/ios/main.c +1 -0
  137. data/assets/macos/lib/libFLAC.a +0 -0
  138. data/assets/macos/lib/libSDL2.a +0 -0
  139. data/assets/macos/lib/libSDL2_image.a +0 -0
  140. data/assets/macos/lib/libSDL2_mixer.a +0 -0
  141. data/assets/macos/lib/libSDL2_ttf.a +0 -0
  142. data/assets/macos/lib/libfreetype.a +0 -0
  143. data/assets/macos/lib/libjpeg.a +0 -0
  144. data/assets/macos/lib/libmodplug.a +0 -0
  145. data/assets/macos/lib/libmpg123.a +0 -0
  146. data/assets/macos/lib/libogg.a +0 -0
  147. data/assets/macos/lib/libpng16.a +0 -0
  148. data/assets/macos/lib/libtiff.a +0 -0
  149. data/assets/macos/lib/libvorbis.a +0 -0
  150. data/assets/macos/lib/libvorbisfile.a +0 -0
  151. data/assets/macos/lib/libwebp.a +0 -0
  152. data/assets/mingw/bin/SDL2.dll +0 -0
  153. data/assets/mingw/bin/SDL2_image.dll +0 -0
  154. data/assets/mingw/bin/SDL2_mixer.dll +0 -0
  155. data/assets/mingw/bin/SDL2_ttf.dll +0 -0
  156. data/assets/mingw/bin/glew32.dll +0 -0
  157. data/assets/mingw/bin/libFLAC-8.dll +0 -0
  158. data/assets/mingw/bin/libfreetype-6.dll +0 -0
  159. data/assets/mingw/bin/libjpeg-9.dll +0 -0
  160. data/assets/mingw/bin/libmodplug-1.dll +0 -0
  161. data/assets/mingw/bin/libmpg123-0.dll +0 -0
  162. data/assets/mingw/bin/libogg-0.dll +0 -0
  163. data/assets/mingw/bin/libopus-0.dll +0 -0
  164. data/assets/mingw/bin/libopusfile-0.dll +0 -0
  165. data/assets/mingw/bin/libpng16-16.dll +0 -0
  166. data/assets/mingw/bin/libtiff-5.dll +0 -0
  167. data/assets/mingw/bin/libvorbis-0.dll +0 -0
  168. data/assets/mingw/bin/libvorbisfile-3.dll +0 -0
  169. data/assets/mingw/bin/libwebp-7.dll +0 -0
  170. data/assets/mingw/bin/libwinpthread-1.dll +0 -0
  171. data/assets/mingw/bin/zlib1.dll +0 -0
  172. data/assets/mingw/lib/libSDL2.a +0 -0
  173. data/assets/mingw/lib/libSDL2.dll.a +0 -0
  174. data/assets/mingw/lib/libSDL2_image.a +0 -0
  175. data/assets/mingw/lib/libSDL2_image.dll.a +0 -0
  176. data/assets/mingw/lib/libSDL2_mixer.a +0 -0
  177. data/assets/mingw/lib/libSDL2_mixer.dll.a +0 -0
  178. data/assets/mingw/lib/libSDL2_test.a +0 -0
  179. data/assets/mingw/lib/libSDL2_ttf.a +0 -0
  180. data/assets/mingw/lib/libSDL2_ttf.dll.a +0 -0
  181. data/assets/mingw/lib/libSDL2main.a +0 -0
  182. data/assets/mingw/lib/libglew32.a +0 -0
  183. data/assets/mingw/lib/libglew32.dll.a +0 -0
  184. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +16 -0
  185. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +6 -0
  186. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +17 -0
  187. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +16 -0
  188. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +6 -0
  189. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +16 -0
  190. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +6 -0
  191. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +16 -0
  192. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +6 -0
  193. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +17 -0
  194. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +16 -0
  195. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +6 -0
  196. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +16 -0
  197. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +6 -0
  198. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +32 -0
  199. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +16 -0
  200. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +16 -0
  201. data/assets/tvos/Assets.xcassets/Contents.json +6 -0
  202. data/assets/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +22 -0
  203. data/assets/tvos/Info.plist +30 -0
  204. data/assets/tvos/MRuby.framework/Headers/mrbconf.h +143 -0
  205. data/assets/tvos/MRuby.framework/Headers/mruby/array.h +280 -0
  206. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_nan.h +102 -0
  207. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_no.h +56 -0
  208. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_word.h +144 -0
  209. data/assets/tvos/MRuby.framework/Headers/mruby/class.h +97 -0
  210. data/assets/tvos/MRuby.framework/Headers/mruby/common.h +77 -0
  211. data/assets/tvos/MRuby.framework/Headers/mruby/compile.h +195 -0
  212. data/assets/tvos/MRuby.framework/Headers/mruby/data.h +75 -0
  213. data/assets/tvos/MRuby.framework/Headers/mruby/debug.h +67 -0
  214. data/assets/tvos/MRuby.framework/Headers/mruby/dump.h +196 -0
  215. data/assets/tvos/MRuby.framework/Headers/mruby/error.h +75 -0
  216. data/assets/tvos/MRuby.framework/Headers/mruby/gc.h +91 -0
  217. data/assets/tvos/MRuby.framework/Headers/mruby/hash.h +215 -0
  218. data/assets/tvos/MRuby.framework/Headers/mruby/irep.h +75 -0
  219. data/assets/tvos/MRuby.framework/Headers/mruby/istruct.h +47 -0
  220. data/assets/tvos/MRuby.framework/Headers/mruby/khash.h +274 -0
  221. data/assets/tvos/MRuby.framework/Headers/mruby/numeric.h +161 -0
  222. data/assets/tvos/MRuby.framework/Headers/mruby/object.h +44 -0
  223. data/assets/tvos/MRuby.framework/Headers/mruby/opcode.h +69 -0
  224. data/assets/tvos/MRuby.framework/Headers/mruby/ops.h +117 -0
  225. data/assets/tvos/MRuby.framework/Headers/mruby/proc.h +131 -0
  226. data/assets/tvos/MRuby.framework/Headers/mruby/range.h +49 -0
  227. data/assets/tvos/MRuby.framework/Headers/mruby/re.h +16 -0
  228. data/assets/tvos/MRuby.framework/Headers/mruby/string.h +444 -0
  229. data/assets/tvos/MRuby.framework/Headers/mruby/throw.h +55 -0
  230. data/assets/tvos/MRuby.framework/Headers/mruby/value.h +309 -0
  231. data/assets/tvos/MRuby.framework/Headers/mruby/variable.h +136 -0
  232. data/assets/tvos/MRuby.framework/Headers/mruby/version.h +110 -0
  233. data/assets/tvos/MRuby.framework/Headers/mruby.h +1282 -0
  234. data/assets/tvos/MRuby.framework/Info.plist +20 -0
  235. data/assets/tvos/MRuby.framework/MRuby +0 -0
  236. data/assets/tvos/MyApp.xcodeproj/project.pbxproj +350 -0
  237. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  238. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  239. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +30 -0
  240. data/assets/tvos/main.c +1 -0
  241. data/bin/ruby2d +142 -0
  242. data/ext/ruby2d/common.c +185 -0
  243. data/ext/ruby2d/controllers.c +110 -0
  244. data/ext/ruby2d/extconf.rb +147 -0
  245. data/ext/ruby2d/font.c +35 -0
  246. data/ext/ruby2d/gl.c +398 -0
  247. data/ext/ruby2d/gl2.c +86 -0
  248. data/ext/ruby2d/gl3.c +305 -0
  249. data/ext/ruby2d/gles.c +249 -0
  250. data/ext/ruby2d/image.c +58 -0
  251. data/ext/ruby2d/input.c +48 -0
  252. data/ext/ruby2d/music.c +127 -0
  253. data/ext/ruby2d/ruby2d.c +1374 -0
  254. data/ext/ruby2d/ruby2d.h +656 -0
  255. data/ext/ruby2d/shapes.c +154 -0
  256. data/ext/ruby2d/sound.c +118 -0
  257. data/ext/ruby2d/text.c +22 -0
  258. data/ext/ruby2d/window.c +414 -0
  259. data/lib/ruby2d/circle.rb +43 -0
  260. data/lib/ruby2d/cli/build.rb +237 -0
  261. data/lib/ruby2d/cli/colorize.rb +10 -0
  262. data/lib/ruby2d/cli/console.rb +65 -0
  263. data/lib/ruby2d/cli/enable_console.rb +5 -0
  264. data/lib/ruby2d/cli/launch.rb +50 -0
  265. data/lib/ruby2d/color.rb +136 -0
  266. data/lib/ruby2d/dsl.rb +46 -0
  267. data/lib/ruby2d/entity.rb +17 -0
  268. data/lib/ruby2d/exceptions.rb +6 -0
  269. data/lib/ruby2d/font.rb +96 -0
  270. data/lib/ruby2d/image.rb +58 -0
  271. data/lib/ruby2d/line.rb +89 -0
  272. data/lib/ruby2d/music.rb +67 -0
  273. data/lib/ruby2d/pixel.rb +17 -0
  274. data/lib/ruby2d/quad.rb +96 -0
  275. data/lib/ruby2d/rectangle.rb +65 -0
  276. data/lib/ruby2d/renderable.rb +40 -0
  277. data/lib/ruby2d/ruby2d.so +0 -0
  278. data/lib/ruby2d/sound.rb +55 -0
  279. data/lib/ruby2d/sprite.rb +232 -0
  280. data/lib/ruby2d/square.rb +37 -0
  281. data/lib/ruby2d/text.rb +76 -0
  282. data/lib/ruby2d/texture.rb +28 -0
  283. data/lib/ruby2d/tileset.rb +87 -0
  284. data/lib/ruby2d/triangle.rb +82 -0
  285. data/lib/ruby2d/version.rb +5 -0
  286. data/lib/ruby2d/vertices.rb +84 -0
  287. data/lib/ruby2d/window.rb +673 -0
  288. data/lib/ruby2d.rb +69 -0
  289. metadata +346 -0
@@ -0,0 +1,647 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2020 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
+ /**
23
+ * \file SDL_stdinc.h
24
+ *
25
+ * This is a general header that includes C language support.
26
+ */
27
+
28
+ #ifndef SDL_stdinc_h_
29
+ #define SDL_stdinc_h_
30
+
31
+ #include "SDL_config.h"
32
+
33
+ #ifdef __APPLE__
34
+ #ifndef _DARWIN_C_SOURCE
35
+ #define _DARWIN_C_SOURCE 1 /* for memset_pattern4() */
36
+ #endif
37
+ #endif
38
+
39
+ #ifdef HAVE_SYS_TYPES_H
40
+ #include <sys/types.h>
41
+ #endif
42
+ #ifdef HAVE_STDIO_H
43
+ #include <stdio.h>
44
+ #endif
45
+ #if defined(STDC_HEADERS)
46
+ # include <stdlib.h>
47
+ # include <stddef.h>
48
+ # include <stdarg.h>
49
+ #else
50
+ # if defined(HAVE_STDLIB_H)
51
+ # include <stdlib.h>
52
+ # elif defined(HAVE_MALLOC_H)
53
+ # include <malloc.h>
54
+ # endif
55
+ # if defined(HAVE_STDDEF_H)
56
+ # include <stddef.h>
57
+ # endif
58
+ # if defined(HAVE_STDARG_H)
59
+ # include <stdarg.h>
60
+ # endif
61
+ #endif
62
+ #ifdef HAVE_STRING_H
63
+ # if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
64
+ # include <memory.h>
65
+ # endif
66
+ # include <string.h>
67
+ #endif
68
+ #ifdef HAVE_STRINGS_H
69
+ # include <strings.h>
70
+ #endif
71
+ #ifdef HAVE_WCHAR_H
72
+ # include <wchar.h>
73
+ #endif
74
+ #if defined(HAVE_INTTYPES_H)
75
+ # include <inttypes.h>
76
+ #elif defined(HAVE_STDINT_H)
77
+ # include <stdint.h>
78
+ #endif
79
+ #ifdef HAVE_CTYPE_H
80
+ # include <ctype.h>
81
+ #endif
82
+ #ifdef HAVE_MATH_H
83
+ # if defined(__WINRT__)
84
+ /* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on
85
+ WinRT. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx
86
+ for more information.
87
+ */
88
+ # define _USE_MATH_DEFINES
89
+ # endif
90
+ # include <math.h>
91
+ #endif
92
+ #ifdef HAVE_FLOAT_H
93
+ # include <float.h>
94
+ #endif
95
+ #if defined(HAVE_ALLOCA) && !defined(alloca)
96
+ # if defined(HAVE_ALLOCA_H)
97
+ # include <alloca.h>
98
+ # elif defined(__GNUC__)
99
+ # define alloca __builtin_alloca
100
+ # elif defined(_MSC_VER)
101
+ # include <malloc.h>
102
+ # define alloca _alloca
103
+ # elif defined(__WATCOMC__)
104
+ # include <malloc.h>
105
+ # elif defined(__BORLANDC__)
106
+ # include <malloc.h>
107
+ # elif defined(__DMC__)
108
+ # include <stdlib.h>
109
+ # elif defined(__AIX__)
110
+ #pragma alloca
111
+ # elif defined(__MRC__)
112
+ void *alloca(unsigned);
113
+ # else
114
+ char *alloca();
115
+ # endif
116
+ #endif
117
+
118
+ /**
119
+ * The number of elements in an array.
120
+ */
121
+ #define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
122
+ #define SDL_TABLESIZE(table) SDL_arraysize(table)
123
+
124
+ /**
125
+ * Macro useful for building other macros with strings in them
126
+ *
127
+ * e.g. #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n")
128
+ */
129
+ #define SDL_STRINGIFY_ARG(arg) #arg
130
+
131
+ /**
132
+ * \name Cast operators
133
+ *
134
+ * Use proper C++ casts when compiled as C++ to be compatible with the option
135
+ * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above).
136
+ */
137
+ /* @{ */
138
+ #ifdef __cplusplus
139
+ #define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
140
+ #define SDL_static_cast(type, expression) static_cast<type>(expression)
141
+ #define SDL_const_cast(type, expression) const_cast<type>(expression)
142
+ #else
143
+ #define SDL_reinterpret_cast(type, expression) ((type)(expression))
144
+ #define SDL_static_cast(type, expression) ((type)(expression))
145
+ #define SDL_const_cast(type, expression) ((type)(expression))
146
+ #endif
147
+ /* @} *//* Cast operators */
148
+
149
+ /* Define a four character code as a Uint32 */
150
+ #define SDL_FOURCC(A, B, C, D) \
151
+ ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
152
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
153
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
154
+ (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))
155
+
156
+ /**
157
+ * \name Basic data types
158
+ */
159
+ /* @{ */
160
+
161
+ #ifdef __CC_ARM
162
+ /* ARM's compiler throws warnings if we use an enum: like "SDL_bool x = a < b;" */
163
+ #define SDL_FALSE 0
164
+ #define SDL_TRUE 1
165
+ typedef int SDL_bool;
166
+ #else
167
+ typedef enum
168
+ {
169
+ SDL_FALSE = 0,
170
+ SDL_TRUE = 1
171
+ } SDL_bool;
172
+ #endif
173
+
174
+ /**
175
+ * \brief A signed 8-bit integer type.
176
+ */
177
+ #define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */
178
+ #define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */
179
+ typedef int8_t Sint8;
180
+ /**
181
+ * \brief An unsigned 8-bit integer type.
182
+ */
183
+ #define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */
184
+ #define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */
185
+ typedef uint8_t Uint8;
186
+ /**
187
+ * \brief A signed 16-bit integer type.
188
+ */
189
+ #define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */
190
+ #define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */
191
+ typedef int16_t Sint16;
192
+ /**
193
+ * \brief An unsigned 16-bit integer type.
194
+ */
195
+ #define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */
196
+ #define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */
197
+ typedef uint16_t Uint16;
198
+ /**
199
+ * \brief A signed 32-bit integer type.
200
+ */
201
+ #define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */
202
+ #define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */
203
+ typedef int32_t Sint32;
204
+ /**
205
+ * \brief An unsigned 32-bit integer type.
206
+ */
207
+ #define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */
208
+ #define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */
209
+ typedef uint32_t Uint32;
210
+
211
+ /**
212
+ * \brief A signed 64-bit integer type.
213
+ */
214
+ #define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */
215
+ #define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */
216
+ typedef int64_t Sint64;
217
+ /**
218
+ * \brief An unsigned 64-bit integer type.
219
+ */
220
+ #define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */
221
+ #define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */
222
+ typedef uint64_t Uint64;
223
+
224
+ /* @} *//* Basic data types */
225
+
226
+ /* Make sure we have macros for printing 64 bit values.
227
+ * <stdint.h> should define these but this is not true all platforms.
228
+ * (for example win32) */
229
+ #ifndef SDL_PRIs64
230
+ #ifdef PRIs64
231
+ #define SDL_PRIs64 PRIs64
232
+ #elif defined(__WIN32__)
233
+ #define SDL_PRIs64 "I64d"
234
+ #elif defined(__LINUX__) && defined(__LP64__)
235
+ #define SDL_PRIs64 "ld"
236
+ #else
237
+ #define SDL_PRIs64 "lld"
238
+ #endif
239
+ #endif
240
+ #ifndef SDL_PRIu64
241
+ #ifdef PRIu64
242
+ #define SDL_PRIu64 PRIu64
243
+ #elif defined(__WIN32__)
244
+ #define SDL_PRIu64 "I64u"
245
+ #elif defined(__LINUX__) && defined(__LP64__)
246
+ #define SDL_PRIu64 "lu"
247
+ #else
248
+ #define SDL_PRIu64 "llu"
249
+ #endif
250
+ #endif
251
+ #ifndef SDL_PRIx64
252
+ #ifdef PRIx64
253
+ #define SDL_PRIx64 PRIx64
254
+ #elif defined(__WIN32__)
255
+ #define SDL_PRIx64 "I64x"
256
+ #elif defined(__LINUX__) && defined(__LP64__)
257
+ #define SDL_PRIx64 "lx"
258
+ #else
259
+ #define SDL_PRIx64 "llx"
260
+ #endif
261
+ #endif
262
+ #ifndef SDL_PRIX64
263
+ #ifdef PRIX64
264
+ #define SDL_PRIX64 PRIX64
265
+ #elif defined(__WIN32__)
266
+ #define SDL_PRIX64 "I64X"
267
+ #elif defined(__LINUX__) && defined(__LP64__)
268
+ #define SDL_PRIX64 "lX"
269
+ #else
270
+ #define SDL_PRIX64 "llX"
271
+ #endif
272
+ #endif
273
+
274
+ /* Annotations to help code analysis tools */
275
+ #ifdef SDL_DISABLE_ANALYZE_MACROS
276
+ #define SDL_IN_BYTECAP(x)
277
+ #define SDL_INOUT_Z_CAP(x)
278
+ #define SDL_OUT_Z_CAP(x)
279
+ #define SDL_OUT_CAP(x)
280
+ #define SDL_OUT_BYTECAP(x)
281
+ #define SDL_OUT_Z_BYTECAP(x)
282
+ #define SDL_PRINTF_FORMAT_STRING
283
+ #define SDL_SCANF_FORMAT_STRING
284
+ #define SDL_PRINTF_VARARG_FUNC( fmtargnumber )
285
+ #define SDL_SCANF_VARARG_FUNC( fmtargnumber )
286
+ #else
287
+ #if defined(_MSC_VER) && (_MSC_VER >= 1600) /* VS 2010 and above */
288
+ #include <sal.h>
289
+
290
+ #define SDL_IN_BYTECAP(x) _In_bytecount_(x)
291
+ #define SDL_INOUT_Z_CAP(x) _Inout_z_cap_(x)
292
+ #define SDL_OUT_Z_CAP(x) _Out_z_cap_(x)
293
+ #define SDL_OUT_CAP(x) _Out_cap_(x)
294
+ #define SDL_OUT_BYTECAP(x) _Out_bytecap_(x)
295
+ #define SDL_OUT_Z_BYTECAP(x) _Out_z_bytecap_(x)
296
+
297
+ #define SDL_PRINTF_FORMAT_STRING _Printf_format_string_
298
+ #define SDL_SCANF_FORMAT_STRING _Scanf_format_string_impl_
299
+ #else
300
+ #define SDL_IN_BYTECAP(x)
301
+ #define SDL_INOUT_Z_CAP(x)
302
+ #define SDL_OUT_Z_CAP(x)
303
+ #define SDL_OUT_CAP(x)
304
+ #define SDL_OUT_BYTECAP(x)
305
+ #define SDL_OUT_Z_BYTECAP(x)
306
+ #define SDL_PRINTF_FORMAT_STRING
307
+ #define SDL_SCANF_FORMAT_STRING
308
+ #endif
309
+ #if defined(__GNUC__)
310
+ #define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 )))
311
+ #define SDL_SCANF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __scanf__, fmtargnumber, fmtargnumber+1 )))
312
+ #else
313
+ #define SDL_PRINTF_VARARG_FUNC( fmtargnumber )
314
+ #define SDL_SCANF_VARARG_FUNC( fmtargnumber )
315
+ #endif
316
+ #endif /* SDL_DISABLE_ANALYZE_MACROS */
317
+
318
+ #define SDL_COMPILE_TIME_ASSERT(name, x) \
319
+ typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1]
320
+ /** \cond */
321
+ #ifndef DOXYGEN_SHOULD_IGNORE_THIS
322
+ SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
323
+ SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
324
+ SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
325
+ SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
326
+ SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
327
+ SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
328
+ SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
329
+ SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
330
+ #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
331
+ /** \endcond */
332
+
333
+ /* Check to make sure enums are the size of ints, for structure packing.
334
+ For both Watcom C/C++ and Borland C/C++ the compiler option that makes
335
+ enums having the size of an int must be enabled.
336
+ This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11).
337
+ */
338
+
339
+ /** \cond */
340
+ #ifndef DOXYGEN_SHOULD_IGNORE_THIS
341
+ #if !defined(__ANDROID__)
342
+ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
343
+ typedef enum
344
+ {
345
+ DUMMY_ENUM_VALUE
346
+ } SDL_DUMMY_ENUM;
347
+
348
+ SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
349
+ #endif
350
+ #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
351
+ /** \endcond */
352
+
353
+ #include "begin_code.h"
354
+ /* Set up for C function definitions, even when using C++ */
355
+ #ifdef __cplusplus
356
+ extern "C" {
357
+ #endif
358
+
359
+ #ifdef HAVE_ALLOCA
360
+ #define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))
361
+ #define SDL_stack_free(data)
362
+ #else
363
+ #define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count))
364
+ #define SDL_stack_free(data) SDL_free(data)
365
+ #endif
366
+
367
+ extern DECLSPEC void *SDLCALL SDL_malloc(size_t size);
368
+ extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size);
369
+ extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size);
370
+ extern DECLSPEC void SDLCALL SDL_free(void *mem);
371
+
372
+ typedef void *(SDLCALL *SDL_malloc_func)(size_t size);
373
+ typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size);
374
+ typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size);
375
+ typedef void (SDLCALL *SDL_free_func)(void *mem);
376
+
377
+ /**
378
+ * \brief Get the current set of SDL memory functions
379
+ */
380
+ extern DECLSPEC void SDLCALL SDL_GetMemoryFunctions(SDL_malloc_func *malloc_func,
381
+ SDL_calloc_func *calloc_func,
382
+ SDL_realloc_func *realloc_func,
383
+ SDL_free_func *free_func);
384
+
385
+ /**
386
+ * \brief Replace SDL's memory allocation functions with a custom set
387
+ *
388
+ * \note If you are replacing SDL's memory functions, you should call
389
+ * SDL_GetNumAllocations() and be very careful if it returns non-zero.
390
+ * That means that your free function will be called with memory
391
+ * allocated by the previous memory allocation functions.
392
+ */
393
+ extern DECLSPEC int SDLCALL SDL_SetMemoryFunctions(SDL_malloc_func malloc_func,
394
+ SDL_calloc_func calloc_func,
395
+ SDL_realloc_func realloc_func,
396
+ SDL_free_func free_func);
397
+
398
+ /**
399
+ * \brief Get the number of outstanding (unfreed) allocations
400
+ */
401
+ extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void);
402
+
403
+ extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
404
+ extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
405
+
406
+ extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
407
+
408
+ extern DECLSPEC int SDLCALL SDL_abs(int x);
409
+
410
+ /* !!! FIXME: these have side effects. You probably shouldn't use them. */
411
+ /* !!! FIXME: Maybe we do forceinline functions of SDL_mini, SDL_minf, etc? */
412
+ #define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
413
+ #define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
414
+
415
+ extern DECLSPEC int SDLCALL SDL_isdigit(int x);
416
+ extern DECLSPEC int SDLCALL SDL_isspace(int x);
417
+ extern DECLSPEC int SDLCALL SDL_isupper(int x);
418
+ extern DECLSPEC int SDLCALL SDL_islower(int x);
419
+ extern DECLSPEC int SDLCALL SDL_toupper(int x);
420
+ extern DECLSPEC int SDLCALL SDL_tolower(int x);
421
+
422
+ extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len);
423
+
424
+ extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len);
425
+
426
+ #define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
427
+ #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
428
+ #define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x)))
429
+
430
+ /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
431
+ SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
432
+ {
433
+ #ifdef __APPLE__
434
+ memset_pattern4(dst, &val, dwords * 4);
435
+ #elif defined(__GNUC__) && defined(i386)
436
+ int u0, u1, u2;
437
+ __asm__ __volatile__ (
438
+ "cld \n\t"
439
+ "rep ; stosl \n\t"
440
+ : "=&D" (u0), "=&a" (u1), "=&c" (u2)
441
+ : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords))
442
+ : "memory"
443
+ );
444
+ #else
445
+ size_t _n = (dwords + 3) / 4;
446
+ Uint32 *_p = SDL_static_cast(Uint32 *, dst);
447
+ Uint32 _val = (val);
448
+ if (dwords == 0)
449
+ return;
450
+ switch (dwords % 4)
451
+ {
452
+ case 0: do { *_p++ = _val; /* fallthrough */
453
+ case 3: *_p++ = _val; /* fallthrough */
454
+ case 2: *_p++ = _val; /* fallthrough */
455
+ case 1: *_p++ = _val; /* fallthrough */
456
+ } while ( --_n );
457
+ }
458
+ #endif
459
+ }
460
+
461
+ extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len);
462
+
463
+ extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len);
464
+ extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
465
+
466
+ extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
467
+ extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
468
+ extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
469
+ extern DECLSPEC wchar_t *SDLCALL SDL_wcsdup(const wchar_t *wstr);
470
+ extern DECLSPEC wchar_t *SDLCALL SDL_wcsstr(const wchar_t *haystack, const wchar_t *needle);
471
+
472
+ extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2);
473
+ extern DECLSPEC int SDLCALL SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen);
474
+ extern DECLSPEC int SDLCALL SDL_wcscasecmp(const wchar_t *str1, const wchar_t *str2);
475
+ extern DECLSPEC int SDLCALL SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t len);
476
+
477
+ extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str);
478
+ extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen);
479
+ extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes);
480
+ extern DECLSPEC size_t SDLCALL SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen);
481
+ extern DECLSPEC char *SDLCALL SDL_strdup(const char *str);
482
+ extern DECLSPEC char *SDLCALL SDL_strrev(char *str);
483
+ extern DECLSPEC char *SDLCALL SDL_strupr(char *str);
484
+ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str);
485
+ extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
486
+ extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
487
+ extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
488
+ extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr);
489
+ extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str);
490
+
491
+ extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix);
492
+ extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix);
493
+ extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix);
494
+ extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix);
495
+ extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix);
496
+ extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix);
497
+
498
+ extern DECLSPEC int SDLCALL SDL_atoi(const char *str);
499
+ extern DECLSPEC double SDLCALL SDL_atof(const char *str);
500
+ extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base);
501
+ extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base);
502
+ extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base);
503
+ extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base);
504
+ extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp);
505
+
506
+ extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
507
+ extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
508
+ extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
509
+ extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len);
510
+
511
+ extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, ...) SDL_SCANF_VARARG_FUNC(2);
512
+ extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap);
513
+ extern DECLSPEC int SDLCALL SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) SDL_PRINTF_VARARG_FUNC(3);
514
+ extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap);
515
+
516
+ #ifndef HAVE_M_PI
517
+ #ifndef M_PI
518
+ #define M_PI 3.14159265358979323846264338327950288 /**< pi */
519
+ #endif
520
+ #endif
521
+
522
+ extern DECLSPEC double SDLCALL SDL_acos(double x);
523
+ extern DECLSPEC float SDLCALL SDL_acosf(float x);
524
+ extern DECLSPEC double SDLCALL SDL_asin(double x);
525
+ extern DECLSPEC float SDLCALL SDL_asinf(float x);
526
+ extern DECLSPEC double SDLCALL SDL_atan(double x);
527
+ extern DECLSPEC float SDLCALL SDL_atanf(float x);
528
+ extern DECLSPEC double SDLCALL SDL_atan2(double x, double y);
529
+ extern DECLSPEC float SDLCALL SDL_atan2f(float x, float y);
530
+ extern DECLSPEC double SDLCALL SDL_ceil(double x);
531
+ extern DECLSPEC float SDLCALL SDL_ceilf(float x);
532
+ extern DECLSPEC double SDLCALL SDL_copysign(double x, double y);
533
+ extern DECLSPEC float SDLCALL SDL_copysignf(float x, float y);
534
+ extern DECLSPEC double SDLCALL SDL_cos(double x);
535
+ extern DECLSPEC float SDLCALL SDL_cosf(float x);
536
+ extern DECLSPEC double SDLCALL SDL_exp(double x);
537
+ extern DECLSPEC float SDLCALL SDL_expf(float x);
538
+ extern DECLSPEC double SDLCALL SDL_fabs(double x);
539
+ extern DECLSPEC float SDLCALL SDL_fabsf(float x);
540
+ extern DECLSPEC double SDLCALL SDL_floor(double x);
541
+ extern DECLSPEC float SDLCALL SDL_floorf(float x);
542
+ extern DECLSPEC double SDLCALL SDL_trunc(double x);
543
+ extern DECLSPEC float SDLCALL SDL_truncf(float x);
544
+ extern DECLSPEC double SDLCALL SDL_fmod(double x, double y);
545
+ extern DECLSPEC float SDLCALL SDL_fmodf(float x, float y);
546
+ extern DECLSPEC double SDLCALL SDL_log(double x);
547
+ extern DECLSPEC float SDLCALL SDL_logf(float x);
548
+ extern DECLSPEC double SDLCALL SDL_log10(double x);
549
+ extern DECLSPEC float SDLCALL SDL_log10f(float x);
550
+ extern DECLSPEC double SDLCALL SDL_pow(double x, double y);
551
+ extern DECLSPEC float SDLCALL SDL_powf(float x, float y);
552
+ extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n);
553
+ extern DECLSPEC float SDLCALL SDL_scalbnf(float x, int n);
554
+ extern DECLSPEC double SDLCALL SDL_sin(double x);
555
+ extern DECLSPEC float SDLCALL SDL_sinf(float x);
556
+ extern DECLSPEC double SDLCALL SDL_sqrt(double x);
557
+ extern DECLSPEC float SDLCALL SDL_sqrtf(float x);
558
+ extern DECLSPEC double SDLCALL SDL_tan(double x);
559
+ extern DECLSPEC float SDLCALL SDL_tanf(float x);
560
+
561
+ /* The SDL implementation of iconv() returns these error codes */
562
+ #define SDL_ICONV_ERROR (size_t)-1
563
+ #define SDL_ICONV_E2BIG (size_t)-2
564
+ #define SDL_ICONV_EILSEQ (size_t)-3
565
+ #define SDL_ICONV_EINVAL (size_t)-4
566
+
567
+ /* SDL_iconv_* are now always real symbols/types, not macros or inlined. */
568
+ typedef struct _SDL_iconv_t *SDL_iconv_t;
569
+ extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode,
570
+ const char *fromcode);
571
+ extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
572
+ extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf,
573
+ size_t * inbytesleft, char **outbuf,
574
+ size_t * outbytesleft);
575
+ /**
576
+ * This function converts a string between encodings in one pass, returning a
577
+ * string that must be freed with SDL_free() or NULL on error.
578
+ */
579
+ extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
580
+ const char *fromcode,
581
+ const char *inbuf,
582
+ size_t inbytesleft);
583
+ #define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1)
584
+ #define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
585
+ #define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
586
+
587
+ /* force builds using Clang's static analysis tools to use literal C runtime
588
+ here, since there are possibly tests that are ineffective otherwise. */
589
+ #if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS)
590
+
591
+ /* The analyzer knows about strlcpy even when the system doesn't provide it */
592
+ #ifndef HAVE_STRLCPY
593
+ size_t strlcpy(char* dst, const char* src, size_t size);
594
+ #endif
595
+
596
+ /* The analyzer knows about strlcat even when the system doesn't provide it */
597
+ #ifndef HAVE_STRLCAT
598
+ size_t strlcat(char* dst, const char* src, size_t size);
599
+ #endif
600
+
601
+ #define SDL_malloc malloc
602
+ #define SDL_calloc calloc
603
+ #define SDL_realloc realloc
604
+ #define SDL_free free
605
+ #define SDL_memset memset
606
+ #define SDL_memcpy memcpy
607
+ #define SDL_memmove memmove
608
+ #define SDL_memcmp memcmp
609
+ #define SDL_strlcpy strlcpy
610
+ #define SDL_strlcat strlcat
611
+ #define SDL_strlen strlen
612
+ #define SDL_wcslen wcslen
613
+ #define SDL_wcslcpy wcslcpy
614
+ #define SDL_wcslcat wcslcat
615
+ #define SDL_strdup strdup
616
+ #define SDL_wcsdup wcsdup
617
+ #define SDL_strchr strchr
618
+ #define SDL_strrchr strrchr
619
+ #define SDL_strstr strstr
620
+ #define SDL_wcsstr wcsstr
621
+ #define SDL_strtokr strtok_r
622
+ #define SDL_strcmp strcmp
623
+ #define SDL_wcscmp wcscmp
624
+ #define SDL_strncmp strncmp
625
+ #define SDL_wcsncmp wcsncmp
626
+ #define SDL_strcasecmp strcasecmp
627
+ #define SDL_strncasecmp strncasecmp
628
+ #define SDL_sscanf sscanf
629
+ #define SDL_vsscanf vsscanf
630
+ #define SDL_snprintf snprintf
631
+ #define SDL_vsnprintf vsnprintf
632
+ #endif
633
+
634
+ SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_BYTECAP(dwords*4) const void *src, size_t dwords)
635
+ {
636
+ return SDL_memcpy(dst, src, dwords * 4);
637
+ }
638
+
639
+ /* Ends C function definitions when using C++ */
640
+ #ifdef __cplusplus
641
+ }
642
+ #endif
643
+ #include "close_code.h"
644
+
645
+ #endif /* SDL_stdinc_h_ */
646
+
647
+ /* vi: set ts=4 sw=4 expandtab: */