gosu 0.15.2 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/dependencies/SDL/include/SDL.h +138 -0
  3. data/dependencies/SDL/include/SDL_assert.h +293 -0
  4. data/dependencies/SDL/include/SDL_atomic.h +295 -0
  5. data/dependencies/SDL/include/SDL_audio.h +859 -0
  6. data/dependencies/SDL/include/SDL_bits.h +121 -0
  7. data/dependencies/SDL/include/SDL_blendmode.h +123 -0
  8. data/dependencies/SDL/include/SDL_clipboard.h +71 -0
  9. data/dependencies/SDL/include/SDL_config.h +55 -0
  10. data/dependencies/SDL/include/SDL_config_android.h +182 -0
  11. data/dependencies/SDL/include/SDL_config_iphoneos.h +207 -0
  12. data/dependencies/SDL/include/SDL_config_macosx.h +266 -0
  13. data/dependencies/SDL/include/SDL_config_minimal.h +85 -0
  14. data/dependencies/SDL/include/SDL_config_os2.h +188 -0
  15. data/dependencies/SDL/include/SDL_config_pandora.h +135 -0
  16. data/dependencies/SDL/include/SDL_config_psp.h +165 -0
  17. data/dependencies/SDL/include/SDL_config_windows.h +288 -0
  18. data/dependencies/SDL/include/SDL_config_winrt.h +243 -0
  19. data/dependencies/SDL/include/SDL_config_wiz.h +149 -0
  20. data/dependencies/SDL/include/SDL_copying.h +20 -0
  21. data/dependencies/SDL/include/SDL_cpuinfo.h +299 -0
  22. data/dependencies/SDL/include/SDL_egl.h +1676 -0
  23. data/dependencies/SDL/include/SDL_endian.h +263 -0
  24. data/dependencies/SDL/include/SDL_error.h +112 -0
  25. data/dependencies/SDL/include/SDL_events.h +827 -0
  26. data/dependencies/SDL/include/SDL_filesystem.h +136 -0
  27. data/dependencies/SDL/include/SDL_gamecontroller.h +541 -0
  28. data/dependencies/SDL/include/SDL_gesture.h +87 -0
  29. data/dependencies/SDL/include/SDL_haptic.h +1247 -0
  30. data/dependencies/SDL/include/SDL_hints.h +1578 -0
  31. data/dependencies/SDL/include/SDL_joystick.h +499 -0
  32. data/dependencies/SDL/include/SDL_keyboard.h +217 -0
  33. data/dependencies/SDL/include/SDL_keycode.h +351 -0
  34. data/dependencies/SDL/include/SDL_loadso.h +81 -0
  35. data/dependencies/SDL/include/SDL_locale.h +101 -0
  36. data/dependencies/SDL/include/SDL_log.h +211 -0
  37. data/dependencies/SDL/include/SDL_main.h +180 -0
  38. data/dependencies/SDL/include/SDL_messagebox.h +146 -0
  39. data/dependencies/SDL/include/SDL_metal.h +117 -0
  40. data/dependencies/SDL/include/SDL_misc.h +75 -0
  41. data/dependencies/SDL/include/SDL_mouse.h +302 -0
  42. data/dependencies/SDL/include/SDL_mutex.h +251 -0
  43. data/dependencies/SDL/include/SDL_name.h +33 -0
  44. data/dependencies/SDL/include/SDL_opengl.h +2183 -0
  45. data/dependencies/SDL/include/SDL_opengl_glext.h +11180 -0
  46. data/dependencies/SDL/include/SDL_opengles.h +39 -0
  47. data/dependencies/SDL/include/SDL_opengles2.h +52 -0
  48. data/dependencies/SDL/include/SDL_opengles2_gl2.h +621 -0
  49. data/dependencies/SDL/include/SDL_opengles2_gl2ext.h +2050 -0
  50. data/dependencies/SDL/include/SDL_opengles2_gl2platform.h +30 -0
  51. data/dependencies/SDL/include/SDL_opengles2_khrplatform.h +282 -0
  52. data/dependencies/SDL/include/SDL_pixels.h +479 -0
  53. data/dependencies/SDL/include/SDL_platform.h +198 -0
  54. data/dependencies/SDL/include/SDL_power.h +75 -0
  55. data/dependencies/SDL/include/SDL_quit.h +58 -0
  56. data/dependencies/SDL/include/SDL_rect.h +174 -0
  57. data/dependencies/SDL/include/SDL_render.h +1158 -0
  58. data/dependencies/SDL/include/SDL_revision.h +2 -0
  59. data/dependencies/SDL/include/SDL_rwops.h +283 -0
  60. data/dependencies/SDL/include/SDL_scancode.h +413 -0
  61. data/dependencies/SDL/include/SDL_sensor.h +267 -0
  62. data/dependencies/SDL/include/SDL_shape.h +144 -0
  63. data/dependencies/SDL/include/SDL_stdinc.h +647 -0
  64. data/dependencies/SDL/include/SDL_surface.h +563 -0
  65. data/dependencies/SDL/include/SDL_system.h +325 -0
  66. data/dependencies/SDL/include/SDL_syswm.h +354 -0
  67. data/dependencies/SDL/include/SDL_test.h +69 -0
  68. data/dependencies/SDL/include/SDL_test_assert.h +105 -0
  69. data/dependencies/SDL/include/SDL_test_common.h +218 -0
  70. data/dependencies/SDL/include/SDL_test_compare.h +69 -0
  71. data/dependencies/SDL/include/SDL_test_crc32.h +124 -0
  72. data/dependencies/SDL/include/SDL_test_font.h +81 -0
  73. data/dependencies/SDL/include/SDL_test_fuzzer.h +384 -0
  74. data/dependencies/SDL/include/SDL_test_harness.h +134 -0
  75. data/dependencies/SDL/include/SDL_test_images.h +78 -0
  76. data/dependencies/SDL/include/SDL_test_log.h +67 -0
  77. data/dependencies/SDL/include/SDL_test_md5.h +129 -0
  78. data/dependencies/SDL/include/SDL_test_memory.h +63 -0
  79. data/dependencies/SDL/include/SDL_test_random.h +115 -0
  80. data/dependencies/SDL/include/SDL_thread.h +366 -0
  81. data/dependencies/SDL/include/SDL_timer.h +115 -0
  82. data/dependencies/SDL/include/SDL_touch.h +102 -0
  83. data/dependencies/SDL/include/SDL_types.h +29 -0
  84. data/dependencies/SDL/include/SDL_version.h +162 -0
  85. data/dependencies/SDL/include/SDL_video.h +1282 -0
  86. data/dependencies/SDL/include/SDL_vulkan.h +276 -0
  87. data/dependencies/SDL/include/begin_code.h +166 -0
  88. data/dependencies/SDL/include/close_code.h +40 -0
  89. data/dependencies/SDL/lib/x64/libSDL2.dll.a +0 -0
  90. data/dependencies/SDL/lib/x86/libSDL2.dll.a +0 -0
  91. data/dependencies/SDL_sound/SDL_sound.c +795 -0
  92. data/dependencies/SDL_sound/SDL_sound.h +725 -0
  93. data/dependencies/SDL_sound/SDL_sound_aiff.c +537 -0
  94. data/dependencies/SDL_sound/SDL_sound_au.c +352 -0
  95. data/dependencies/SDL_sound/SDL_sound_coreaudio.c +747 -0
  96. data/dependencies/SDL_sound/SDL_sound_flac.c +182 -0
  97. data/dependencies/SDL_sound/SDL_sound_internal.h +304 -0
  98. data/dependencies/SDL_sound/SDL_sound_modplug.c +228 -0
  99. data/dependencies/SDL_sound/SDL_sound_mp3.c +184 -0
  100. data/dependencies/SDL_sound/SDL_sound_raw.c +164 -0
  101. data/dependencies/SDL_sound/SDL_sound_shn.c +1309 -0
  102. data/dependencies/SDL_sound/SDL_sound_voc.c +550 -0
  103. data/dependencies/SDL_sound/SDL_sound_vorbis.c +223 -0
  104. data/dependencies/SDL_sound/SDL_sound_wav.c +783 -0
  105. data/dependencies/SDL_sound/dr_flac.h +5906 -0
  106. data/dependencies/SDL_sound/dr_mp3.h +2832 -0
  107. data/dependencies/SDL_sound/libmodplug/fastmix.c +1748 -0
  108. data/dependencies/SDL_sound/libmodplug/libmodplug.h +1001 -0
  109. data/dependencies/SDL_sound/libmodplug/load_669.c +188 -0
  110. data/dependencies/SDL_sound/libmodplug/load_abc.c +4725 -0
  111. data/dependencies/SDL_sound/libmodplug/load_amf.c +403 -0
  112. data/dependencies/SDL_sound/libmodplug/load_ams.c +587 -0
  113. data/dependencies/SDL_sound/libmodplug/load_dbm.c +357 -0
  114. data/dependencies/SDL_sound/libmodplug/load_dmf.c +531 -0
  115. data/dependencies/SDL_sound/libmodplug/load_dsm.c +232 -0
  116. data/dependencies/SDL_sound/libmodplug/load_far.c +253 -0
  117. data/dependencies/SDL_sound/libmodplug/load_it.c +796 -0
  118. data/dependencies/SDL_sound/libmodplug/load_mdl.c +488 -0
  119. data/dependencies/SDL_sound/libmodplug/load_med.c +757 -0
  120. data/dependencies/SDL_sound/libmodplug/load_mid.c +1405 -0
  121. data/dependencies/SDL_sound/libmodplug/load_mod.c +269 -0
  122. data/dependencies/SDL_sound/libmodplug/load_mt2.c +546 -0
  123. data/dependencies/SDL_sound/libmodplug/load_mtm.c +142 -0
  124. data/dependencies/SDL_sound/libmodplug/load_okt.c +192 -0
  125. data/dependencies/SDL_sound/libmodplug/load_pat.c +1143 -0
  126. data/dependencies/SDL_sound/libmodplug/load_pat.h +25 -0
  127. data/dependencies/SDL_sound/libmodplug/load_psm.c +350 -0
  128. data/dependencies/SDL_sound/libmodplug/load_ptm.c +204 -0
  129. data/dependencies/SDL_sound/libmodplug/load_s3m.c +325 -0
  130. data/dependencies/SDL_sound/libmodplug/load_stm.c +180 -0
  131. data/dependencies/SDL_sound/libmodplug/load_ult.c +206 -0
  132. data/dependencies/SDL_sound/libmodplug/load_umx.c +51 -0
  133. data/dependencies/SDL_sound/libmodplug/load_xm.c +554 -0
  134. data/dependencies/SDL_sound/libmodplug/mmcmp.c +382 -0
  135. data/dependencies/SDL_sound/libmodplug/modplug.c +170 -0
  136. data/dependencies/SDL_sound/libmodplug/modplug.h +90 -0
  137. data/dependencies/SDL_sound/libmodplug/snd_dsp.c +301 -0
  138. data/dependencies/SDL_sound/libmodplug/snd_flt.c +63 -0
  139. data/dependencies/SDL_sound/libmodplug/snd_fx.c +2350 -0
  140. data/dependencies/SDL_sound/libmodplug/sndfile.c +1169 -0
  141. data/dependencies/SDL_sound/libmodplug/sndmix.c +1034 -0
  142. data/dependencies/SDL_sound/libmodplug/tables.h +371 -0
  143. data/{src/stb_vorbis.c → dependencies/SDL_sound/stb_vorbis.h} +143 -78
  144. data/dependencies/al_soft/AL/al.h +655 -0
  145. data/dependencies/al_soft/AL/alc.h +270 -0
  146. data/dependencies/al_soft/AL/alext.h +585 -0
  147. data/dependencies/al_soft/AL/efx-creative.h +3 -0
  148. data/dependencies/al_soft/AL/efx-presets.h +402 -0
  149. data/dependencies/al_soft/AL/efx.h +762 -0
  150. data/dependencies/al_soft/x64/libOpenAL32.dll.a +0 -0
  151. data/dependencies/al_soft/x86/libOpenAL32.dll.a +0 -0
  152. data/{src → dependencies/stb}/stb_image.h +330 -127
  153. data/{src → dependencies/stb}/stb_image_write.h +156 -85
  154. data/{src → dependencies/stb}/stb_truetype.h +192 -69
  155. data/{src → dependencies/utf8proc}/utf8proc.c +0 -0
  156. data/{src → dependencies/utf8proc}/utf8proc.h +0 -0
  157. data/{src → dependencies/utf8proc}/utf8proc_data.h +0 -0
  158. data/ext/gosu/extconf.rb +56 -22
  159. data/{Gosu → include/Gosu}/Audio.hpp +6 -8
  160. data/{Gosu → include/Gosu}/AutoLink.hpp +0 -0
  161. data/include/Gosu/Bitmap.hpp +100 -0
  162. data/{Gosu → include/Gosu}/Buttons.hpp +94 -35
  163. data/{Gosu → include/Gosu}/Channel.h +0 -0
  164. data/{Gosu → include/Gosu}/Color.h +0 -0
  165. data/{Gosu → include/Gosu}/Color.hpp +0 -0
  166. data/{Gosu → include/Gosu}/Directories.hpp +0 -0
  167. data/{Gosu → include/Gosu}/Font.h +0 -0
  168. data/{Gosu → include/Gosu}/Font.hpp +0 -0
  169. data/{Gosu → include/Gosu}/Fwd.hpp +0 -0
  170. data/{Gosu → include/Gosu}/Gosu.h +3 -0
  171. data/{Gosu → include/Gosu}/Gosu.hpp +0 -0
  172. data/{Gosu → include/Gosu}/Graphics.hpp +0 -0
  173. data/{Gosu → include/Gosu}/GraphicsBase.hpp +0 -0
  174. data/{Gosu → include/Gosu}/IO.hpp +0 -0
  175. data/{Gosu → include/Gosu}/Image.h +0 -0
  176. data/{Gosu → include/Gosu}/Image.hpp +7 -6
  177. data/{Gosu → include/Gosu}/ImageData.hpp +0 -0
  178. data/{Gosu → include/Gosu}/Input.hpp +30 -15
  179. data/{Gosu → include/Gosu}/Inspection.hpp +0 -0
  180. data/{Gosu → include/Gosu}/Math.hpp +0 -0
  181. data/{Gosu → include/Gosu}/Platform.hpp +0 -0
  182. data/{Gosu → include/Gosu}/Sample.h +0 -0
  183. data/{Gosu → include/Gosu}/Song.h +0 -0
  184. data/{Gosu → include/Gosu}/Text.hpp +0 -0
  185. data/{Gosu → include/Gosu}/TextInput.h +0 -0
  186. data/{Gosu → include/Gosu}/TextInput.hpp +0 -0
  187. data/{Gosu → include/Gosu}/Timing.hpp +0 -0
  188. data/{Gosu → include/Gosu}/Utility.hpp +1 -1
  189. data/{Gosu → include/Gosu}/Version.hpp +0 -0
  190. data/{Gosu → include/Gosu}/Window.h +2 -0
  191. data/{Gosu → include/Gosu}/Window.hpp +21 -13
  192. data/lib/OpenAL32.dll +0 -0
  193. data/lib/SDL2.dll +0 -0
  194. data/lib/gosu.rb +0 -3
  195. data/lib/gosu/patches.rb +0 -9
  196. data/lib/gosu/swig_patches.rb +3 -2
  197. data/lib/libmpg123.dll +0 -0
  198. data/lib/libsndfile.dll +0 -0
  199. data/lib64/OpenAL32.dll +0 -0
  200. data/lib64/SDL2.dll +0 -0
  201. data/lib64/libmpg123.dll +0 -0
  202. data/lib64/libsndfile.dll +0 -0
  203. data/rdoc/gosu.rb +95 -20
  204. data/src/Audio.cpp +50 -224
  205. data/src/AudioFile.hpp +17 -37
  206. data/src/AudioFileAudioToolbox.cpp +237 -0
  207. data/src/AudioFileSDLSound.cpp +147 -0
  208. data/src/AudioImpl.cpp +3 -12
  209. data/src/AudioImpl.hpp +3 -1
  210. data/src/Bitmap.cpp +85 -83
  211. data/src/BitmapIO.cpp +52 -58
  212. data/src/Constants.cpp +80 -33
  213. data/src/Font.cpp +3 -1
  214. data/src/GosuWrapper.cpp +19 -0
  215. data/src/Graphics.cpp +7 -4
  216. data/src/Image.cpp +13 -16
  217. data/src/Input.cpp +408 -159
  218. data/src/LargeImageData.cpp +1 -1
  219. data/src/MarkupParser.cpp +2 -1
  220. data/src/RubyGosu.cxx +349 -83
  221. data/src/RubyGosu.h +4 -2
  222. data/src/TexChunk.cpp +1 -1
  223. data/src/TextBuilder.cpp +3 -1
  224. data/src/Texture.cpp +1 -1
  225. data/src/TrueTypeFont.cpp +1 -1
  226. data/src/Utility.cpp +11 -7
  227. data/src/Window.cpp +30 -39
  228. data/src/WindowWrapper.cpp +28 -0
  229. metadata +207 -52
  230. data/Gosu/Bitmap.hpp +0 -113
  231. data/src/AudioToolboxFile.hpp +0 -210
  232. data/src/OggFile.hpp +0 -92
  233. data/src/SndFile.hpp +0 -174
  234. data/src/WinMain.cpp +0 -64
@@ -0,0 +1,325 @@
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_system.h
24
+ *
25
+ * Include file for platform specific SDL API functions
26
+ */
27
+
28
+ #ifndef SDL_system_h_
29
+ #define SDL_system_h_
30
+
31
+ #include "SDL_stdinc.h"
32
+ #include "SDL_keyboard.h"
33
+ #include "SDL_render.h"
34
+ #include "SDL_video.h"
35
+
36
+ #include "begin_code.h"
37
+ /* Set up for C function definitions, even when using C++ */
38
+ #ifdef __cplusplus
39
+ extern "C" {
40
+ #endif
41
+
42
+
43
+ /* Platform specific functions for Windows */
44
+ #ifdef __WIN32__
45
+
46
+ /**
47
+ \brief Set a function that is called for every windows message, before TranslateMessage()
48
+ */
49
+ typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam);
50
+ extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata);
51
+
52
+ /**
53
+ \brief Returns the D3D9 adapter index that matches the specified display index.
54
+
55
+ This adapter index can be passed to IDirect3D9::CreateDevice and controls
56
+ on which monitor a full screen application will appear.
57
+ */
58
+ extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex );
59
+
60
+ typedef struct IDirect3DDevice9 IDirect3DDevice9;
61
+ /**
62
+ \brief Returns the D3D device associated with a renderer, or NULL if it's not a D3D renderer.
63
+
64
+ Once you are done using the device, you should release it to avoid a resource leak.
65
+ */
66
+ extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer);
67
+
68
+ /**
69
+ \brief Returns the DXGI Adapter and Output indices for the specified display index.
70
+
71
+ These can be passed to EnumAdapters and EnumOutputs respectively to get the objects
72
+ required to create a DX10 or DX11 device and swap chain.
73
+ */
74
+ extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex );
75
+
76
+ #endif /* __WIN32__ */
77
+
78
+
79
+ /* Platform specific functions for Linux */
80
+ #ifdef __LINUX__
81
+
82
+ /**
83
+ \brief Sets the UNIX nice value for a thread, using setpriority() if possible, and RealtimeKit if available.
84
+
85
+ \return 0 on success, or -1 on error.
86
+ */
87
+ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriority(Sint64 threadID, int priority);
88
+
89
+ #endif /* __LINUX__ */
90
+
91
+ /* Platform specific functions for iOS */
92
+ #ifdef __IPHONEOS__
93
+
94
+ #define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam)
95
+ extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
96
+
97
+ #define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
98
+ extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled);
99
+
100
+ #endif /* __IPHONEOS__ */
101
+
102
+
103
+ /* Platform specific functions for Android */
104
+ #ifdef __ANDROID__
105
+
106
+ /**
107
+ \brief Get the JNI environment for the current thread
108
+
109
+ This returns JNIEnv*, but the prototype is void* so we don't need jni.h
110
+ */
111
+ extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void);
112
+
113
+ /**
114
+ \brief Get the SDL Activity object for the application
115
+
116
+ This returns jobject, but the prototype is void* so we don't need jni.h
117
+ The jobject returned by SDL_AndroidGetActivity is a local reference.
118
+ It is the caller's responsibility to properly release it
119
+ (using env->Push/PopLocalFrame or manually with env->DeleteLocalRef)
120
+ */
121
+ extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void);
122
+
123
+ /**
124
+ \brief Return API level of the current device
125
+
126
+ API level 30: Android 11
127
+ API level 29: Android 10
128
+ API level 28: Android 9
129
+ API level 27: Android 8.1
130
+ API level 26: Android 8.0
131
+ API level 25: Android 7.1
132
+ API level 24: Android 7.0
133
+ API level 23: Android 6.0
134
+ API level 22: Android 5.1
135
+ API level 21: Android 5.0
136
+ API level 20: Android 4.4W
137
+ API level 19: Android 4.4
138
+ API level 18: Android 4.3
139
+ API level 17: Android 4.2
140
+ API level 16: Android 4.1
141
+ API level 15: Android 4.0.3
142
+ API level 14: Android 4.0
143
+ API level 13: Android 3.2
144
+ API level 12: Android 3.1
145
+ API level 11: Android 3.0
146
+ API level 10: Android 2.3.3
147
+ */
148
+ extern DECLSPEC int SDLCALL SDL_GetAndroidSDKVersion(void);
149
+
150
+ /**
151
+ \brief Return true if the application is running on Android TV
152
+ */
153
+ extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void);
154
+
155
+ /**
156
+ \brief Return true if the application is running on a Chromebook
157
+ */
158
+ extern DECLSPEC SDL_bool SDLCALL SDL_IsChromebook(void);
159
+
160
+ /**
161
+ \brief Return true is the application is running on a Samsung DeX docking station
162
+ */
163
+ extern DECLSPEC SDL_bool SDLCALL SDL_IsDeXMode(void);
164
+
165
+ /**
166
+ \brief Trigger the Android system back button behavior.
167
+ */
168
+ extern DECLSPEC void SDLCALL SDL_AndroidBackButton(void);
169
+
170
+ /**
171
+ See the official Android developer guide for more information:
172
+ http://developer.android.com/guide/topics/data/data-storage.html
173
+ */
174
+ #define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01
175
+ #define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02
176
+
177
+ /**
178
+ \brief Get the path used for internal storage for this application.
179
+
180
+ This path is unique to your application and cannot be written to
181
+ by other applications.
182
+ */
183
+ extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(void);
184
+
185
+ /**
186
+ \brief Get the current state of external storage, a bitmask of these values:
187
+ SDL_ANDROID_EXTERNAL_STORAGE_READ
188
+ SDL_ANDROID_EXTERNAL_STORAGE_WRITE
189
+
190
+ If external storage is currently unavailable, this will return 0.
191
+ */
192
+ extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void);
193
+
194
+ /**
195
+ \brief Get the path used for external storage for this application.
196
+
197
+ This path is unique to your application, but is public and can be
198
+ written to by other applications.
199
+ */
200
+ extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void);
201
+
202
+ /**
203
+ \brief Request permissions at runtime.
204
+
205
+ This blocks the calling thread until the permission is granted or
206
+ denied. Returns SDL_TRUE if the permission was granted.
207
+ */
208
+ extern DECLSPEC SDL_bool SDLCALL SDL_AndroidRequestPermission(const char *permission);
209
+
210
+ #endif /* __ANDROID__ */
211
+
212
+ /* Platform specific functions for WinRT */
213
+ #ifdef __WINRT__
214
+
215
+ /**
216
+ * \brief WinRT / Windows Phone path types
217
+ */
218
+ typedef enum
219
+ {
220
+ /** \brief The installed app's root directory.
221
+ Files here are likely to be read-only. */
222
+ SDL_WINRT_PATH_INSTALLED_LOCATION,
223
+
224
+ /** \brief The app's local data store. Files may be written here */
225
+ SDL_WINRT_PATH_LOCAL_FOLDER,
226
+
227
+ /** \brief The app's roaming data store. Unsupported on Windows Phone.
228
+ Files written here may be copied to other machines via a network
229
+ connection.
230
+ */
231
+ SDL_WINRT_PATH_ROAMING_FOLDER,
232
+
233
+ /** \brief The app's temporary data store. Unsupported on Windows Phone.
234
+ Files written here may be deleted at any time. */
235
+ SDL_WINRT_PATH_TEMP_FOLDER
236
+ } SDL_WinRT_Path;
237
+
238
+
239
+ /**
240
+ * \brief WinRT Device Family
241
+ */
242
+ typedef enum
243
+ {
244
+ /** \brief Unknown family */
245
+ SDL_WINRT_DEVICEFAMILY_UNKNOWN,
246
+
247
+ /** \brief Desktop family*/
248
+ SDL_WINRT_DEVICEFAMILY_DESKTOP,
249
+
250
+ /** \brief Mobile family (for example smartphone) */
251
+ SDL_WINRT_DEVICEFAMILY_MOBILE,
252
+
253
+ /** \brief XBox family */
254
+ SDL_WINRT_DEVICEFAMILY_XBOX,
255
+ } SDL_WinRT_DeviceFamily;
256
+
257
+
258
+ /**
259
+ * \brief Retrieves a WinRT defined path on the local file system
260
+ *
261
+ * \note Documentation on most app-specific path types on WinRT
262
+ * can be found on MSDN, at the URL:
263
+ * http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx
264
+ *
265
+ * \param pathType The type of path to retrieve.
266
+ * \return A UCS-2 string (16-bit, wide-char) containing the path, or NULL
267
+ * if the path is not available for any reason. Not all paths are
268
+ * available on all versions of Windows. This is especially true on
269
+ * Windows Phone. Check the documentation for the given
270
+ * SDL_WinRT_Path for more information on which path types are
271
+ * supported where.
272
+ */
273
+ extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType);
274
+
275
+ /**
276
+ * \brief Retrieves a WinRT defined path on the local file system
277
+ *
278
+ * \note Documentation on most app-specific path types on WinRT
279
+ * can be found on MSDN, at the URL:
280
+ * http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx
281
+ *
282
+ * \param pathType The type of path to retrieve.
283
+ * \return A UTF-8 string (8-bit, multi-byte) containing the path, or NULL
284
+ * if the path is not available for any reason. Not all paths are
285
+ * available on all versions of Windows. This is especially true on
286
+ * Windows Phone. Check the documentation for the given
287
+ * SDL_WinRT_Path for more information on which path types are
288
+ * supported where.
289
+ */
290
+ extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType);
291
+
292
+ /**
293
+ * \brief Detects the device family of WinRT plattform on runtime
294
+ *
295
+ * \return Device family
296
+ */
297
+ extern DECLSPEC SDL_WinRT_DeviceFamily SDLCALL SDL_WinRTGetDeviceFamily();
298
+
299
+ #endif /* __WINRT__ */
300
+
301
+ /**
302
+ \brief Return true if the current device is a tablet.
303
+ */
304
+ extern DECLSPEC SDL_bool SDLCALL SDL_IsTablet(void);
305
+
306
+ /* Functions used by iOS application delegates to notify SDL about state changes */
307
+ extern DECLSPEC void SDLCALL SDL_OnApplicationWillTerminate(void);
308
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidReceiveMemoryWarning(void);
309
+ extern DECLSPEC void SDLCALL SDL_OnApplicationWillResignActive(void);
310
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidEnterBackground(void);
311
+ extern DECLSPEC void SDLCALL SDL_OnApplicationWillEnterForeground(void);
312
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidBecomeActive(void);
313
+ #ifdef __IPHONEOS__
314
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void);
315
+ #endif
316
+
317
+ /* Ends C function definitions when using C++ */
318
+ #ifdef __cplusplus
319
+ }
320
+ #endif
321
+ #include "close_code.h"
322
+
323
+ #endif /* SDL_system_h_ */
324
+
325
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,354 @@
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_syswm.h
24
+ *
25
+ * Include file for SDL custom system window manager hooks.
26
+ */
27
+
28
+ #ifndef SDL_syswm_h_
29
+ #define SDL_syswm_h_
30
+
31
+ #include "SDL_stdinc.h"
32
+ #include "SDL_error.h"
33
+ #include "SDL_video.h"
34
+ #include "SDL_version.h"
35
+
36
+ /**
37
+ * \brief SDL_syswm.h
38
+ *
39
+ * Your application has access to a special type of event ::SDL_SYSWMEVENT,
40
+ * which contains window-manager specific information and arrives whenever
41
+ * an unhandled window event occurs. This event is ignored by default, but
42
+ * you can enable it with SDL_EventState().
43
+ */
44
+ struct SDL_SysWMinfo;
45
+
46
+ #if !defined(SDL_PROTOTYPES_ONLY)
47
+
48
+ #if defined(SDL_VIDEO_DRIVER_WINDOWS)
49
+ #ifndef WIN32_LEAN_AND_MEAN
50
+ #define WIN32_LEAN_AND_MEAN
51
+ #endif
52
+ #ifndef NOMINMAX /* don't define min() and max(). */
53
+ #define NOMINMAX
54
+ #endif
55
+ #include <windows.h>
56
+ #endif
57
+
58
+ #if defined(SDL_VIDEO_DRIVER_WINRT)
59
+ #include <Inspectable.h>
60
+ #endif
61
+
62
+ /* This is the structure for custom window manager events */
63
+ #if defined(SDL_VIDEO_DRIVER_X11)
64
+ #if defined(__APPLE__) && defined(__MACH__)
65
+ /* conflicts with Quickdraw.h */
66
+ #define Cursor X11Cursor
67
+ #endif
68
+
69
+ #include <X11/Xlib.h>
70
+ #include <X11/Xatom.h>
71
+
72
+ #if defined(__APPLE__) && defined(__MACH__)
73
+ /* matches the re-define above */
74
+ #undef Cursor
75
+ #endif
76
+
77
+ #endif /* defined(SDL_VIDEO_DRIVER_X11) */
78
+
79
+ #if defined(SDL_VIDEO_DRIVER_DIRECTFB)
80
+ #include <directfb.h>
81
+ #endif
82
+
83
+ #if defined(SDL_VIDEO_DRIVER_COCOA)
84
+ #ifdef __OBJC__
85
+ @class NSWindow;
86
+ #else
87
+ typedef struct _NSWindow NSWindow;
88
+ #endif
89
+ #endif
90
+
91
+ #if defined(SDL_VIDEO_DRIVER_UIKIT)
92
+ #ifdef __OBJC__
93
+ #include <UIKit/UIKit.h>
94
+ #else
95
+ typedef struct _UIWindow UIWindow;
96
+ typedef struct _UIViewController UIViewController;
97
+ #endif
98
+ typedef Uint32 GLuint;
99
+ #endif
100
+
101
+ #if defined(SDL_VIDEO_DRIVER_ANDROID)
102
+ typedef struct ANativeWindow ANativeWindow;
103
+ typedef void *EGLSurface;
104
+ #endif
105
+
106
+ #if defined(SDL_VIDEO_DRIVER_VIVANTE)
107
+ #include "SDL_egl.h"
108
+ #endif
109
+
110
+ #if defined(SDL_VIDEO_DRIVER_OS2)
111
+ #define INCL_WIN
112
+ #include <os2.h>
113
+ #endif
114
+ #endif /* SDL_PROTOTYPES_ONLY */
115
+
116
+
117
+ #include "begin_code.h"
118
+ /* Set up for C function definitions, even when using C++ */
119
+ #ifdef __cplusplus
120
+ extern "C" {
121
+ #endif
122
+
123
+ #if !defined(SDL_PROTOTYPES_ONLY)
124
+ /**
125
+ * These are the various supported windowing subsystems
126
+ */
127
+ typedef enum
128
+ {
129
+ SDL_SYSWM_UNKNOWN,
130
+ SDL_SYSWM_WINDOWS,
131
+ SDL_SYSWM_X11,
132
+ SDL_SYSWM_DIRECTFB,
133
+ SDL_SYSWM_COCOA,
134
+ SDL_SYSWM_UIKIT,
135
+ SDL_SYSWM_WAYLAND,
136
+ SDL_SYSWM_MIR, /* no longer available, left for API/ABI compatibility. Remove in 2.1! */
137
+ SDL_SYSWM_WINRT,
138
+ SDL_SYSWM_ANDROID,
139
+ SDL_SYSWM_VIVANTE,
140
+ SDL_SYSWM_OS2,
141
+ SDL_SYSWM_HAIKU
142
+ } SDL_SYSWM_TYPE;
143
+
144
+ /**
145
+ * The custom event structure.
146
+ */
147
+ struct SDL_SysWMmsg
148
+ {
149
+ SDL_version version;
150
+ SDL_SYSWM_TYPE subsystem;
151
+ union
152
+ {
153
+ #if defined(SDL_VIDEO_DRIVER_WINDOWS)
154
+ struct {
155
+ HWND hwnd; /**< The window for the message */
156
+ UINT msg; /**< The type of message */
157
+ WPARAM wParam; /**< WORD message parameter */
158
+ LPARAM lParam; /**< LONG message parameter */
159
+ } win;
160
+ #endif
161
+ #if defined(SDL_VIDEO_DRIVER_X11)
162
+ struct {
163
+ XEvent event;
164
+ } x11;
165
+ #endif
166
+ #if defined(SDL_VIDEO_DRIVER_DIRECTFB)
167
+ struct {
168
+ DFBEvent event;
169
+ } dfb;
170
+ #endif
171
+ #if defined(SDL_VIDEO_DRIVER_COCOA)
172
+ struct
173
+ {
174
+ /* Latest version of Xcode clang complains about empty structs in C v. C++:
175
+ error: empty struct has size 0 in C, size 1 in C++
176
+ */
177
+ int dummy;
178
+ /* No Cocoa window events yet */
179
+ } cocoa;
180
+ #endif
181
+ #if defined(SDL_VIDEO_DRIVER_UIKIT)
182
+ struct
183
+ {
184
+ int dummy;
185
+ /* No UIKit window events yet */
186
+ } uikit;
187
+ #endif
188
+ #if defined(SDL_VIDEO_DRIVER_VIVANTE)
189
+ struct
190
+ {
191
+ int dummy;
192
+ /* No Vivante window events yet */
193
+ } vivante;
194
+ #endif
195
+ #if defined(SDL_VIDEO_DRIVER_OS2)
196
+ struct
197
+ {
198
+ BOOL fFrame; /**< TRUE if hwnd is a frame window */
199
+ HWND hwnd; /**< The window receiving the message */
200
+ ULONG msg; /**< The message identifier */
201
+ MPARAM mp1; /**< The first first message parameter */
202
+ MPARAM mp2; /**< The second first message parameter */
203
+ } os2;
204
+ #endif
205
+ /* Can't have an empty union */
206
+ int dummy;
207
+ } msg;
208
+ };
209
+
210
+ /**
211
+ * The custom window manager information structure.
212
+ *
213
+ * When this structure is returned, it holds information about which
214
+ * low level system it is using, and will be one of SDL_SYSWM_TYPE.
215
+ */
216
+ struct SDL_SysWMinfo
217
+ {
218
+ SDL_version version;
219
+ SDL_SYSWM_TYPE subsystem;
220
+ union
221
+ {
222
+ #if defined(SDL_VIDEO_DRIVER_WINDOWS)
223
+ struct
224
+ {
225
+ HWND window; /**< The window handle */
226
+ HDC hdc; /**< The window device context */
227
+ HINSTANCE hinstance; /**< The instance handle */
228
+ } win;
229
+ #endif
230
+ #if defined(SDL_VIDEO_DRIVER_WINRT)
231
+ struct
232
+ {
233
+ IInspectable * window; /**< The WinRT CoreWindow */
234
+ } winrt;
235
+ #endif
236
+ #if defined(SDL_VIDEO_DRIVER_X11)
237
+ struct
238
+ {
239
+ Display *display; /**< The X11 display */
240
+ Window window; /**< The X11 window */
241
+ } x11;
242
+ #endif
243
+ #if defined(SDL_VIDEO_DRIVER_DIRECTFB)
244
+ struct
245
+ {
246
+ IDirectFB *dfb; /**< The directfb main interface */
247
+ IDirectFBWindow *window; /**< The directfb window handle */
248
+ IDirectFBSurface *surface; /**< The directfb client surface */
249
+ } dfb;
250
+ #endif
251
+ #if defined(SDL_VIDEO_DRIVER_COCOA)
252
+ struct
253
+ {
254
+ #if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc)
255
+ NSWindow __unsafe_unretained *window; /**< The Cocoa window */
256
+ #else
257
+ NSWindow *window; /**< The Cocoa window */
258
+ #endif
259
+ } cocoa;
260
+ #endif
261
+ #if defined(SDL_VIDEO_DRIVER_UIKIT)
262
+ struct
263
+ {
264
+ #if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc)
265
+ UIWindow __unsafe_unretained *window; /**< The UIKit window */
266
+ #else
267
+ UIWindow *window; /**< The UIKit window */
268
+ #endif
269
+ GLuint framebuffer; /**< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */
270
+ GLuint colorbuffer; /**< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */
271
+ GLuint resolveFramebuffer; /**< The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */
272
+ } uikit;
273
+ #endif
274
+ #if defined(SDL_VIDEO_DRIVER_WAYLAND)
275
+ struct
276
+ {
277
+ struct wl_display *display; /**< Wayland display */
278
+ struct wl_surface *surface; /**< Wayland surface */
279
+ struct wl_shell_surface *shell_surface; /**< Wayland shell_surface (window manager handle) */
280
+ } wl;
281
+ #endif
282
+ #if defined(SDL_VIDEO_DRIVER_MIR) /* no longer available, left for API/ABI compatibility. Remove in 2.1! */
283
+ struct
284
+ {
285
+ void *connection; /**< Mir display server connection */
286
+ void *surface; /**< Mir surface */
287
+ } mir;
288
+ #endif
289
+
290
+ #if defined(SDL_VIDEO_DRIVER_ANDROID)
291
+ struct
292
+ {
293
+ ANativeWindow *window;
294
+ EGLSurface surface;
295
+ } android;
296
+ #endif
297
+
298
+ #if defined(SDL_VIDEO_DRIVER_OS2)
299
+ struct
300
+ {
301
+ HWND hwnd; /**< The window handle */
302
+ HWND hwndFrame; /**< The frame window handle */
303
+ } os2;
304
+ #endif
305
+
306
+ #if defined(SDL_VIDEO_DRIVER_VIVANTE)
307
+ struct
308
+ {
309
+ EGLNativeDisplayType display;
310
+ EGLNativeWindowType window;
311
+ } vivante;
312
+ #endif
313
+
314
+ /* Make sure this union is always 64 bytes (8 64-bit pointers). */
315
+ /* Be careful not to overflow this if you add a new target! */
316
+ Uint8 dummy[64];
317
+ } info;
318
+ };
319
+
320
+ #endif /* SDL_PROTOTYPES_ONLY */
321
+
322
+ typedef struct SDL_SysWMinfo SDL_SysWMinfo;
323
+
324
+ /* Function prototypes */
325
+ /**
326
+ * \brief This function allows access to driver-dependent window information.
327
+ *
328
+ * \param window The window about which information is being requested
329
+ * \param info This structure must be initialized with the SDL version, and is
330
+ * then filled in with information about the given window.
331
+ *
332
+ * \return SDL_TRUE if the function is implemented and the version member of
333
+ * the \c info struct is valid, SDL_FALSE otherwise.
334
+ *
335
+ * You typically use this function like this:
336
+ * \code
337
+ * SDL_SysWMinfo info;
338
+ * SDL_VERSION(&info.version);
339
+ * if ( SDL_GetWindowWMInfo(window, &info) ) { ... }
340
+ * \endcode
341
+ */
342
+ extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window,
343
+ SDL_SysWMinfo * info);
344
+
345
+
346
+ /* Ends C function definitions when using C++ */
347
+ #ifdef __cplusplus
348
+ }
349
+ #endif
350
+ #include "close_code.h"
351
+
352
+ #endif /* SDL_syswm_h_ */
353
+
354
+ /* vi: set ts=4 sw=4 expandtab: */