ruby2d 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. checksums.yaml +4 -4
  2. data/assets/README.md +20 -7
  3. data/assets/include/SDL2/SDL.h +135 -0
  4. data/assets/include/SDL2/SDL_assert.h +291 -0
  5. data/assets/include/SDL2/SDL_atomic.h +277 -0
  6. data/assets/include/SDL2/SDL_audio.h +826 -0
  7. data/assets/include/SDL2/SDL_bits.h +112 -0
  8. data/assets/include/SDL2/SDL_blendmode.h +120 -0
  9. data/assets/include/SDL2/SDL_clipboard.h +71 -0
  10. data/assets/include/SDL2/SDL_config.h +421 -0
  11. data/assets/include/SDL2/SDL_cpuinfo.h +188 -0
  12. data/assets/include/SDL2/SDL_egl.h +1673 -0
  13. data/assets/include/SDL2/SDL_endian.h +260 -0
  14. data/assets/include/SDL2/SDL_error.h +76 -0
  15. data/assets/include/SDL2/SDL_events.h +788 -0
  16. data/assets/include/SDL2/SDL_filesystem.h +136 -0
  17. data/assets/include/SDL2/SDL_gamecontroller.h +390 -0
  18. data/assets/include/SDL2/SDL_gesture.h +87 -0
  19. data/assets/include/SDL2/SDL_haptic.h +1238 -0
  20. data/assets/include/SDL2/SDL_hints.h +1135 -0
  21. data/assets/include/SDL2/SDL_image.h +161 -0
  22. data/assets/include/SDL2/SDL_joystick.h +408 -0
  23. data/assets/include/SDL2/SDL_keyboard.h +217 -0
  24. data/assets/include/SDL2/SDL_keycode.h +349 -0
  25. data/assets/include/SDL2/SDL_loadso.h +81 -0
  26. data/assets/include/SDL2/SDL_log.h +211 -0
  27. data/assets/include/SDL2/SDL_main.h +168 -0
  28. data/assets/include/SDL2/SDL_messagebox.h +144 -0
  29. data/assets/include/SDL2/SDL_mixer.h +651 -0
  30. data/assets/include/SDL2/SDL_mouse.h +302 -0
  31. data/assets/include/SDL2/SDL_mutex.h +251 -0
  32. data/assets/include/SDL2/SDL_name.h +33 -0
  33. data/assets/include/SDL2/SDL_opengl.h +2183 -0
  34. data/assets/include/SDL2/SDL_opengl_glext.h +11177 -0
  35. data/assets/include/SDL2/SDL_opengles.h +39 -0
  36. data/assets/include/SDL2/SDL_opengles2.h +52 -0
  37. data/assets/include/SDL2/SDL_opengles2_gl2.h +621 -0
  38. data/assets/include/SDL2/SDL_opengles2_gl2ext.h +2050 -0
  39. data/assets/include/SDL2/SDL_opengles2_gl2platform.h +30 -0
  40. data/assets/include/SDL2/SDL_opengles2_khrplatform.h +282 -0
  41. data/assets/include/SDL2/SDL_pixels.h +470 -0
  42. data/assets/include/SDL2/SDL_platform.h +198 -0
  43. data/assets/include/SDL2/SDL_power.h +75 -0
  44. data/assets/include/SDL2/SDL_quit.h +58 -0
  45. data/assets/include/SDL2/SDL_rect.h +148 -0
  46. data/assets/include/SDL2/SDL_render.h +931 -0
  47. data/assets/include/SDL2/SDL_revision.h +2 -0
  48. data/assets/include/SDL2/SDL_rwops.h +254 -0
  49. data/assets/include/SDL2/SDL_scancode.h +413 -0
  50. data/assets/include/SDL2/SDL_sensor.h +251 -0
  51. data/assets/include/SDL2/SDL_shape.h +144 -0
  52. data/assets/include/SDL2/SDL_stdinc.h +607 -0
  53. data/assets/include/SDL2/SDL_surface.h +553 -0
  54. data/assets/include/SDL2/SDL_system.h +279 -0
  55. data/assets/include/SDL2/SDL_syswm.h +324 -0
  56. data/assets/include/SDL2/SDL_test.h +69 -0
  57. data/assets/include/SDL2/SDL_test_assert.h +105 -0
  58. data/assets/include/SDL2/SDL_test_common.h +188 -0
  59. data/assets/include/SDL2/SDL_test_compare.h +69 -0
  60. data/assets/include/SDL2/SDL_test_crc32.h +124 -0
  61. data/assets/include/SDL2/SDL_test_font.h +81 -0
  62. data/assets/include/SDL2/SDL_test_fuzzer.h +384 -0
  63. data/assets/include/SDL2/SDL_test_harness.h +134 -0
  64. data/assets/include/SDL2/SDL_test_images.h +78 -0
  65. data/assets/include/SDL2/SDL_test_log.h +67 -0
  66. data/assets/include/SDL2/SDL_test_md5.h +129 -0
  67. data/assets/include/SDL2/SDL_test_memory.h +63 -0
  68. data/assets/include/SDL2/SDL_test_random.h +115 -0
  69. data/assets/include/SDL2/SDL_thread.h +343 -0
  70. data/assets/include/SDL2/SDL_timer.h +115 -0
  71. data/assets/include/SDL2/SDL_touch.h +86 -0
  72. data/assets/include/SDL2/SDL_ttf.h +294 -0
  73. data/assets/include/SDL2/SDL_types.h +29 -0
  74. data/assets/include/SDL2/SDL_version.h +162 -0
  75. data/assets/include/SDL2/SDL_video.h +1276 -0
  76. data/assets/include/SDL2/SDL_vulkan.h +278 -0
  77. data/assets/include/SDL2/begin_code.h +167 -0
  78. data/assets/include/SDL2/close_code.h +37 -0
  79. data/assets/include/glew.h +23686 -0
  80. data/assets/include/simple2d.h +735 -0
  81. data/assets/ios/MRuby.framework/Headers/mrbconf.h +3 -5
  82. data/assets/ios/MRuby.framework/Headers/mruby.h +35 -32
  83. data/assets/ios/MRuby.framework/Headers/mruby/array.h +1 -0
  84. data/assets/ios/MRuby.framework/Headers/mruby/boxing_word.h +9 -1
  85. data/assets/ios/MRuby.framework/Headers/mruby/class.h +14 -11
  86. data/assets/ios/MRuby.framework/Headers/mruby/common.h +5 -0
  87. data/assets/ios/MRuby.framework/Headers/mruby/compile.h +4 -3
  88. data/assets/ios/MRuby.framework/Headers/mruby/debug.h +3 -2
  89. data/assets/ios/MRuby.framework/Headers/mruby/dump.h +2 -2
  90. data/assets/ios/MRuby.framework/Headers/mruby/hash.h +38 -5
  91. data/assets/ios/MRuby.framework/Headers/mruby/irep.h +17 -4
  92. data/assets/ios/MRuby.framework/Headers/mruby/object.h +4 -5
  93. data/assets/ios/MRuby.framework/Headers/mruby/opcode.h +47 -139
  94. data/assets/ios/MRuby.framework/Headers/mruby/ops.h +117 -0
  95. data/assets/ios/MRuby.framework/Headers/mruby/proc.h +4 -4
  96. data/assets/ios/MRuby.framework/Headers/mruby/string.h +11 -7
  97. data/assets/ios/MRuby.framework/Headers/mruby/throw.h +4 -4
  98. data/assets/ios/MRuby.framework/Headers/mruby/variable.h +2 -4
  99. data/assets/ios/MRuby.framework/Headers/mruby/version.h +6 -6
  100. data/assets/ios/MRuby.framework/MRuby +0 -0
  101. data/assets/ios/MyApp.xcodeproj/project.pbxproj +24 -18
  102. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  103. data/assets/ios/main.c +1 -1
  104. data/assets/macos/lib/libFLAC.a +0 -0
  105. data/assets/macos/lib/libSDL2.a +0 -0
  106. data/assets/macos/lib/libSDL2_image.a +0 -0
  107. data/assets/macos/lib/libSDL2_mixer.a +0 -0
  108. data/assets/macos/lib/libSDL2_ttf.a +0 -0
  109. data/assets/macos/lib/libfreetype.a +0 -0
  110. data/assets/macos/lib/libjpeg.a +0 -0
  111. data/assets/macos/lib/libmpg123.a +0 -0
  112. data/assets/macos/lib/libogg.a +0 -0
  113. data/assets/macos/lib/libpng16.a +0 -0
  114. data/assets/macos/lib/libsimple2d.a +0 -0
  115. data/assets/macos/lib/libtiff.a +0 -0
  116. data/assets/macos/lib/libvorbis.a +0 -0
  117. data/assets/macos/lib/libvorbisfile.a +0 -0
  118. data/assets/macos/lib/libwebp.a +0 -0
  119. data/assets/mingw/bin/SDL2.dll +0 -0
  120. data/assets/mingw/bin/SDL2_image.dll +0 -0
  121. data/assets/mingw/bin/SDL2_mixer.dll +0 -0
  122. data/assets/mingw/bin/SDL2_ttf.dll +0 -0
  123. data/assets/mingw/bin/glew32.dll +0 -0
  124. data/assets/mingw/bin/libFLAC-8.dll +0 -0
  125. data/assets/mingw/bin/libfreetype-6.dll +0 -0
  126. data/assets/mingw/bin/libjpeg-9.dll +0 -0
  127. data/assets/mingw/bin/libmodplug-1.dll +0 -0
  128. data/assets/mingw/bin/libmpg123-0.dll +0 -0
  129. data/assets/mingw/bin/libogg-0.dll +0 -0
  130. data/assets/mingw/bin/libopus-0.dll +0 -0
  131. data/assets/mingw/bin/libopusfile-0.dll +0 -0
  132. data/assets/mingw/bin/libpng16-16.dll +0 -0
  133. data/assets/mingw/bin/libtiff-5.dll +0 -0
  134. data/assets/mingw/bin/libvorbis-0.dll +0 -0
  135. data/assets/mingw/bin/libvorbisfile-3.dll +0 -0
  136. data/assets/mingw/bin/libwebp-7.dll +0 -0
  137. data/assets/mingw/bin/zlib1.dll +0 -0
  138. data/assets/mingw/lib/libSDL2.a +0 -0
  139. data/assets/mingw/lib/libSDL2.dll.a +0 -0
  140. data/assets/mingw/lib/libSDL2_image.a +0 -0
  141. data/assets/mingw/lib/libSDL2_image.dll.a +0 -0
  142. data/assets/mingw/lib/libSDL2_mixer.a +0 -0
  143. data/assets/mingw/lib/libSDL2_mixer.dll.a +0 -0
  144. data/assets/mingw/lib/libSDL2_test.a +0 -0
  145. data/assets/mingw/lib/libSDL2_ttf.a +0 -0
  146. data/assets/mingw/lib/libSDL2_ttf.dll.a +0 -0
  147. data/assets/mingw/lib/libSDL2main.a +0 -0
  148. data/assets/mingw/lib/libglew32.a +0 -0
  149. data/assets/mingw/lib/libglew32.dll.a +0 -0
  150. data/assets/mingw/lib/libsimple2d.a +0 -0
  151. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +4 -0
  152. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +4 -0
  153. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +4 -0
  154. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +4 -0
  155. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +4 -0
  156. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +4 -0
  157. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +4 -0
  158. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +4 -0
  159. data/assets/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +7 -0
  160. data/assets/tvos/MRuby.framework/Headers/mrbconf.h +3 -5
  161. data/assets/tvos/MRuby.framework/Headers/mruby.h +35 -32
  162. data/assets/tvos/MRuby.framework/Headers/mruby/array.h +1 -0
  163. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_word.h +9 -1
  164. data/assets/tvos/MRuby.framework/Headers/mruby/class.h +14 -11
  165. data/assets/tvos/MRuby.framework/Headers/mruby/common.h +5 -0
  166. data/assets/tvos/MRuby.framework/Headers/mruby/compile.h +4 -3
  167. data/assets/tvos/MRuby.framework/Headers/mruby/debug.h +3 -2
  168. data/assets/tvos/MRuby.framework/Headers/mruby/dump.h +2 -2
  169. data/assets/tvos/MRuby.framework/Headers/mruby/hash.h +38 -5
  170. data/assets/tvos/MRuby.framework/Headers/mruby/irep.h +17 -4
  171. data/assets/tvos/MRuby.framework/Headers/mruby/object.h +4 -5
  172. data/assets/tvos/MRuby.framework/Headers/mruby/opcode.h +47 -139
  173. data/assets/tvos/MRuby.framework/Headers/mruby/ops.h +117 -0
  174. data/assets/tvos/MRuby.framework/Headers/mruby/proc.h +4 -4
  175. data/assets/tvos/MRuby.framework/Headers/mruby/string.h +11 -7
  176. data/assets/tvos/MRuby.framework/Headers/mruby/throw.h +4 -4
  177. data/assets/tvos/MRuby.framework/Headers/mruby/variable.h +2 -4
  178. data/assets/tvos/MRuby.framework/Headers/mruby/version.h +6 -6
  179. data/assets/tvos/MRuby.framework/MRuby +0 -0
  180. data/assets/tvos/MyApp.xcodeproj/project.pbxproj +25 -19
  181. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  182. data/assets/tvos/main.c +1 -1
  183. data/ext/ruby2d/extconf.rb +59 -50
  184. data/ext/ruby2d/ruby2d.c +0 -1
  185. data/lib/ruby2d.rb +1 -7
  186. data/lib/ruby2d/cli/launch.rb +1 -1
  187. data/lib/ruby2d/font.rb +32 -7
  188. data/lib/ruby2d/version.rb +1 -1
  189. metadata +132 -6
  190. data/assets/opal.js +0 -21637
  191. data/assets/simple2d.js +0 -1379
  192. data/assets/template.html +0 -18
@@ -0,0 +1,1135 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2018 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_hints.h
24
+ *
25
+ * Official documentation for SDL configuration variables
26
+ *
27
+ * This file contains functions to set and get configuration hints,
28
+ * as well as listing each of them alphabetically.
29
+ *
30
+ * The convention for naming hints is SDL_HINT_X, where "SDL_X" is
31
+ * the environment variable that can be used to override the default.
32
+ *
33
+ * In general these hints are just that - they may or may not be
34
+ * supported or applicable on any given platform, but they provide
35
+ * a way for an application or user to give the library a hint as
36
+ * to how they would like the library to work.
37
+ */
38
+
39
+ #ifndef SDL_hints_h_
40
+ #define SDL_hints_h_
41
+
42
+ #include "SDL_stdinc.h"
43
+
44
+ #include "begin_code.h"
45
+ /* Set up for C function definitions, even when using C++ */
46
+ #ifdef __cplusplus
47
+ extern "C" {
48
+ #endif
49
+
50
+ /**
51
+ * \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface.
52
+ *
53
+ * SDL can try to accelerate the SDL screen surface by using streaming
54
+ * textures with a 3D rendering engine. This variable controls whether and
55
+ * how this is done.
56
+ *
57
+ * This variable can be set to the following values:
58
+ * "0" - Disable 3D acceleration
59
+ * "1" - Enable 3D acceleration, using the default renderer.
60
+ * "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.)
61
+ *
62
+ * By default SDL tries to make a best guess for each platform whether
63
+ * to use acceleration or not.
64
+ */
65
+ #define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION"
66
+
67
+ /**
68
+ * \brief A variable specifying which render driver to use.
69
+ *
70
+ * If the application doesn't pick a specific renderer to use, this variable
71
+ * specifies the name of the preferred renderer. If the preferred renderer
72
+ * can't be initialized, the normal default renderer is used.
73
+ *
74
+ * This variable is case insensitive and can be set to the following values:
75
+ * "direct3d"
76
+ * "opengl"
77
+ * "opengles2"
78
+ * "opengles"
79
+ * "metal"
80
+ * "software"
81
+ *
82
+ * The default varies by platform, but it's the first one in the list that
83
+ * is available on the current platform.
84
+ */
85
+ #define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER"
86
+
87
+ /**
88
+ * \brief A variable controlling whether the OpenGL render driver uses shaders if they are available.
89
+ *
90
+ * This variable can be set to the following values:
91
+ * "0" - Disable shaders
92
+ * "1" - Enable shaders
93
+ *
94
+ * By default shaders are used if OpenGL supports them.
95
+ */
96
+ #define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS"
97
+
98
+ /**
99
+ * \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations.
100
+ *
101
+ * This variable can be set to the following values:
102
+ * "0" - Thread-safety is not enabled (faster)
103
+ * "1" - Thread-safety is enabled
104
+ *
105
+ * By default the Direct3D device is created with thread-safety disabled.
106
+ */
107
+ #define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE"
108
+
109
+ /**
110
+ * \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer.
111
+ *
112
+ * This variable does not have any effect on the Direct3D 9 based renderer.
113
+ *
114
+ * This variable can be set to the following values:
115
+ * "0" - Disable Debug Layer use
116
+ * "1" - Enable Debug Layer use
117
+ *
118
+ * By default, SDL does not use Direct3D Debug Layer.
119
+ */
120
+ #define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG"
121
+
122
+ /**
123
+ * \brief A variable controlling the scaling policy for SDL_RenderSetLogicalSize.
124
+ *
125
+ * This variable can be set to the following values:
126
+ * "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen
127
+ * "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen
128
+ *
129
+ * By default letterbox is used
130
+ */
131
+ #define SDL_HINT_RENDER_LOGICAL_SIZE_MODE "SDL_RENDER_LOGICAL_SIZE_MODE"
132
+
133
+ /**
134
+ * \brief A variable controlling the scaling quality
135
+ *
136
+ * This variable can be set to the following values:
137
+ * "0" or "nearest" - Nearest pixel sampling
138
+ * "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D)
139
+ * "2" or "best" - Currently this is the same as "linear"
140
+ *
141
+ * By default nearest pixel sampling is used
142
+ */
143
+ #define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY"
144
+
145
+ /**
146
+ * \brief A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing.
147
+ *
148
+ * This variable can be set to the following values:
149
+ * "0" - Disable vsync
150
+ * "1" - Enable vsync
151
+ *
152
+ * By default SDL does not sync screen surface updates with vertical refresh.
153
+ */
154
+ #define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
155
+
156
+ /**
157
+ * \brief A variable controlling whether the screensaver is enabled.
158
+ *
159
+ * This variable can be set to the following values:
160
+ * "0" - Disable screensaver
161
+ * "1" - Enable screensaver
162
+ *
163
+ * By default SDL will disable the screensaver.
164
+ */
165
+ #define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER"
166
+
167
+ /**
168
+ * \brief A variable controlling whether the X11 VidMode extension should be used.
169
+ *
170
+ * This variable can be set to the following values:
171
+ * "0" - Disable XVidMode
172
+ * "1" - Enable XVidMode
173
+ *
174
+ * By default SDL will use XVidMode if it is available.
175
+ */
176
+ #define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE"
177
+
178
+ /**
179
+ * \brief A variable controlling whether the X11 Xinerama extension should be used.
180
+ *
181
+ * This variable can be set to the following values:
182
+ * "0" - Disable Xinerama
183
+ * "1" - Enable Xinerama
184
+ *
185
+ * By default SDL will use Xinerama if it is available.
186
+ */
187
+ #define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA"
188
+
189
+ /**
190
+ * \brief A variable controlling whether the X11 XRandR extension should be used.
191
+ *
192
+ * This variable can be set to the following values:
193
+ * "0" - Disable XRandR
194
+ * "1" - Enable XRandR
195
+ *
196
+ * By default SDL will not use XRandR because of window manager issues.
197
+ */
198
+ #define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
199
+
200
+ /**
201
+ * \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported.
202
+ *
203
+ * This variable can be set to the following values:
204
+ * "0" - Disable _NET_WM_PING
205
+ * "1" - Enable _NET_WM_PING
206
+ *
207
+ * By default SDL will use _NET_WM_PING, but for applications that know they
208
+ * will not always be able to respond to ping requests in a timely manner they can
209
+ * turn it off to avoid the window manager thinking the app is hung.
210
+ * The hint is checked in CreateWindow.
211
+ */
212
+ #define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING"
213
+
214
+ /**
215
+ * \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used.
216
+ *
217
+ * This variable can be set to the following values:
218
+ * "0" - Disable _NET_WM_BYPASS_COMPOSITOR
219
+ * "1" - Enable _NET_WM_BYPASS_COMPOSITOR
220
+ *
221
+ * By default SDL will use _NET_WM_BYPASS_COMPOSITOR
222
+ *
223
+ */
224
+ #define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
225
+
226
+ /**
227
+ * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden
228
+ *
229
+ * This variable can be set to the following values:
230
+ * "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc)
231
+ * "1" - The window frame is interactive when the cursor is hidden
232
+ *
233
+ * By default SDL will allow interaction with the window frame when the cursor is hidden
234
+ */
235
+ #define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"
236
+
237
+ /**
238
+ * \brief A variable to specify custom icon resource id from RC file on Windows platform
239
+ */
240
+ #define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON"
241
+ #define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
242
+
243
+ /**
244
+ * \brief A variable controlling whether the windows message loop is processed by SDL
245
+ *
246
+ * This variable can be set to the following values:
247
+ * "0" - The window message loop is not run
248
+ * "1" - The window message loop is processed in SDL_PumpEvents()
249
+ *
250
+ * By default SDL will process the windows message loop
251
+ */
252
+ #define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP"
253
+
254
+ /**
255
+ * \brief A variable controlling whether grabbing input grabs the keyboard
256
+ *
257
+ * This variable can be set to the following values:
258
+ * "0" - Grab will affect only the mouse
259
+ * "1" - Grab will affect mouse and keyboard
260
+ *
261
+ * By default SDL will not grab the keyboard so system shortcuts still work.
262
+ */
263
+ #define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD"
264
+
265
+ /**
266
+ * \brief A variable setting the double click time, in milliseconds.
267
+ */
268
+ #define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME "SDL_MOUSE_DOUBLE_CLICK_TIME"
269
+
270
+ /**
271
+ * \brief A variable setting the double click radius, in pixels.
272
+ */
273
+ #define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS "SDL_MOUSE_DOUBLE_CLICK_RADIUS"
274
+
275
+ /**
276
+ * \brief A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode
277
+ */
278
+ #define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE"
279
+
280
+ /**
281
+ * \brief A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode
282
+ */
283
+ #define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE"
284
+
285
+ /**
286
+ * \brief A variable controlling whether relative mouse mode is implemented using mouse warping
287
+ *
288
+ * This variable can be set to the following values:
289
+ * "0" - Relative mouse mode uses raw input
290
+ * "1" - Relative mouse mode uses mouse warping
291
+ *
292
+ * By default SDL will use raw input for relative mouse mode
293
+ */
294
+ #define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP"
295
+
296
+ /**
297
+ * \brief Allow mouse click events when clicking to focus an SDL window
298
+ *
299
+ * This variable can be set to the following values:
300
+ * "0" - Ignore mouse clicks that activate a window
301
+ * "1" - Generate events for mouse clicks that activate a window
302
+ *
303
+ * By default SDL will ignore mouse clicks that activate a window
304
+ */
305
+ #define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH"
306
+
307
+ /**
308
+ * \brief A variable controlling whether touch events should generate synthetic mouse events
309
+ *
310
+ * This variable can be set to the following values:
311
+ * "0" - Touch events will not generate mouse events
312
+ * "1" - Touch events will generate mouse events
313
+ *
314
+ * By default SDL will generate mouse events for touch events
315
+ */
316
+ #define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS"
317
+
318
+ /**
319
+ * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true.
320
+ *
321
+ */
322
+ #define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
323
+
324
+ /**
325
+ * \brief A variable controlling whether the idle timer is disabled on iOS.
326
+ *
327
+ * When an iOS app does not receive touches for some time, the screen is
328
+ * dimmed automatically. For games where the accelerometer is the only input
329
+ * this is problematic. This functionality can be disabled by setting this
330
+ * hint.
331
+ *
332
+ * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver()
333
+ * accomplish the same thing on iOS. They should be preferred over this hint.
334
+ *
335
+ * This variable can be set to the following values:
336
+ * "0" - Enable idle timer
337
+ * "1" - Disable idle timer
338
+ */
339
+ #define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED"
340
+
341
+ /**
342
+ * \brief A variable controlling which orientations are allowed on iOS/Android.
343
+ *
344
+ * In some circumstances it is necessary to be able to explicitly control
345
+ * which UI orientations are allowed.
346
+ *
347
+ * This variable is a space delimited list of the following values:
348
+ * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown"
349
+ */
350
+ #define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS"
351
+
352
+ /**
353
+ * \brief A variable controlling whether controllers used with the Apple TV
354
+ * generate UI events.
355
+ *
356
+ * When UI events are generated by controller input, the app will be
357
+ * backgrounded when the Apple TV remote's menu button is pressed, and when the
358
+ * pause or B buttons on gamepads are pressed.
359
+ *
360
+ * More information about properly making use of controllers for the Apple TV
361
+ * can be found here:
362
+ * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/
363
+ *
364
+ * This variable can be set to the following values:
365
+ * "0" - Controller input does not generate UI events (the default).
366
+ * "1" - Controller input generates UI events.
367
+ */
368
+ #define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"
369
+
370
+ /**
371
+ * \brief A variable controlling whether the Apple TV remote's joystick axes
372
+ * will automatically match the rotation of the remote.
373
+ *
374
+ * This variable can be set to the following values:
375
+ * "0" - Remote orientation does not affect joystick axes (the default).
376
+ * "1" - Joystick axes are based on the orientation of the remote.
377
+ */
378
+ #define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"
379
+
380
+ /**
381
+ * \brief A variable controlling whether the home indicator bar on iPhone X
382
+ * should be hidden.
383
+ *
384
+ * This variable can be set to the following values:
385
+ * "0" - The indicator bar is not hidden (default for windowed applications)
386
+ * "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications)
387
+ * "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications)
388
+ */
389
+ #define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR"
390
+
391
+ /**
392
+ * \brief A variable controlling whether the Android / iOS built-in
393
+ * accelerometer should be listed as a joystick device.
394
+ *
395
+ * This variable can be set to the following values:
396
+ * "0" - The accelerometer is not listed as a joystick
397
+ * "1" - The accelerometer is available as a 3 axis joystick (the default).
398
+ */
399
+ #define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK"
400
+
401
+ /**
402
+ * \brief A variable controlling whether the Android / tvOS remotes
403
+ * should be listed as joystick devices, instead of sending keyboard events.
404
+ *
405
+ * This variable can be set to the following values:
406
+ * "0" - Remotes send enter/escape/arrow key events
407
+ * "1" - Remotes are available as 2 axis, 2 button joysticks (the default).
408
+ */
409
+ #define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK"
410
+
411
+ /**
412
+ * \brief A variable that lets you disable the detection and use of Xinput gamepad devices
413
+ *
414
+ * The variable can be set to the following values:
415
+ * "0" - Disable XInput detection (only uses direct input)
416
+ * "1" - Enable XInput detection (the default)
417
+ */
418
+ #define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED"
419
+
420
+ /**
421
+ * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices.
422
+ *
423
+ * This hint is for backwards compatibility only and will be removed in SDL 2.1
424
+ *
425
+ * The default value is "0". This hint must be set before SDL_Init()
426
+ */
427
+ #define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"
428
+
429
+ /**
430
+ * \brief A variable that lets you manually hint extra gamecontroller db entries.
431
+ *
432
+ * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h
433
+ *
434
+ * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER)
435
+ * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping()
436
+ */
437
+ #define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG"
438
+
439
+ /**
440
+ * \brief A variable containing a list of devices to skip when scanning for game controllers.
441
+ *
442
+ * The format of the string is a comma separated list of USB VID/PID pairs
443
+ * in hexadecimal form, e.g.
444
+ *
445
+ * 0xAAAA/0xBBBB,0xCCCC/0xDDDD
446
+ *
447
+ * The variable can also take the form of @file, in which case the named
448
+ * file will be loaded and interpreted as the value of the variable.
449
+ */
450
+ #define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES"
451
+
452
+ /**
453
+ * \brief If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable.
454
+ *
455
+ * The format of the string is a comma separated list of USB VID/PID pairs
456
+ * in hexadecimal form, e.g.
457
+ *
458
+ * 0xAAAA/0xBBBB,0xCCCC/0xDDDD
459
+ *
460
+ * The variable can also take the form of @file, in which case the named
461
+ * file will be loaded and interpreted as the value of the variable.
462
+ */
463
+ #define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
464
+
465
+ /**
466
+ * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background.
467
+ *
468
+ * The variable can be set to the following values:
469
+ * "0" - Disable joystick & gamecontroller input events when the
470
+ * application is in the background.
471
+ * "1" - Enable joystick & gamecontroller input events when the
472
+ * application is in the background.
473
+ *
474
+ * The default value is "0". This hint may be set at any time.
475
+ */
476
+ #define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"
477
+
478
+ /**
479
+ * \brief A variable controlling whether the HIDAPI joystick drivers should be used.
480
+ *
481
+ * This variable can be set to the following values:
482
+ * "0" - HIDAPI drivers are not used
483
+ * "1" - HIDAPI drivers are used (the default)
484
+ *
485
+ * This variable is the default for all drivers, but can be overridden by the hints for specific drivers below.
486
+ */
487
+ #define SDL_HINT_JOYSTICK_HIDAPI "SDL_JOYSTICK_HIDAPI"
488
+
489
+ /**
490
+ * \brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used.
491
+ *
492
+ * This variable can be set to the following values:
493
+ * "0" - HIDAPI driver is not used
494
+ * "1" - HIDAPI driver is used
495
+ *
496
+ * The default is the value of SDL_HINT_JOYSTICK_HIDAPI
497
+ */
498
+ #define SDL_HINT_JOYSTICK_HIDAPI_PS4 "SDL_JOYSTICK_HIDAPI_PS4"
499
+
500
+ /**
501
+ * \brief A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver.
502
+ *
503
+ * This variable can be set to the following values:
504
+ * "0" - extended reports are not enabled (the default)
505
+ * "1" - extended reports
506
+ *
507
+ * Extended input reports allow rumble on Bluetooth PS4 controllers, but
508
+ * break DirectInput handling for applications that don't use SDL.
509
+ *
510
+ * Once extended reports are enabled, they can not be disabled without
511
+ * power cycling the controller.
512
+ */
513
+ #define SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"
514
+
515
+ /**
516
+ * \brief A variable controlling whether the HIDAPI driver for Steam Controllers should be used.
517
+ *
518
+ * This variable can be set to the following values:
519
+ * "0" - HIDAPI driver is not used
520
+ * "1" - HIDAPI driver is used
521
+ *
522
+ * The default is the value of SDL_HINT_JOYSTICK_HIDAPI
523
+ */
524
+ #define SDL_HINT_JOYSTICK_HIDAPI_STEAM "SDL_JOYSTICK_HIDAPI_STEAM"
525
+
526
+ /**
527
+ * \brief A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used.
528
+ *
529
+ * This variable can be set to the following values:
530
+ * "0" - HIDAPI driver is not used
531
+ * "1" - HIDAPI driver is used
532
+ *
533
+ * The default is the value of SDL_HINT_JOYSTICK_HIDAPI
534
+ */
535
+ #define SDL_HINT_JOYSTICK_HIDAPI_SWITCH "SDL_JOYSTICK_HIDAPI_SWITCH"
536
+
537
+ /**
538
+ * \brief A variable controlling whether the HIDAPI driver for XBox controllers should be used.
539
+ *
540
+ * This variable can be set to the following values:
541
+ * "0" - HIDAPI driver is not used
542
+ * "1" - HIDAPI driver is used
543
+ *
544
+ * The default is the value of SDL_HINT_JOYSTICK_HIDAPI
545
+ */
546
+ #define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX"
547
+
548
+ /**
549
+ * \brief A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs
550
+ *
551
+ * The variable can be set to the following values:
552
+ * "0" - Do not scan for Steam Controllers
553
+ * "1" - Scan for Steam Controllers (the default)
554
+ *
555
+ * The default value is "1". This hint must be set before initializing the joystick subsystem.
556
+ */
557
+ #define SDL_HINT_ENABLE_STEAM_CONTROLLERS "SDL_ENABLE_STEAM_CONTROLLERS"
558
+
559
+
560
+ /**
561
+ * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it.
562
+ * This is a debugging aid for developers and not expected to be used by end users. The default is "1"
563
+ *
564
+ * This variable can be set to the following values:
565
+ * "0" - don't allow topmost
566
+ * "1" - allow topmost
567
+ */
568
+ #define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST"
569
+
570
+ /**
571
+ * \brief A variable that controls the timer resolution, in milliseconds.
572
+ *
573
+ * The higher resolution the timer, the more frequently the CPU services
574
+ * timer interrupts, and the more precise delays are, but this takes up
575
+ * power and CPU time. This hint is only used on Windows 7 and earlier.
576
+ *
577
+ * See this blog post for more information:
578
+ * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/
579
+ *
580
+ * If this variable is set to "0", the system timer resolution is not set.
581
+ *
582
+ * The default value is "1". This hint may be set at any time.
583
+ */
584
+ #define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION"
585
+
586
+
587
+ /**
588
+ * \brief A variable describing the content orientation on QtWayland-based platforms.
589
+ *
590
+ * On QtWayland platforms, windows are rotated client-side to allow for custom
591
+ * transitions. In order to correctly position overlays (e.g. volume bar) and
592
+ * gestures (e.g. events view, close/minimize gestures), the system needs to
593
+ * know in which orientation the application is currently drawing its contents.
594
+ *
595
+ * This does not cause the window to be rotated or resized, the application
596
+ * needs to take care of drawing the content in the right orientation (the
597
+ * framebuffer is always in portrait mode).
598
+ *
599
+ * This variable can be one of the following values:
600
+ * "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape"
601
+ */
602
+ #define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION"
603
+
604
+ /**
605
+ * \brief Flags to set on QtWayland windows to integrate with the native window manager.
606
+ *
607
+ * On QtWayland platforms, this hint controls the flags to set on the windows.
608
+ * For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures.
609
+ *
610
+ * This variable is a space-separated list of the following values (empty = no flags):
611
+ * "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager"
612
+ */
613
+ #define SDL_HINT_QTWAYLAND_WINDOW_FLAGS "SDL_QTWAYLAND_WINDOW_FLAGS"
614
+
615
+ /**
616
+ * \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size
617
+ *
618
+ * Use this hint in case you need to set SDL's threads stack size to other than the default.
619
+ * This is specially useful if you build SDL against a non glibc libc library (such as musl) which
620
+ * provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses).
621
+ * Support for this hint is currently available only in the pthread, Windows, and PSP backend.
622
+ *
623
+ * Instead of this hint, in 2.0.9 and later, you can use
624
+ * SDL_CreateThreadWithStackSize(). This hint only works with the classic
625
+ * SDL_CreateThread().
626
+ */
627
+ #define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE"
628
+
629
+ /**
630
+ * \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS)
631
+ */
632
+ #define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED"
633
+
634
+ /**
635
+ * \brief A variable that determines whether ctrl+click should generate a right-click event on Mac
636
+ *
637
+ * If present, holding ctrl while left clicking will generate a right click
638
+ * event when on Mac.
639
+ */
640
+ #define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
641
+
642
+ /**
643
+ * \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries
644
+ *
645
+ * SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It
646
+ * can use two different sets of binaries, those compiled by the user from source
647
+ * or those provided by the Chrome browser. In the later case, these binaries require
648
+ * that SDL loads a DLL providing the shader compiler.
649
+ *
650
+ * This variable can be set to the following values:
651
+ * "d3dcompiler_46.dll" - default, best for Vista or later.
652
+ * "d3dcompiler_43.dll" - for XP support.
653
+ * "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries.
654
+ *
655
+ */
656
+ #define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER"
657
+
658
+ /**
659
+ * \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p").
660
+ *
661
+ * If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has
662
+ * SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly
663
+ * created SDL_Window:
664
+ *
665
+ * 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is
666
+ * needed for example when sharing an OpenGL context across multiple windows.
667
+ *
668
+ * 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for
669
+ * OpenGL rendering.
670
+ *
671
+ * This variable can be set to the following values:
672
+ * The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should
673
+ * share a pixel format with.
674
+ */
675
+ #define SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"
676
+
677
+ /**
678
+ * \brief A URL to a WinRT app's privacy policy
679
+ *
680
+ * All network-enabled WinRT apps must make a privacy policy available to its
681
+ * users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be
682
+ * be available in the Windows Settings charm, as accessed from within the app.
683
+ * SDL provides code to add a URL-based link there, which can point to the app's
684
+ * privacy policy.
685
+ *
686
+ * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL
687
+ * before calling any SDL_Init() functions. The contents of the hint should
688
+ * be a valid URL. For example, "http://www.example.com".
689
+ *
690
+ * The default value is "", which will prevent SDL from adding a privacy policy
691
+ * link to the Settings charm. This hint should only be set during app init.
692
+ *
693
+ * The label text of an app's "Privacy Policy" link may be customized via another
694
+ * hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL.
695
+ *
696
+ * Please note that on Windows Phone, Microsoft does not provide standard UI
697
+ * for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL
698
+ * will not get used on that platform. Network-enabled phone apps should display
699
+ * their privacy policy through some other, in-app means.
700
+ */
701
+ #define SDL_HINT_WINRT_PRIVACY_POLICY_URL "SDL_WINRT_PRIVACY_POLICY_URL"
702
+
703
+ /** \brief Label text for a WinRT app's privacy policy link
704
+ *
705
+ * Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT,
706
+ * Microsoft mandates that this policy be available via the Windows Settings charm.
707
+ * SDL provides code to add a link there, with its label text being set via the
708
+ * optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL.
709
+ *
710
+ * Please note that a privacy policy's contents are not set via this hint. A separate
711
+ * hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the
712
+ * policy.
713
+ *
714
+ * The contents of this hint should be encoded as a UTF8 string.
715
+ *
716
+ * The default value is "Privacy Policy". This hint should only be set during app
717
+ * initialization, preferably before any calls to SDL_Init().
718
+ *
719
+ * For additional information on linking to a privacy policy, see the documentation for
720
+ * SDL_HINT_WINRT_PRIVACY_POLICY_URL.
721
+ */
722
+ #define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL "SDL_WINRT_PRIVACY_POLICY_LABEL"
723
+
724
+ /** \brief Allows back-button-press events on Windows Phone to be marked as handled
725
+ *
726
+ * Windows Phone devices typically feature a Back button. When pressed,
727
+ * the OS will emit back-button-press events, which apps are expected to
728
+ * handle in an appropriate manner. If apps do not explicitly mark these
729
+ * events as 'Handled', then the OS will invoke its default behavior for
730
+ * unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to
731
+ * terminate the app (and attempt to switch to the previous app, or to the
732
+ * device's home screen).
733
+ *
734
+ * Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL
735
+ * to mark back-button-press events as Handled, if and when one is sent to
736
+ * the app.
737
+ *
738
+ * Internally, Windows Phone sends back button events as parameters to
739
+ * special back-button-press callback functions. Apps that need to respond
740
+ * to back-button-press events are expected to register one or more
741
+ * callback functions for such, shortly after being launched (during the
742
+ * app's initialization phase). After the back button is pressed, the OS
743
+ * will invoke these callbacks. If the app's callback(s) do not explicitly
744
+ * mark the event as handled by the time they return, or if the app never
745
+ * registers one of these callback, the OS will consider the event
746
+ * un-handled, and it will apply its default back button behavior (terminate
747
+ * the app).
748
+ *
749
+ * SDL registers its own back-button-press callback with the Windows Phone
750
+ * OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN
751
+ * and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which
752
+ * it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON.
753
+ * If the hint's value is set to "1", the back button event's Handled
754
+ * property will get set to 'true'. If the hint's value is set to something
755
+ * else, or if it is unset, SDL will leave the event's Handled property
756
+ * alone. (By default, the OS sets this property to 'false', to note.)
757
+ *
758
+ * SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a
759
+ * back button is pressed, or can set it in direct-response to a back button
760
+ * being pressed.
761
+ *
762
+ * In order to get notified when a back button is pressed, SDL apps should
763
+ * register a callback function with SDL_AddEventWatch(), and have it listen
764
+ * for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK.
765
+ * (Alternatively, SDL_KEYUP events can be listened-for. Listening for
766
+ * either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON
767
+ * set by such a callback, will be applied to the OS' current
768
+ * back-button-press event.
769
+ *
770
+ * More details on back button behavior in Windows Phone apps can be found
771
+ * at the following page, on Microsoft's developer site:
772
+ * http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx
773
+ */
774
+ #define SDL_HINT_WINRT_HANDLE_BACK_BUTTON "SDL_WINRT_HANDLE_BACK_BUTTON"
775
+
776
+ /**
777
+ * \brief A variable that dictates policy for fullscreen Spaces on Mac OS X.
778
+ *
779
+ * This hint only applies to Mac OS X.
780
+ *
781
+ * The variable can be set to the following values:
782
+ * "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and
783
+ * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen"
784
+ * button on their titlebars).
785
+ * "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and
786
+ * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen"
787
+ * button on their titlebars).
788
+ *
789
+ * The default value is "1". Spaces are disabled regardless of this hint if
790
+ * the OS isn't at least Mac OS X Lion (10.7). This hint must be set before
791
+ * any windows are created.
792
+ */
793
+ #define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
794
+
795
+ /**
796
+ * \brief When set don't force the SDL app to become a foreground process
797
+ *
798
+ * This hint only applies to Mac OS X.
799
+ *
800
+ */
801
+ #define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP"
802
+
803
+ /**
804
+ * \brief Android APK expansion main file version. Should be a string number like "1", "2" etc.
805
+ *
806
+ * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION.
807
+ *
808
+ * If both hints were set then SDL_RWFromFile() will look into expansion files
809
+ * after a given relative path was not found in the internal storage and assets.
810
+ *
811
+ * By default this hint is not set and the APK expansion files are not searched.
812
+ */
813
+ #define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"
814
+
815
+ /**
816
+ * \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc.
817
+ *
818
+ * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION.
819
+ *
820
+ * If both hints were set then SDL_RWFromFile() will look into expansion files
821
+ * after a given relative path was not found in the internal storage and assets.
822
+ *
823
+ * By default this hint is not set and the APK expansion files are not searched.
824
+ */
825
+ #define SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"
826
+
827
+ /**
828
+ * \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events.
829
+ *
830
+ * The variable can be set to the following values:
831
+ * "0" - SDL_TEXTEDITING events are sent, and it is the application's
832
+ * responsibility to render the text from these events and
833
+ * differentiate it somehow from committed text. (default)
834
+ * "1" - If supported by the IME then SDL_TEXTEDITING events are not sent,
835
+ * and text that is being composed will be rendered in its own UI.
836
+ */
837
+ #define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING"
838
+
839
+ /**
840
+ * \brief A variable to control whether mouse and touch events are to be treated together or separately
841
+ *
842
+ * The variable can be set to the following values:
843
+ * "0" - Mouse events will be handled as touch events, and touch will raise fake mouse
844
+ * events. This is the behaviour of SDL <= 2.0.3. (default)
845
+ * "1" - Mouse events will be handled separately from pure touch events.
846
+ *
847
+ * The value of this hint is used at runtime, so it can be changed at any time.
848
+ */
849
+ #define SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH"
850
+
851
+ /**
852
+ * \brief A variable to control whether we trap the Android back button to handle it manually.
853
+ * This is necessary for the right mouse button to work on some Android devices, or
854
+ * to be able to trap the back button for use in your code reliably. If set to true,
855
+ * the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of
856
+ * SDL_SCANCODE_AC_BACK.
857
+ *
858
+ * The variable can be set to the following values:
859
+ * "0" - Back button will be handled as usual for system. (default)
860
+ * "1" - Back button will be trapped, allowing you to handle the key press
861
+ * manually. (This will also let right mouse click work on systems
862
+ * where the right mouse button functions as back.)
863
+ *
864
+ * The value of this hint is used at runtime, so it can be changed at any time.
865
+ */
866
+ #define SDL_HINT_ANDROID_TRAP_BACK_BUTTON "SDL_ANDROID_TRAP_BACK_BUTTON"
867
+
868
+ /**
869
+ * \brief A variable to control whether the return key on the soft keyboard
870
+ * should hide the soft keyboard on Android and iOS.
871
+ *
872
+ * The variable can be set to the following values:
873
+ * "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default)
874
+ * "1" - The return key will hide the keyboard.
875
+ *
876
+ * The value of this hint is used at runtime, so it can be changed at any time.
877
+ */
878
+ #define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME"
879
+
880
+ /**
881
+ * \brief override the binding element for keyboard inputs for Emscripten builds
882
+ *
883
+ * This hint only applies to the emscripten platform
884
+ *
885
+ * The variable can be one of
886
+ * "#window" - The javascript window object (this is the default)
887
+ * "#document" - The javascript document object
888
+ * "#screen" - the javascript window.screen object
889
+ * "#canvas" - the WebGL canvas element
890
+ * any other string without a leading # sign applies to the element on the page with that ID.
891
+ */
892
+ #define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
893
+
894
+ /**
895
+ * \brief Tell SDL not to catch the SIGINT or SIGTERM signals.
896
+ *
897
+ * This hint only applies to Unix-like platforms.
898
+ *
899
+ * The variable can be set to the following values:
900
+ * "0" - SDL will install a SIGINT and SIGTERM handler, and when it
901
+ * catches a signal, convert it into an SDL_QUIT event.
902
+ * "1" - SDL will not install a signal handler at all.
903
+ */
904
+ #define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS"
905
+
906
+ /**
907
+ * \brief Tell SDL not to generate window-close events for Alt+F4 on Windows.
908
+ *
909
+ * The variable can be set to the following values:
910
+ * "0" - SDL will generate a window-close event when it sees Alt+F4.
911
+ * "1" - SDL will only do normal key handling for Alt+F4.
912
+ */
913
+ #define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"
914
+
915
+ /**
916
+ * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs.
917
+ *
918
+ * The bitmap header version 4 is required for proper alpha channel support and
919
+ * SDL will use it when required. Should this not be desired, this hint can
920
+ * force the use of the 40 byte header version which is supported everywhere.
921
+ *
922
+ * The variable can be set to the following values:
923
+ * "0" - Surfaces with a colorkey or an alpha channel are saved to a
924
+ * 32-bit BMP file with an alpha mask. SDL will use the bitmap
925
+ * header version 4 and set the alpha mask accordingly.
926
+ * "1" - Surfaces with a colorkey or an alpha channel are saved to a
927
+ * 32-bit BMP file without an alpha mask. The alpha channel data
928
+ * will be in the file, but applications are going to ignore it.
929
+ *
930
+ * The default value is "0".
931
+ */
932
+ #define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT"
933
+
934
+ /**
935
+ * \brief Tell SDL not to name threads on Windows with the 0x406D1388 Exception.
936
+ * The 0x406D1388 Exception is a trick used to inform Visual Studio of a
937
+ * thread's name, but it tends to cause problems with other debuggers,
938
+ * and the .NET runtime. Note that SDL 2.0.6 and later will still use
939
+ * the (safer) SetThreadDescription API, introduced in the Windows 10
940
+ * Creators Update, if available.
941
+ *
942
+ * The variable can be set to the following values:
943
+ * "0" - SDL will raise the 0x406D1388 Exception to name threads.
944
+ * This is the default behavior of SDL <= 2.0.4.
945
+ * "1" - SDL will not raise this exception, and threads will be unnamed. (default)
946
+ * This is necessary with .NET languages or debuggers that aren't Visual Studio.
947
+ */
948
+ #define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING"
949
+
950
+ /**
951
+ * \brief Tell SDL which Dispmanx layer to use on a Raspberry PI
952
+ *
953
+ * Also known as Z-order. The variable can take a negative or positive value.
954
+ * The default is 10000.
955
+ */
956
+ #define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER"
957
+
958
+ /**
959
+ * \brief Tell the video driver that we only want a double buffer.
960
+ *
961
+ * By default, most lowlevel 2D APIs will use a triple buffer scheme that
962
+ * wastes no CPU time on waiting for vsync after issuing a flip, but
963
+ * introduces a frame of latency. On the other hand, using a double buffer
964
+ * scheme instead is recommended for cases where low latency is an important
965
+ * factor because we save a whole frame of latency.
966
+ * We do so by waiting for vsync immediately after issuing a flip, usually just
967
+ * after eglSwapBuffers call in the backend's *_SwapWindow function.
968
+ *
969
+ * Since it's driver-specific, it's only supported where possible and
970
+ * implemented. Currently supported the following drivers:
971
+ * - KMSDRM (kmsdrm)
972
+ * - Raspberry Pi (raspberrypi)
973
+ */
974
+ #define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER"
975
+
976
+ /**
977
+ * \brief A variable controlling what driver to use for OpenGL ES contexts.
978
+ *
979
+ * On some platforms, currently Windows and X11, OpenGL drivers may support
980
+ * creating contexts with an OpenGL ES profile. By default SDL uses these
981
+ * profiles, when available, otherwise it attempts to load an OpenGL ES
982
+ * library, e.g. that provided by the ANGLE project. This variable controls
983
+ * whether SDL follows this default behaviour or will always load an
984
+ * OpenGL ES library.
985
+ *
986
+ * Circumstances where this is useful include
987
+ * - Testing an app with a particular OpenGL ES implementation, e.g ANGLE,
988
+ * or emulator, e.g. those from ARM, Imagination or Qualcomm.
989
+ * - Resolving OpenGL ES function addresses at link time by linking with
990
+ * the OpenGL ES library instead of querying them at run time with
991
+ * SDL_GL_GetProcAddress().
992
+ *
993
+ * Caution: for an application to work with the default behaviour across
994
+ * different OpenGL drivers it must query the OpenGL ES function
995
+ * addresses at run time using SDL_GL_GetProcAddress().
996
+ *
997
+ * This variable is ignored on most platforms because OpenGL ES is native
998
+ * or not supported.
999
+ *
1000
+ * This variable can be set to the following values:
1001
+ * "0" - Use ES profile of OpenGL, if available. (Default when not set.)
1002
+ * "1" - Load OpenGL ES library using the default library names.
1003
+ *
1004
+ */
1005
+ #define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER"
1006
+
1007
+ /**
1008
+ * \brief A variable controlling speed/quality tradeoff of audio resampling.
1009
+ *
1010
+ * If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ )
1011
+ * to handle audio resampling. There are different resampling modes available
1012
+ * that produce different levels of quality, using more CPU.
1013
+ *
1014
+ * If this hint isn't specified to a valid setting, or libsamplerate isn't
1015
+ * available, SDL will use the default, internal resampling algorithm.
1016
+ *
1017
+ * Note that this is currently only applicable to resampling audio that is
1018
+ * being written to a device for playback or audio being read from a device
1019
+ * for capture. SDL_AudioCVT always uses the default resampler (although this
1020
+ * might change for SDL 2.1).
1021
+ *
1022
+ * This hint is currently only checked at audio subsystem initialization.
1023
+ *
1024
+ * This variable can be set to the following values:
1025
+ *
1026
+ * "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast)
1027
+ * "1" or "fast" - Use fast, slightly higher quality resampling, if available
1028
+ * "2" or "medium" - Use medium quality resampling, if available
1029
+ * "3" or "best" - Use high quality resampling, if available
1030
+ */
1031
+ #define SDL_HINT_AUDIO_RESAMPLING_MODE "SDL_AUDIO_RESAMPLING_MODE"
1032
+
1033
+ /**
1034
+ * \brief A variable controlling the audio category on iOS and Mac OS X
1035
+ *
1036
+ * This variable can be set to the following values:
1037
+ *
1038
+ * "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default)
1039
+ * "playback" - Use the AVAudioSessionCategoryPlayback category
1040
+ *
1041
+ * For more information, see Apple's documentation:
1042
+ * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html
1043
+ */
1044
+ #define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY"
1045
+
1046
+ /**
1047
+ * \brief An enumeration of hint priorities
1048
+ */
1049
+ typedef enum
1050
+ {
1051
+ SDL_HINT_DEFAULT,
1052
+ SDL_HINT_NORMAL,
1053
+ SDL_HINT_OVERRIDE
1054
+ } SDL_HintPriority;
1055
+
1056
+
1057
+ /**
1058
+ * \brief Set a hint with a specific priority
1059
+ *
1060
+ * The priority controls the behavior when setting a hint that already
1061
+ * has a value. Hints will replace existing hints of their priority and
1062
+ * lower. Environment variables are considered to have override priority.
1063
+ *
1064
+ * \return SDL_TRUE if the hint was set, SDL_FALSE otherwise
1065
+ */
1066
+ extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name,
1067
+ const char *value,
1068
+ SDL_HintPriority priority);
1069
+
1070
+ /**
1071
+ * \brief Set a hint with normal priority
1072
+ *
1073
+ * \return SDL_TRUE if the hint was set, SDL_FALSE otherwise
1074
+ */
1075
+ extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name,
1076
+ const char *value);
1077
+
1078
+ /**
1079
+ * \brief Get a hint
1080
+ *
1081
+ * \return The string value of a hint variable.
1082
+ */
1083
+ extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name);
1084
+
1085
+ /**
1086
+ * \brief Get a hint
1087
+ *
1088
+ * \return The boolean value of a hint variable.
1089
+ */
1090
+ extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value);
1091
+
1092
+ /**
1093
+ * \brief type definition of the hint callback function.
1094
+ */
1095
+ typedef void (SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue);
1096
+
1097
+ /**
1098
+ * \brief Add a function to watch a particular hint
1099
+ *
1100
+ * \param name The hint to watch
1101
+ * \param callback The function to call when the hint value changes
1102
+ * \param userdata A pointer to pass to the callback function
1103
+ */
1104
+ extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name,
1105
+ SDL_HintCallback callback,
1106
+ void *userdata);
1107
+
1108
+ /**
1109
+ * \brief Remove a function watching a particular hint
1110
+ *
1111
+ * \param name The hint being watched
1112
+ * \param callback The function being called when the hint value changes
1113
+ * \param userdata A pointer being passed to the callback function
1114
+ */
1115
+ extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name,
1116
+ SDL_HintCallback callback,
1117
+ void *userdata);
1118
+
1119
+ /**
1120
+ * \brief Clear all hints
1121
+ *
1122
+ * This function is called during SDL_Quit() to free stored hints.
1123
+ */
1124
+ extern DECLSPEC void SDLCALL SDL_ClearHints(void);
1125
+
1126
+
1127
+ /* Ends C function definitions when using C++ */
1128
+ #ifdef __cplusplus
1129
+ }
1130
+ #endif
1131
+ #include "close_code.h"
1132
+
1133
+ #endif /* SDL_hints_h_ */
1134
+
1135
+ /* vi: set ts=4 sw=4 expandtab: */