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,126 @@
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 SDL_bits.h
24
+ *
25
+ * Functions for fiddling with bits and bitmasks.
26
+ */
27
+
28
+ #ifndef SDL_bits_h_
29
+ #define SDL_bits_h_
30
+
31
+ #include "SDL_stdinc.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
+ /**
40
+ * \file SDL_bits.h
41
+ */
42
+
43
+ /**
44
+ * Get the index of the most significant bit. Result is undefined when called
45
+ * with 0. This operation can also be stated as "count leading zeroes" and
46
+ * "log base 2".
47
+ *
48
+ * \return the index of the most significant bit, or -1 if the value is 0.
49
+ */
50
+ #if defined(__WATCOMC__) && defined(__386__)
51
+ extern __inline int _SDL_bsr_watcom(Uint32);
52
+ #pragma aux _SDL_bsr_watcom = \
53
+ "bsr eax, eax" \
54
+ parm [eax] nomemory \
55
+ value [eax] \
56
+ modify exact [eax] nomemory;
57
+ #endif
58
+
59
+ SDL_FORCE_INLINE int
60
+ SDL_MostSignificantBitIndex32(Uint32 x)
61
+ {
62
+ #if defined(__GNUC__) && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
63
+ /* Count Leading Zeroes builtin in GCC.
64
+ * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html
65
+ */
66
+ if (x == 0) {
67
+ return -1;
68
+ }
69
+ return 31 - __builtin_clz(x);
70
+ #elif defined(__WATCOMC__) && defined(__386__)
71
+ if (x == 0) {
72
+ return -1;
73
+ }
74
+ return _SDL_bsr_watcom(x);
75
+ #elif defined(_MSC_VER)
76
+ unsigned long index;
77
+ if (_BitScanReverse(&index, x)) {
78
+ return index;
79
+ }
80
+ return -1;
81
+ #else
82
+ /* Based off of Bit Twiddling Hacks by Sean Eron Anderson
83
+ * <seander@cs.stanford.edu>, released in the public domain.
84
+ * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog
85
+ */
86
+ const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000};
87
+ const int S[] = {1, 2, 4, 8, 16};
88
+
89
+ int msbIndex = 0;
90
+ int i;
91
+
92
+ if (x == 0) {
93
+ return -1;
94
+ }
95
+
96
+ for (i = 4; i >= 0; i--)
97
+ {
98
+ if (x & b[i])
99
+ {
100
+ x >>= S[i];
101
+ msbIndex |= S[i];
102
+ }
103
+ }
104
+
105
+ return msbIndex;
106
+ #endif
107
+ }
108
+
109
+ SDL_FORCE_INLINE SDL_bool
110
+ SDL_HasExactlyOneBitSet32(Uint32 x)
111
+ {
112
+ if (x && !(x & (x - 1))) {
113
+ return SDL_TRUE;
114
+ }
115
+ return SDL_FALSE;
116
+ }
117
+
118
+ /* Ends C function definitions when using C++ */
119
+ #ifdef __cplusplus
120
+ }
121
+ #endif
122
+ #include "close_code.h"
123
+
124
+ #endif /* SDL_bits_h_ */
125
+
126
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,198 @@
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 SDL_blendmode.h
24
+ *
25
+ * Header file declaring the SDL_BlendMode enumeration
26
+ */
27
+
28
+ #ifndef SDL_blendmode_h_
29
+ #define SDL_blendmode_h_
30
+
31
+ #include "begin_code.h"
32
+ /* Set up for C function definitions, even when using C++ */
33
+ #ifdef __cplusplus
34
+ extern "C" {
35
+ #endif
36
+
37
+ /**
38
+ * \brief The blend mode used in SDL_RenderCopy() and drawing operations.
39
+ */
40
+ typedef enum
41
+ {
42
+ SDL_BLENDMODE_NONE = 0x00000000, /**< no blending
43
+ dstRGBA = srcRGBA */
44
+ SDL_BLENDMODE_BLEND = 0x00000001, /**< alpha blending
45
+ dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA))
46
+ dstA = srcA + (dstA * (1-srcA)) */
47
+ SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending
48
+ dstRGB = (srcRGB * srcA) + dstRGB
49
+ dstA = dstA */
50
+ SDL_BLENDMODE_MOD = 0x00000004, /**< color modulate
51
+ dstRGB = srcRGB * dstRGB
52
+ dstA = dstA */
53
+ SDL_BLENDMODE_MUL = 0x00000008, /**< color multiply
54
+ dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
55
+ dstA = (srcA * dstA) + (dstA * (1-srcA)) */
56
+ SDL_BLENDMODE_INVALID = 0x7FFFFFFF
57
+
58
+ /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */
59
+
60
+ } SDL_BlendMode;
61
+
62
+ /**
63
+ * \brief The blend operation used when combining source and destination pixel components
64
+ */
65
+ typedef enum
66
+ {
67
+ SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */
68
+ SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */
69
+ SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */
70
+ SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D9, D3D11 */
71
+ SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D9, D3D11 */
72
+ } SDL_BlendOperation;
73
+
74
+ /**
75
+ * \brief The normalized factor used to multiply pixel components
76
+ */
77
+ typedef enum
78
+ {
79
+ SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */
80
+ SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */
81
+ SDL_BLENDFACTOR_SRC_COLOR = 0x3, /**< srcR, srcG, srcB, srcA */
82
+ SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, /**< 1-srcR, 1-srcG, 1-srcB, 1-srcA */
83
+ SDL_BLENDFACTOR_SRC_ALPHA = 0x5, /**< srcA, srcA, srcA, srcA */
84
+ SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, /**< 1-srcA, 1-srcA, 1-srcA, 1-srcA */
85
+ SDL_BLENDFACTOR_DST_COLOR = 0x7, /**< dstR, dstG, dstB, dstA */
86
+ SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */
87
+ SDL_BLENDFACTOR_DST_ALPHA = 0x9, /**< dstA, dstA, dstA, dstA */
88
+ SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */
89
+ } SDL_BlendFactor;
90
+
91
+ /**
92
+ * Compose a custom blend mode for renderers.
93
+ *
94
+ * The functions SDL_SetRenderDrawBlendMode and SDL_SetTextureBlendMode accept
95
+ * the SDL_BlendMode returned by this function if the renderer supports it.
96
+ *
97
+ * A blend mode controls how the pixels from a drawing operation (source) get
98
+ * combined with the pixels from the render target (destination). First, the
99
+ * components of the source and destination pixels get multiplied with their
100
+ * blend factors. Then, the blend operation takes the two products and
101
+ * calculates the result that will get stored in the render target.
102
+ *
103
+ * Expressed in pseudocode, it would look like this:
104
+ *
105
+ * ```c
106
+ * dstRGB = colorOperation(srcRGB * srcColorFactor, dstRGB * dstColorFactor);
107
+ * dstA = alphaOperation(srcA * srcAlphaFactor, dstA * dstAlphaFactor);
108
+ * ```
109
+ *
110
+ * Where the functions `colorOperation(src, dst)` and `alphaOperation(src,
111
+ * dst)` can return one of the following:
112
+ *
113
+ * - `src + dst`
114
+ * - `src - dst`
115
+ * - `dst - src`
116
+ * - `min(src, dst)`
117
+ * - `max(src, dst)`
118
+ *
119
+ * The red, green, and blue components are always multiplied with the first,
120
+ * second, and third components of the SDL_BlendFactor, respectively. The
121
+ * fourth component is not used.
122
+ *
123
+ * The alpha component is always multiplied with the fourth component of the
124
+ * SDL_BlendFactor. The other components are not used in the alpha
125
+ * calculation.
126
+ *
127
+ * Support for these blend modes varies for each renderer. To check if a
128
+ * specific SDL_BlendMode is supported, create a renderer and pass it to
129
+ * either SDL_SetRenderDrawBlendMode or SDL_SetTextureBlendMode. They will
130
+ * return with an error if the blend mode is not supported.
131
+ *
132
+ * This list describes the support of custom blend modes for each renderer in
133
+ * SDL 2.0.6. All renderers support the four blend modes listed in the
134
+ * SDL_BlendMode enumeration.
135
+ *
136
+ * - **direct3d**: Supports all operations with all factors. However, some
137
+ * factors produce unexpected results with `SDL_BLENDOPERATION_MINIMUM` and
138
+ * `SDL_BLENDOPERATION_MAXIMUM`.
139
+ * - **direct3d11**: Same as Direct3D 9.
140
+ * - **opengl**: Supports the `SDL_BLENDOPERATION_ADD` operation with all
141
+ * factors. OpenGL versions 1.1, 1.2, and 1.3 do not work correctly with SDL
142
+ * 2.0.6.
143
+ * - **opengles**: Supports the `SDL_BLENDOPERATION_ADD` operation with all
144
+ * factors. Color and alpha factors need to be the same. OpenGL ES 1
145
+ * implementation specific: May also support `SDL_BLENDOPERATION_SUBTRACT`
146
+ * and `SDL_BLENDOPERATION_REV_SUBTRACT`. May support color and alpha
147
+ * operations being different from each other. May support color and alpha
148
+ * factors being different from each other.
149
+ * - **opengles2**: Supports the `SDL_BLENDOPERATION_ADD`,
150
+ * `SDL_BLENDOPERATION_SUBTRACT`, `SDL_BLENDOPERATION_REV_SUBTRACT`
151
+ * operations with all factors.
152
+ * - **psp**: No custom blend mode support.
153
+ * - **software**: No custom blend mode support.
154
+ *
155
+ * Some renderers do not provide an alpha component for the default render
156
+ * target. The `SDL_BLENDFACTOR_DST_ALPHA` and
157
+ * `SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA` factors do not have an effect in this
158
+ * case.
159
+ *
160
+ * \param srcColorFactor the SDL_BlendFactor applied to the red, green, and
161
+ * blue components of the source pixels
162
+ * \param dstColorFactor the SDL_BlendFactor applied to the red, green, and
163
+ * blue components of the destination pixels
164
+ * \param colorOperation the SDL_BlendOperation used to combine the red,
165
+ * green, and blue components of the source and
166
+ * destination pixels
167
+ * \param srcAlphaFactor the SDL_BlendFactor applied to the alpha component of
168
+ * the source pixels
169
+ * \param dstAlphaFactor the SDL_BlendFactor applied to the alpha component of
170
+ * the destination pixels
171
+ * \param alphaOperation the SDL_BlendOperation used to combine the alpha
172
+ * component of the source and destination pixels
173
+ * \returns an SDL_BlendMode that represents the chosen factors and
174
+ * operations.
175
+ *
176
+ * \since This function is available since SDL 2.0.6.
177
+ *
178
+ * \sa SDL_SetRenderDrawBlendMode
179
+ * \sa SDL_GetRenderDrawBlendMode
180
+ * \sa SDL_SetTextureBlendMode
181
+ * \sa SDL_GetTextureBlendMode
182
+ */
183
+ extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor,
184
+ SDL_BlendFactor dstColorFactor,
185
+ SDL_BlendOperation colorOperation,
186
+ SDL_BlendFactor srcAlphaFactor,
187
+ SDL_BlendFactor dstAlphaFactor,
188
+ SDL_BlendOperation alphaOperation);
189
+
190
+ /* Ends C function definitions when using C++ */
191
+ #ifdef __cplusplus
192
+ }
193
+ #endif
194
+ #include "close_code.h"
195
+
196
+ #endif /* SDL_blendmode_h_ */
197
+
198
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,141 @@
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 SDL_clipboard.h
24
+ *
25
+ * Include file for SDL clipboard handling
26
+ */
27
+
28
+ #ifndef SDL_clipboard_h_
29
+ #define SDL_clipboard_h_
30
+
31
+ #include "SDL_stdinc.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
+ /* Function prototypes */
40
+
41
+ /**
42
+ * Put UTF-8 text into the clipboard.
43
+ *
44
+ * \param text the text to store in the clipboard
45
+ * \returns 0 on success or a negative error code on failure; call
46
+ * SDL_GetError() for more information.
47
+ *
48
+ * \since This function is available since SDL 2.0.0.
49
+ *
50
+ * \sa SDL_GetClipboardText
51
+ * \sa SDL_HasClipboardText
52
+ */
53
+ extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text);
54
+
55
+ /**
56
+ * Get UTF-8 text from the clipboard, which must be freed with SDL_free().
57
+ *
58
+ * This functions returns empty string if there was not enough memory left for
59
+ * a copy of the clipboard's content.
60
+ *
61
+ * \returns the clipboard text on success or an empty string on failure; call
62
+ * SDL_GetError() for more information. Caller must call SDL_free()
63
+ * on the returned pointer when done with it (even if there was an
64
+ * error).
65
+ *
66
+ * \since This function is available since SDL 2.0.0.
67
+ *
68
+ * \sa SDL_HasClipboardText
69
+ * \sa SDL_SetClipboardText
70
+ */
71
+ extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void);
72
+
73
+ /**
74
+ * Query whether the clipboard exists and contains a non-empty text string.
75
+ *
76
+ * \returns SDL_TRUE if the clipboard has text, or SDL_FALSE if it does not.
77
+ *
78
+ * \since This function is available since SDL 2.0.0.
79
+ *
80
+ * \sa SDL_GetClipboardText
81
+ * \sa SDL_SetClipboardText
82
+ */
83
+ extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
84
+
85
+ /**
86
+ * Put UTF-8 text into the primary selection.
87
+ *
88
+ * \param text the text to store in the primary selection
89
+ * \returns 0 on success or a negative error code on failure; call
90
+ * SDL_GetError() for more information.
91
+ *
92
+ * \since This function is available since SDL 2.26.0.
93
+ *
94
+ * \sa SDL_GetPrimarySelectionText
95
+ * \sa SDL_HasPrimarySelectionText
96
+ */
97
+ extern DECLSPEC int SDLCALL SDL_SetPrimarySelectionText(const char *text);
98
+
99
+ /**
100
+ * Get UTF-8 text from the primary selection, which must be freed with
101
+ * SDL_free().
102
+ *
103
+ * This functions returns empty string if there was not enough memory left for
104
+ * a copy of the primary selection's content.
105
+ *
106
+ * \returns the primary selection text on success or an empty string on
107
+ * failure; call SDL_GetError() for more information. Caller must
108
+ * call SDL_free() on the returned pointer when done with it (even if
109
+ * there was an error).
110
+ *
111
+ * \since This function is available since SDL 2.26.0.
112
+ *
113
+ * \sa SDL_HasPrimarySelectionText
114
+ * \sa SDL_SetPrimarySelectionText
115
+ */
116
+ extern DECLSPEC char * SDLCALL SDL_GetPrimarySelectionText(void);
117
+
118
+ /**
119
+ * Query whether the primary selection exists and contains a non-empty text
120
+ * string.
121
+ *
122
+ * \returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it
123
+ * does not.
124
+ *
125
+ * \since This function is available since SDL 2.26.0.
126
+ *
127
+ * \sa SDL_GetPrimarySelectionText
128
+ * \sa SDL_SetPrimarySelectionText
129
+ */
130
+ extern DECLSPEC SDL_bool SDLCALL SDL_HasPrimarySelectionText(void);
131
+
132
+
133
+ /* Ends C function definitions when using C++ */
134
+ #ifdef __cplusplus
135
+ }
136
+ #endif
137
+ #include "close_code.h"
138
+
139
+ #endif /* SDL_clipboard_h_ */
140
+
141
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,61 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ #ifndef SDL_config_h_
23
+ #define SDL_config_h_
24
+
25
+ #include "SDL_platform.h"
26
+
27
+ /**
28
+ * \file SDL_config.h
29
+ */
30
+
31
+ /* Add any platform that doesn't build using the configure system. */
32
+ #if defined(__WIN32__)
33
+ #include "SDL_config_windows.h"
34
+ #elif defined(__WINRT__)
35
+ #include "SDL_config_winrt.h"
36
+ #elif defined(__WINGDK__)
37
+ #include "SDL_config_wingdk.h"
38
+ #elif defined(__XBOXONE__) || defined(__XBOXSERIES__)
39
+ #include "SDL_config_xbox.h"
40
+ #elif defined(__MACOSX__)
41
+ #include "SDL_config_macosx.h"
42
+ #elif defined(__IPHONEOS__)
43
+ #include "SDL_config_iphoneos.h"
44
+ #elif defined(__ANDROID__)
45
+ #include "SDL_config_android.h"
46
+ #elif defined(__OS2__)
47
+ #include "SDL_config_os2.h"
48
+ #elif defined(__EMSCRIPTEN__)
49
+ #include "SDL_config_emscripten.h"
50
+ #elif defined(__NGAGE__)
51
+ #include "SDL_config_ngage.h"
52
+ #else
53
+ /* This is a minimal configuration just to get SDL running on new platforms. */
54
+ #include "SDL_config_minimal.h"
55
+ #endif /* platform config */
56
+
57
+ #ifdef USING_GENERATED_CONFIG_H
58
+ #error Wrong SDL_config.h, check your include path?
59
+ #endif
60
+
61
+ #endif /* SDL_config_h_ */