native_audio 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +7 -0
  2. data/assets/include/GL/glew.h +26427 -0
  3. data/assets/include/GLES2/gl2.h +656 -0
  4. data/assets/include/GLES2/gl2ext.h +3949 -0
  5. data/assets/include/GLES2/gl2ext_angle.h +701 -0
  6. data/assets/include/GLES2/gl2platform.h +27 -0
  7. data/assets/include/GLES3/gl3.h +1192 -0
  8. data/assets/include/GLES3/gl31.h +1507 -0
  9. data/assets/include/GLES3/gl32.h +1808 -0
  10. data/assets/include/GLES3/gl3platform.h +27 -0
  11. data/assets/include/KHR/khrplatform.h +290 -0
  12. data/assets/include/SDL2/SDL.h +233 -0
  13. data/assets/include/SDL2/SDL_assert.h +326 -0
  14. data/assets/include/SDL2/SDL_atomic.h +415 -0
  15. data/assets/include/SDL2/SDL_audio.h +1500 -0
  16. data/assets/include/SDL2/SDL_bits.h +126 -0
  17. data/assets/include/SDL2/SDL_blendmode.h +198 -0
  18. data/assets/include/SDL2/SDL_clipboard.h +141 -0
  19. data/assets/include/SDL2/SDL_config.h +61 -0
  20. data/assets/include/SDL2/SDL_config_android.h +194 -0
  21. data/assets/include/SDL2/SDL_config_emscripten.h +218 -0
  22. data/assets/include/SDL2/SDL_config_iphoneos.h +217 -0
  23. data/assets/include/SDL2/SDL_config_macosx.h +277 -0
  24. data/assets/include/SDL2/SDL_config_minimal.h +95 -0
  25. data/assets/include/SDL2/SDL_config_ngage.h +89 -0
  26. data/assets/include/SDL2/SDL_config_os2.h +207 -0
  27. data/assets/include/SDL2/SDL_config_pandora.h +141 -0
  28. data/assets/include/SDL2/SDL_config_windows.h +331 -0
  29. data/assets/include/SDL2/SDL_config_wingdk.h +253 -0
  30. data/assets/include/SDL2/SDL_config_winrt.h +220 -0
  31. data/assets/include/SDL2/SDL_config_xbox.h +235 -0
  32. data/assets/include/SDL2/SDL_copying.h +20 -0
  33. data/assets/include/SDL2/SDL_cpuinfo.h +594 -0
  34. data/assets/include/SDL2/SDL_egl.h +2352 -0
  35. data/assets/include/SDL2/SDL_endian.h +348 -0
  36. data/assets/include/SDL2/SDL_error.h +163 -0
  37. data/assets/include/SDL2/SDL_events.h +1166 -0
  38. data/assets/include/SDL2/SDL_filesystem.h +149 -0
  39. data/assets/include/SDL2/SDL_gamecontroller.h +1074 -0
  40. data/assets/include/SDL2/SDL_gesture.h +117 -0
  41. data/assets/include/SDL2/SDL_guid.h +100 -0
  42. data/assets/include/SDL2/SDL_haptic.h +1341 -0
  43. data/assets/include/SDL2/SDL_hidapi.h +451 -0
  44. data/assets/include/SDL2/SDL_hints.h +2569 -0
  45. data/assets/include/SDL2/SDL_image.h +2173 -0
  46. data/assets/include/SDL2/SDL_joystick.h +1066 -0
  47. data/assets/include/SDL2/SDL_keyboard.h +353 -0
  48. data/assets/include/SDL2/SDL_keycode.h +358 -0
  49. data/assets/include/SDL2/SDL_loadso.h +115 -0
  50. data/assets/include/SDL2/SDL_locale.h +103 -0
  51. data/assets/include/SDL2/SDL_log.h +404 -0
  52. data/assets/include/SDL2/SDL_main.h +275 -0
  53. data/assets/include/SDL2/SDL_messagebox.h +193 -0
  54. data/assets/include/SDL2/SDL_metal.h +113 -0
  55. data/assets/include/SDL2/SDL_misc.h +79 -0
  56. data/assets/include/SDL2/SDL_mixer.h +2784 -0
  57. data/assets/include/SDL2/SDL_mouse.h +465 -0
  58. data/assets/include/SDL2/SDL_mutex.h +471 -0
  59. data/assets/include/SDL2/SDL_name.h +33 -0
  60. data/assets/include/SDL2/SDL_opengl.h +2132 -0
  61. data/assets/include/SDL2/SDL_opengl_glext.h +13209 -0
  62. data/assets/include/SDL2/SDL_opengles.h +39 -0
  63. data/assets/include/SDL2/SDL_opengles2.h +52 -0
  64. data/assets/include/SDL2/SDL_opengles2_gl2.h +656 -0
  65. data/assets/include/SDL2/SDL_opengles2_gl2ext.h +4033 -0
  66. data/assets/include/SDL2/SDL_opengles2_gl2platform.h +27 -0
  67. data/assets/include/SDL2/SDL_opengles2_khrplatform.h +311 -0
  68. data/assets/include/SDL2/SDL_pixels.h +644 -0
  69. data/assets/include/SDL2/SDL_platform.h +261 -0
  70. data/assets/include/SDL2/SDL_power.h +88 -0
  71. data/assets/include/SDL2/SDL_quit.h +58 -0
  72. data/assets/include/SDL2/SDL_rect.h +376 -0
  73. data/assets/include/SDL2/SDL_render.h +1919 -0
  74. data/assets/include/SDL2/SDL_revision.h +6 -0
  75. data/assets/include/SDL2/SDL_rwops.h +841 -0
  76. data/assets/include/SDL2/SDL_scancode.h +438 -0
  77. data/assets/include/SDL2/SDL_sensor.h +322 -0
  78. data/assets/include/SDL2/SDL_shape.h +155 -0
  79. data/assets/include/SDL2/SDL_stdinc.h +830 -0
  80. data/assets/include/SDL2/SDL_surface.h +997 -0
  81. data/assets/include/SDL2/SDL_system.h +623 -0
  82. data/assets/include/SDL2/SDL_syswm.h +386 -0
  83. data/assets/include/SDL2/SDL_test.h +69 -0
  84. data/assets/include/SDL2/SDL_test_assert.h +105 -0
  85. data/assets/include/SDL2/SDL_test_common.h +236 -0
  86. data/assets/include/SDL2/SDL_test_compare.h +69 -0
  87. data/assets/include/SDL2/SDL_test_crc32.h +124 -0
  88. data/assets/include/SDL2/SDL_test_font.h +168 -0
  89. data/assets/include/SDL2/SDL_test_fuzzer.h +386 -0
  90. data/assets/include/SDL2/SDL_test_harness.h +134 -0
  91. data/assets/include/SDL2/SDL_test_images.h +78 -0
  92. data/assets/include/SDL2/SDL_test_log.h +67 -0
  93. data/assets/include/SDL2/SDL_test_md5.h +129 -0
  94. data/assets/include/SDL2/SDL_test_memory.h +63 -0
  95. data/assets/include/SDL2/SDL_test_random.h +115 -0
  96. data/assets/include/SDL2/SDL_thread.h +464 -0
  97. data/assets/include/SDL2/SDL_timer.h +222 -0
  98. data/assets/include/SDL2/SDL_touch.h +150 -0
  99. data/assets/include/SDL2/SDL_ttf.h +2316 -0
  100. data/assets/include/SDL2/SDL_types.h +29 -0
  101. data/assets/include/SDL2/SDL_version.h +204 -0
  102. data/assets/include/SDL2/SDL_video.h +2150 -0
  103. data/assets/include/SDL2/SDL_vulkan.h +215 -0
  104. data/assets/include/SDL2/begin_code.h +187 -0
  105. data/assets/include/SDL2/close_code.h +40 -0
  106. data/assets/macos/universal/lib/libFLAC.a +0 -0
  107. data/assets/macos/universal/lib/libSDL2.a +0 -0
  108. data/assets/macos/universal/lib/libSDL2_image.a +0 -0
  109. data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
  110. data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
  111. data/assets/macos/universal/lib/libmodplug.a +0 -0
  112. data/assets/macos/universal/lib/libmpg123.a +0 -0
  113. data/assets/macos/universal/lib/libogg.a +0 -0
  114. data/assets/macos/universal/lib/libvorbis.a +0 -0
  115. data/assets/macos/universal/lib/libvorbisfile.a +0 -0
  116. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
  117. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
  118. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
  119. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
  120. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmodplug.a +0 -0
  121. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
  122. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libogg.a +0 -0
  123. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
  124. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopusfile.a +0 -0
  125. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
  126. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +1 -0
  127. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
  128. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbis.a +0 -0
  129. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbisfile.a +0 -0
  130. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
  131. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libzstd.a +0 -0
  132. data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
  133. data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
  134. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
  135. data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
  136. data/assets/windows/mingw-w64-x86_64/lib/libmodplug.a +0 -0
  137. data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
  138. data/assets/windows/mingw-w64-x86_64/lib/libogg.a +0 -0
  139. data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
  140. data/assets/windows/mingw-w64-x86_64/lib/libopusfile.a +0 -0
  141. data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
  142. data/assets/windows/mingw-w64-x86_64/lib/libssp.a +1 -0
  143. data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
  144. data/assets/windows/mingw-w64-x86_64/lib/libvorbis.a +0 -0
  145. data/assets/windows/mingw-w64-x86_64/lib/libvorbisfile.a +0 -0
  146. data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
  147. data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
  148. data/ext/Makefile +270 -0
  149. data/ext/audio.c +80 -0
  150. data/ext/audio.o +0 -0
  151. data/ext/extconf.h +3 -0
  152. data/ext/extconf.rb +177 -0
  153. data/ext/mkmf.log +7 -0
  154. data/lib/audio.bundle +0 -0
  155. data/lib/native_audio.rb +50 -0
  156. metadata +198 -0
@@ -0,0 +1,215 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 2017, Mark Callow
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_vulkan.h
24
+ *
25
+ * Header file for functions to creating Vulkan surfaces on SDL windows.
26
+ */
27
+
28
+ #ifndef SDL_vulkan_h_
29
+ #define SDL_vulkan_h_
30
+
31
+ #include "SDL_video.h"
32
+
33
+ #include "begin_code.h"
34
+ /* Set up for C function definitions, even when using C++ */
35
+ #ifdef __cplusplus
36
+ extern "C" {
37
+ #endif
38
+
39
+ /* Avoid including vulkan.h, don't define VkInstance if it's already included */
40
+ #ifdef VULKAN_H_
41
+ #define NO_SDL_VULKAN_TYPEDEFS
42
+ #endif
43
+ #ifndef NO_SDL_VULKAN_TYPEDEFS
44
+ #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
45
+
46
+ #if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
47
+ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
48
+ #else
49
+ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
50
+ #endif
51
+
52
+ VK_DEFINE_HANDLE(VkInstance)
53
+ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
54
+
55
+ #endif /* !NO_SDL_VULKAN_TYPEDEFS */
56
+
57
+ typedef VkInstance SDL_vulkanInstance;
58
+ typedef VkSurfaceKHR SDL_vulkanSurface; /* for compatibility with Tizen */
59
+
60
+ /**
61
+ * \name Vulkan support functions
62
+ *
63
+ * \note SDL_Vulkan_GetInstanceExtensions & SDL_Vulkan_CreateSurface API
64
+ * is compatable with Tizen's implementation of Vulkan in SDL.
65
+ */
66
+ /* @{ */
67
+
68
+ /**
69
+ * Dynamically load the Vulkan loader library.
70
+ *
71
+ * This should be called after initializing the video driver, but before
72
+ * creating any Vulkan windows. If no Vulkan loader library is loaded, the
73
+ * default library will be loaded upon creation of the first Vulkan window.
74
+ *
75
+ * It is fairly common for Vulkan applications to link with libvulkan instead
76
+ * of explicitly loading it at run time. This will work with SDL provided the
77
+ * application links to a dynamic library and both it and SDL use the same
78
+ * search path.
79
+ *
80
+ * If you specify a non-NULL `path`, an application should retrieve all of the
81
+ * Vulkan functions it uses from the dynamic library using
82
+ * SDL_Vulkan_GetVkGetInstanceProcAddr unless you can guarantee `path` points
83
+ * to the same vulkan loader library the application linked to.
84
+ *
85
+ * On Apple devices, if `path` is NULL, SDL will attempt to find the
86
+ * `vkGetInstanceProcAddr` address within all the Mach-O images of the current
87
+ * process. This is because it is fairly common for Vulkan applications to
88
+ * link with libvulkan (and historically MoltenVK was provided as a static
89
+ * library). If it is not found, on macOS, SDL will attempt to load
90
+ * `vulkan.framework/vulkan`, `libvulkan.1.dylib`,
91
+ * `MoltenVK.framework/MoltenVK`, and `libMoltenVK.dylib`, in that order. On
92
+ * iOS, SDL will attempt to load `libMoltenVK.dylib`. Applications using a
93
+ * dynamic framework or .dylib must ensure it is included in its application
94
+ * bundle.
95
+ *
96
+ * On non-Apple devices, application linking with a static libvulkan is not
97
+ * supported. Either do not link to the Vulkan loader or link to a dynamic
98
+ * library version.
99
+ *
100
+ * \param path The platform dependent Vulkan loader library name or NULL
101
+ * \returns 0 on success or -1 if the library couldn't be loaded; call
102
+ * SDL_GetError() for more information.
103
+ *
104
+ * \since This function is available since SDL 2.0.6.
105
+ *
106
+ * \sa SDL_Vulkan_GetVkInstanceProcAddr
107
+ * \sa SDL_Vulkan_UnloadLibrary
108
+ */
109
+ extern DECLSPEC int SDLCALL SDL_Vulkan_LoadLibrary(const char *path);
110
+
111
+ /**
112
+ * Get the address of the `vkGetInstanceProcAddr` function.
113
+ *
114
+ * This should be called after either calling SDL_Vulkan_LoadLibrary() or
115
+ * creating an SDL_Window with the `SDL_WINDOW_VULKAN` flag.
116
+ *
117
+ * \returns the function pointer for `vkGetInstanceProcAddr` or NULL on error.
118
+ *
119
+ * \since This function is available since SDL 2.0.6.
120
+ */
121
+ extern DECLSPEC void *SDLCALL SDL_Vulkan_GetVkGetInstanceProcAddr(void);
122
+
123
+ /**
124
+ * Unload the Vulkan library previously loaded by SDL_Vulkan_LoadLibrary()
125
+ *
126
+ * \since This function is available since SDL 2.0.6.
127
+ *
128
+ * \sa SDL_Vulkan_LoadLibrary
129
+ */
130
+ extern DECLSPEC void SDLCALL SDL_Vulkan_UnloadLibrary(void);
131
+
132
+ /**
133
+ * Get the names of the Vulkan instance extensions needed to create a surface
134
+ * with SDL_Vulkan_CreateSurface.
135
+ *
136
+ * If `pNames` is NULL, then the number of required Vulkan instance extensions
137
+ * is returned in `pCount`. Otherwise, `pCount` must point to a variable set
138
+ * to the number of elements in the `pNames` array, and on return the variable
139
+ * is overwritten with the number of names actually written to `pNames`. If
140
+ * `pCount` is less than the number of required extensions, at most `pCount`
141
+ * structures will be written. If `pCount` is smaller than the number of
142
+ * required extensions, SDL_FALSE will be returned instead of SDL_TRUE, to
143
+ * indicate that not all the required extensions were returned.
144
+ *
145
+ * The `window` parameter is currently needed to be valid as of SDL 2.0.8,
146
+ * however, this parameter will likely be removed in future releases
147
+ *
148
+ * \param window A window for which the required Vulkan instance extensions
149
+ * should be retrieved (will be deprecated in a future release)
150
+ * \param pCount A pointer to an unsigned int corresponding to the number of
151
+ * extensions to be returned
152
+ * \param pNames NULL or a pointer to an array to be filled with required
153
+ * Vulkan instance extensions
154
+ * \returns SDL_TRUE on success, SDL_FALSE on error.
155
+ *
156
+ * \since This function is available since SDL 2.0.6.
157
+ *
158
+ * \sa SDL_Vulkan_CreateSurface
159
+ */
160
+ extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_GetInstanceExtensions(SDL_Window *window,
161
+ unsigned int *pCount,
162
+ const char **pNames);
163
+
164
+ /**
165
+ * Create a Vulkan rendering surface for a window.
166
+ *
167
+ * The `window` must have been created with the `SDL_WINDOW_VULKAN` flag and
168
+ * `instance` must have been created with extensions returned by
169
+ * SDL_Vulkan_GetInstanceExtensions() enabled.
170
+ *
171
+ * \param window The window to which to attach the Vulkan surface
172
+ * \param instance The Vulkan instance handle
173
+ * \param surface A pointer to a VkSurfaceKHR handle to output the newly
174
+ * created surface
175
+ * \returns SDL_TRUE on success, SDL_FALSE on error.
176
+ *
177
+ * \since This function is available since SDL 2.0.6.
178
+ *
179
+ * \sa SDL_Vulkan_GetInstanceExtensions
180
+ * \sa SDL_Vulkan_GetDrawableSize
181
+ */
182
+ extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_CreateSurface(SDL_Window *window,
183
+ VkInstance instance,
184
+ VkSurfaceKHR* surface);
185
+
186
+ /**
187
+ * Get the size of the window's underlying drawable dimensions in pixels.
188
+ *
189
+ * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI
190
+ * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a
191
+ * platform with high-DPI support (Apple calls this "Retina"), and not
192
+ * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint.
193
+ *
194
+ * \param window an SDL_Window for which the size is to be queried
195
+ * \param w Pointer to the variable to write the width to or NULL
196
+ * \param h Pointer to the variable to write the height to or NULL
197
+ *
198
+ * \since This function is available since SDL 2.0.6.
199
+ *
200
+ * \sa SDL_GetWindowSize
201
+ * \sa SDL_CreateWindow
202
+ * \sa SDL_Vulkan_CreateSurface
203
+ */
204
+ extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window,
205
+ int *w, int *h);
206
+
207
+ /* @} *//* Vulkan support functions */
208
+
209
+ /* Ends C function definitions when using C++ */
210
+ #ifdef __cplusplus
211
+ }
212
+ #endif
213
+ #include "close_code.h"
214
+
215
+ #endif /* SDL_vulkan_h_ */
@@ -0,0 +1,187 @@
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
+ /**
23
+ * \file begin_code.h
24
+ *
25
+ * This file sets things up for C dynamic library function definitions,
26
+ * static inlined functions, and structures aligned at 4-byte alignment.
27
+ * If you don't like ugly C preprocessor code, don't look at this file. :)
28
+ */
29
+
30
+ /* This shouldn't be nested -- included it around code only. */
31
+ #ifdef _begin_code_h
32
+ #error Nested inclusion of begin_code.h
33
+ #endif
34
+ #define _begin_code_h
35
+
36
+ #ifndef SDL_DEPRECATED
37
+ # if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */
38
+ # define SDL_DEPRECATED __attribute__((deprecated))
39
+ # else
40
+ # define SDL_DEPRECATED
41
+ # endif
42
+ #endif
43
+
44
+ #ifndef SDL_UNUSED
45
+ # ifdef __GNUC__
46
+ # define SDL_UNUSED __attribute__((unused))
47
+ # else
48
+ # define SDL_UNUSED
49
+ # endif
50
+ #endif
51
+
52
+ /* Some compilers use a special export keyword */
53
+ #ifndef DECLSPEC
54
+ # if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__) || defined(__GDK__)
55
+ # ifdef DLL_EXPORT
56
+ # define DECLSPEC __declspec(dllexport)
57
+ # else
58
+ # define DECLSPEC
59
+ # endif
60
+ # elif defined(__OS2__)
61
+ # ifdef BUILD_SDL
62
+ # define DECLSPEC __declspec(dllexport)
63
+ # else
64
+ # define DECLSPEC
65
+ # endif
66
+ # else
67
+ # if defined(__GNUC__) && __GNUC__ >= 4
68
+ # define DECLSPEC __attribute__ ((visibility("default")))
69
+ # else
70
+ # define DECLSPEC
71
+ # endif
72
+ # endif
73
+ #endif
74
+
75
+ /* By default SDL uses the C calling convention */
76
+ #ifndef SDLCALL
77
+ #if (defined(__WIN32__) || defined(__WINRT__) || defined(__GDK__)) && !defined(__GNUC__)
78
+ #define SDLCALL __cdecl
79
+ #elif defined(__OS2__) || defined(__EMX__)
80
+ #define SDLCALL _System
81
+ # if defined (__GNUC__) && !defined(_System)
82
+ # define _System /* for old EMX/GCC compat. */
83
+ # endif
84
+ #else
85
+ #define SDLCALL
86
+ #endif
87
+ #endif /* SDLCALL */
88
+
89
+ /* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */
90
+ #ifdef __SYMBIAN32__
91
+ #undef DECLSPEC
92
+ #define DECLSPEC
93
+ #endif /* __SYMBIAN32__ */
94
+
95
+ /* Force structure packing at 4 byte alignment.
96
+ This is necessary if the header is included in code which has structure
97
+ packing set to an alternate value, say for loading structures from disk.
98
+ The packing is reset to the previous value in close_code.h
99
+ */
100
+ #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
101
+ #ifdef _MSC_VER
102
+ #pragma warning(disable: 4103)
103
+ #endif
104
+ #ifdef __clang__
105
+ #pragma clang diagnostic ignored "-Wpragma-pack"
106
+ #endif
107
+ #ifdef __BORLANDC__
108
+ #pragma nopackwarning
109
+ #endif
110
+ #ifdef _WIN64
111
+ /* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */
112
+ #pragma pack(push,8)
113
+ #else
114
+ #pragma pack(push,4)
115
+ #endif
116
+ #endif /* Compiler needs structure packing set */
117
+
118
+ #ifndef SDL_INLINE
119
+ #if defined(__GNUC__)
120
+ #define SDL_INLINE __inline__
121
+ #elif defined(_MSC_VER) || defined(__BORLANDC__) || \
122
+ defined(__DMC__) || defined(__SC__) || \
123
+ defined(__WATCOMC__) || defined(__LCC__) || \
124
+ defined(__DECC) || defined(__CC_ARM)
125
+ #define SDL_INLINE __inline
126
+ #ifndef __inline__
127
+ #define __inline__ __inline
128
+ #endif
129
+ #else
130
+ #define SDL_INLINE inline
131
+ #ifndef __inline__
132
+ #define __inline__ inline
133
+ #endif
134
+ #endif
135
+ #endif /* SDL_INLINE not defined */
136
+
137
+ #ifndef SDL_FORCE_INLINE
138
+ #if defined(_MSC_VER)
139
+ #define SDL_FORCE_INLINE __forceinline
140
+ #elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
141
+ #define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
142
+ #else
143
+ #define SDL_FORCE_INLINE static SDL_INLINE
144
+ #endif
145
+ #endif /* SDL_FORCE_INLINE not defined */
146
+
147
+ #ifndef SDL_NORETURN
148
+ #if defined(__GNUC__)
149
+ #define SDL_NORETURN __attribute__((noreturn))
150
+ #elif defined(_MSC_VER)
151
+ #define SDL_NORETURN __declspec(noreturn)
152
+ #else
153
+ #define SDL_NORETURN
154
+ #endif
155
+ #endif /* SDL_NORETURN not defined */
156
+
157
+ /* Apparently this is needed by several Windows compilers */
158
+ #if !defined(__MACH__)
159
+ #ifndef NULL
160
+ #ifdef __cplusplus
161
+ #define NULL 0
162
+ #else
163
+ #define NULL ((void *)0)
164
+ #endif
165
+ #endif /* NULL */
166
+ #endif /* ! Mac OS X - breaks precompiled headers */
167
+
168
+ #ifndef SDL_FALLTHROUGH
169
+ #if (defined(__cplusplus) && __cplusplus >= 201703L) || \
170
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L)
171
+ #define SDL_FALLTHROUGH [[fallthrough]]
172
+ #else
173
+ #if defined(__has_attribute)
174
+ #define _HAS_FALLTHROUGH __has_attribute(__fallthrough__)
175
+ #else
176
+ #define _HAS_FALLTHROUGH 0
177
+ #endif /* __has_attribute */
178
+ #if _HAS_FALLTHROUGH && \
179
+ ((defined(__GNUC__) && __GNUC__ >= 7) || \
180
+ (defined(__clang_major__) && __clang_major__ >= 10))
181
+ #define SDL_FALLTHROUGH __attribute__((__fallthrough__))
182
+ #else
183
+ #define SDL_FALLTHROUGH do {} while (0) /* fallthrough */
184
+ #endif /* _HAS_FALLTHROUGH */
185
+ #undef _HAS_FALLTHROUGH
186
+ #endif /* C++17 or C2x */
187
+ #endif /* SDL_FALLTHROUGH not defined */
@@ -0,0 +1,40 @@
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
+ /**
23
+ * \file close_code.h
24
+ *
25
+ * This file reverses the effects of begin_code.h and should be included
26
+ * after you finish any function and structure declarations in your headers
27
+ */
28
+
29
+ #ifndef _begin_code_h
30
+ #error close_code.h included without matching begin_code.h
31
+ #endif
32
+ #undef _begin_code_h
33
+
34
+ /* Reset structure packing at previous byte alignment */
35
+ #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
36
+ #ifdef __BORLANDC__
37
+ #pragma nopackwarning
38
+ #endif
39
+ #pragma pack(pop)
40
+ #endif /* Compiler needs structure packing set */
Binary file
@@ -0,0 +1 @@
1
+ !<arch>
@@ -0,0 +1 @@
1
+ !<arch>