ruby2d 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,115 @@
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
+ #ifndef SDL_timer_h_
23
+ #define SDL_timer_h_
24
+
25
+ /**
26
+ * \file SDL_timer.h
27
+ *
28
+ * Header for the SDL time management routines.
29
+ */
30
+
31
+ #include "SDL_stdinc.h"
32
+ #include "SDL_error.h"
33
+
34
+ #include "begin_code.h"
35
+ /* Set up for C function definitions, even when using C++ */
36
+ #ifdef __cplusplus
37
+ extern "C" {
38
+ #endif
39
+
40
+ /**
41
+ * \brief Get the number of milliseconds since the SDL library initialization.
42
+ *
43
+ * \note This value wraps if the program runs for more than ~49 days.
44
+ */
45
+ extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void);
46
+
47
+ /**
48
+ * \brief Compare SDL ticks values, and return true if A has passed B
49
+ *
50
+ * e.g. if you want to wait 100 ms, you could do this:
51
+ * Uint32 timeout = SDL_GetTicks() + 100;
52
+ * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) {
53
+ * ... do work until timeout has elapsed
54
+ * }
55
+ */
56
+ #define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0)
57
+
58
+ /**
59
+ * \brief Get the current value of the high resolution counter
60
+ */
61
+ extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void);
62
+
63
+ /**
64
+ * \brief Get the count per second of the high resolution counter
65
+ */
66
+ extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void);
67
+
68
+ /**
69
+ * \brief Wait a specified number of milliseconds before returning.
70
+ */
71
+ extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
72
+
73
+ /**
74
+ * Function prototype for the timer callback function.
75
+ *
76
+ * The callback function is passed the current timer interval and returns
77
+ * the next timer interval. If the returned value is the same as the one
78
+ * passed in, the periodic alarm continues, otherwise a new alarm is
79
+ * scheduled. If the callback returns 0, the periodic alarm is cancelled.
80
+ */
81
+ typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param);
82
+
83
+ /**
84
+ * Definition of the timer ID type.
85
+ */
86
+ typedef int SDL_TimerID;
87
+
88
+ /**
89
+ * \brief Add a new timer to the pool of timers already running.
90
+ *
91
+ * \return A timer ID, or 0 when an error occurs.
92
+ */
93
+ extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
94
+ SDL_TimerCallback callback,
95
+ void *param);
96
+
97
+ /**
98
+ * \brief Remove a timer knowing its ID.
99
+ *
100
+ * \return A boolean value indicating success or failure.
101
+ *
102
+ * \warning It is not safe to remove a timer multiple times.
103
+ */
104
+ extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id);
105
+
106
+
107
+ /* Ends C function definitions when using C++ */
108
+ #ifdef __cplusplus
109
+ }
110
+ #endif
111
+ #include "close_code.h"
112
+
113
+ #endif /* SDL_timer_h_ */
114
+
115
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,86 @@
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_touch.h
24
+ *
25
+ * Include file for SDL touch event handling.
26
+ */
27
+
28
+ #ifndef SDL_touch_h_
29
+ #define SDL_touch_h_
30
+
31
+ #include "SDL_stdinc.h"
32
+ #include "SDL_error.h"
33
+ #include "SDL_video.h"
34
+
35
+ #include "begin_code.h"
36
+ /* Set up for C function definitions, even when using C++ */
37
+ #ifdef __cplusplus
38
+ extern "C" {
39
+ #endif
40
+
41
+ typedef Sint64 SDL_TouchID;
42
+ typedef Sint64 SDL_FingerID;
43
+
44
+ typedef struct SDL_Finger
45
+ {
46
+ SDL_FingerID id;
47
+ float x;
48
+ float y;
49
+ float pressure;
50
+ } SDL_Finger;
51
+
52
+ /* Used as the device ID for mouse events simulated with touch input */
53
+ #define SDL_TOUCH_MOUSEID ((Uint32)-1)
54
+
55
+
56
+ /* Function prototypes */
57
+
58
+ /**
59
+ * \brief Get the number of registered touch devices.
60
+ */
61
+ extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void);
62
+
63
+ /**
64
+ * \brief Get the touch ID with the given index, or 0 if the index is invalid.
65
+ */
66
+ extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
67
+
68
+ /**
69
+ * \brief Get the number of active fingers for a given touch device.
70
+ */
71
+ extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID);
72
+
73
+ /**
74
+ * \brief Get the finger object of the given touch, with the given index.
75
+ */
76
+ extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index);
77
+
78
+ /* Ends C function definitions when using C++ */
79
+ #ifdef __cplusplus
80
+ }
81
+ #endif
82
+ #include "close_code.h"
83
+
84
+ #endif /* SDL_touch_h_ */
85
+
86
+ /* vi: set ts=4 sw=4 expandtab: */
@@ -0,0 +1,294 @@
1
+ /*
2
+ SDL_ttf: A companion library to SDL for working with TrueType (tm) fonts
3
+ Copyright (C) 2001-2019 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
+ /* This library is a wrapper around the excellent FreeType 2.0 library,
23
+ available at:
24
+ http://www.freetype.org/
25
+ */
26
+
27
+ /* Note: In many places, SDL_ttf will say "glyph" when it means "code point."
28
+ Unicode is hard, we learn as we go, and we apologize for adding to the
29
+ confusion. */
30
+
31
+ #ifndef SDL_TTF_H_
32
+ #define SDL_TTF_H_
33
+
34
+ #include "SDL.h"
35
+ #include "begin_code.h"
36
+
37
+ /* Set up for C function definitions, even when using C++ */
38
+ #ifdef __cplusplus
39
+ extern "C" {
40
+ #endif
41
+
42
+ /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
43
+ */
44
+ #define SDL_TTF_MAJOR_VERSION 2
45
+ #define SDL_TTF_MINOR_VERSION 0
46
+ #define SDL_TTF_PATCHLEVEL 15
47
+
48
+ /* This macro can be used to fill a version structure with the compile-time
49
+ * version of the SDL_ttf library.
50
+ */
51
+ #define SDL_TTF_VERSION(X) \
52
+ { \
53
+ (X)->major = SDL_TTF_MAJOR_VERSION; \
54
+ (X)->minor = SDL_TTF_MINOR_VERSION; \
55
+ (X)->patch = SDL_TTF_PATCHLEVEL; \
56
+ }
57
+
58
+ /* Backwards compatibility */
59
+ #define TTF_MAJOR_VERSION SDL_TTF_MAJOR_VERSION
60
+ #define TTF_MINOR_VERSION SDL_TTF_MINOR_VERSION
61
+ #define TTF_PATCHLEVEL SDL_TTF_PATCHLEVEL
62
+ #define TTF_VERSION(X) SDL_TTF_VERSION(X)
63
+
64
+ /**
65
+ * This is the version number macro for the current SDL_ttf version.
66
+ */
67
+ #define SDL_TTF_COMPILEDVERSION \
68
+ SDL_VERSIONNUM(SDL_TTF_MAJOR_VERSION, SDL_TTF_MINOR_VERSION, SDL_TTF_PATCHLEVEL)
69
+
70
+ /**
71
+ * This macro will evaluate to true if compiled with SDL_ttf at least X.Y.Z.
72
+ */
73
+ #define SDL_TTF_VERSION_ATLEAST(X, Y, Z) \
74
+ (SDL_TTF_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
75
+
76
+ /* Make sure this is defined (only available in newer SDL versions) */
77
+ #ifndef SDL_DEPRECATED
78
+ #define SDL_DEPRECATED
79
+ #endif
80
+
81
+ /* This function gets the version of the dynamically linked SDL_ttf library.
82
+ it should NOT be used to fill a version structure, instead you should
83
+ use the SDL_TTF_VERSION() macro.
84
+ */
85
+ extern DECLSPEC const SDL_version * SDLCALL TTF_Linked_Version(void);
86
+
87
+ /* ZERO WIDTH NO-BREAKSPACE (Unicode byte order mark) */
88
+ #define UNICODE_BOM_NATIVE 0xFEFF
89
+ #define UNICODE_BOM_SWAPPED 0xFFFE
90
+
91
+ /* This function tells the library whether UNICODE text is generally
92
+ byteswapped. A UNICODE BOM character in a string will override
93
+ this setting for the remainder of that string.
94
+ */
95
+ extern DECLSPEC void SDLCALL TTF_ByteSwappedUNICODE(int swapped);
96
+
97
+ /* The internal structure containing font information */
98
+ typedef struct _TTF_Font TTF_Font;
99
+
100
+ /* Initialize the TTF engine - returns 0 if successful, -1 on error */
101
+ extern DECLSPEC int SDLCALL TTF_Init(void);
102
+
103
+ /* Open a font file and create a font of the specified point size.
104
+ * Some .fon fonts will have several sizes embedded in the file, so the
105
+ * point size becomes the index of choosing which size. If the value
106
+ * is too high, the last indexed size will be the default. */
107
+ extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFont(const char *file, int ptsize);
108
+ extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontIndex(const char *file, int ptsize, long index);
109
+ extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontRW(SDL_RWops *src, int freesrc, int ptsize);
110
+ extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontIndexRW(SDL_RWops *src, int freesrc, int ptsize, long index);
111
+
112
+ /* Set and retrieve the font style */
113
+ #define TTF_STYLE_NORMAL 0x00
114
+ #define TTF_STYLE_BOLD 0x01
115
+ #define TTF_STYLE_ITALIC 0x02
116
+ #define TTF_STYLE_UNDERLINE 0x04
117
+ #define TTF_STYLE_STRIKETHROUGH 0x08
118
+ extern DECLSPEC int SDLCALL TTF_GetFontStyle(const TTF_Font *font);
119
+ extern DECLSPEC void SDLCALL TTF_SetFontStyle(TTF_Font *font, int style);
120
+ extern DECLSPEC int SDLCALL TTF_GetFontOutline(const TTF_Font *font);
121
+ extern DECLSPEC void SDLCALL TTF_SetFontOutline(TTF_Font *font, int outline);
122
+
123
+ /* Set and retrieve FreeType hinter settings */
124
+ #define TTF_HINTING_NORMAL 0
125
+ #define TTF_HINTING_LIGHT 1
126
+ #define TTF_HINTING_MONO 2
127
+ #define TTF_HINTING_NONE 3
128
+ extern DECLSPEC int SDLCALL TTF_GetFontHinting(const TTF_Font *font);
129
+ extern DECLSPEC void SDLCALL TTF_SetFontHinting(TTF_Font *font, int hinting);
130
+
131
+ /* Get the total height of the font - usually equal to point size */
132
+ extern DECLSPEC int SDLCALL TTF_FontHeight(const TTF_Font *font);
133
+
134
+ /* Get the offset from the baseline to the top of the font
135
+ This is a positive value, relative to the baseline.
136
+ */
137
+ extern DECLSPEC int SDLCALL TTF_FontAscent(const TTF_Font *font);
138
+
139
+ /* Get the offset from the baseline to the bottom of the font
140
+ This is a negative value, relative to the baseline.
141
+ */
142
+ extern DECLSPEC int SDLCALL TTF_FontDescent(const TTF_Font *font);
143
+
144
+ /* Get the recommended spacing between lines of text for this font */
145
+ extern DECLSPEC int SDLCALL TTF_FontLineSkip(const TTF_Font *font);
146
+
147
+ /* Get/Set whether or not kerning is allowed for this font */
148
+ extern DECLSPEC int SDLCALL TTF_GetFontKerning(const TTF_Font *font);
149
+ extern DECLSPEC void SDLCALL TTF_SetFontKerning(TTF_Font *font, int allowed);
150
+
151
+ /* Get the number of faces of the font */
152
+ extern DECLSPEC long SDLCALL TTF_FontFaces(const TTF_Font *font);
153
+
154
+ /* Get the font face attributes, if any */
155
+ extern DECLSPEC int SDLCALL TTF_FontFaceIsFixedWidth(const TTF_Font *font);
156
+ extern DECLSPEC char * SDLCALL TTF_FontFaceFamilyName(const TTF_Font *font);
157
+ extern DECLSPEC char * SDLCALL TTF_FontFaceStyleName(const TTF_Font *font);
158
+
159
+ /* Check wether a glyph is provided by the font or not */
160
+ extern DECLSPEC int SDLCALL TTF_GlyphIsProvided(const TTF_Font *font, Uint16 ch);
161
+
162
+ /* Get the metrics (dimensions) of a glyph
163
+ To understand what these metrics mean, here is a useful link:
164
+ http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html
165
+ */
166
+ extern DECLSPEC int SDLCALL TTF_GlyphMetrics(TTF_Font *font, Uint16 ch,
167
+ int *minx, int *maxx,
168
+ int *miny, int *maxy, int *advance);
169
+
170
+ /* Get the dimensions of a rendered string of text */
171
+ extern DECLSPEC int SDLCALL TTF_SizeText(TTF_Font *font, const char *text, int *w, int *h);
172
+ extern DECLSPEC int SDLCALL TTF_SizeUTF8(TTF_Font *font, const char *text, int *w, int *h);
173
+ extern DECLSPEC int SDLCALL TTF_SizeUNICODE(TTF_Font *font, const Uint16 *text, int *w, int *h);
174
+
175
+ /* Create an 8-bit palettized surface and render the given text at
176
+ fast quality with the given font and color. The 0 pixel is the
177
+ colorkey, giving a transparent background, and the 1 pixel is set
178
+ to the text color.
179
+ This function returns the new surface, or NULL if there was an error.
180
+ */
181
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Solid(TTF_Font *font,
182
+ const char *text, SDL_Color fg);
183
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Solid(TTF_Font *font,
184
+ const char *text, SDL_Color fg);
185
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Solid(TTF_Font *font,
186
+ const Uint16 *text, SDL_Color fg);
187
+
188
+ /* Create an 8-bit palettized surface and render the given glyph at
189
+ fast quality with the given font and color. The 0 pixel is the
190
+ colorkey, giving a transparent background, and the 1 pixel is set
191
+ to the text color. The glyph is rendered without any padding or
192
+ centering in the X direction, and aligned normally in the Y direction.
193
+ This function returns the new surface, or NULL if there was an error.
194
+ */
195
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Solid(TTF_Font *font,
196
+ Uint16 ch, SDL_Color fg);
197
+
198
+ /* Create an 8-bit palettized surface and render the given text at
199
+ high quality with the given font and colors. The 0 pixel is background,
200
+ while other pixels have varying degrees of the foreground color.
201
+ This function returns the new surface, or NULL if there was an error.
202
+ */
203
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Shaded(TTF_Font *font,
204
+ const char *text, SDL_Color fg, SDL_Color bg);
205
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Shaded(TTF_Font *font,
206
+ const char *text, SDL_Color fg, SDL_Color bg);
207
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Shaded(TTF_Font *font,
208
+ const Uint16 *text, SDL_Color fg, SDL_Color bg);
209
+
210
+ /* Create an 8-bit palettized surface and render the given glyph at
211
+ high quality with the given font and colors. The 0 pixel is background,
212
+ while other pixels have varying degrees of the foreground color.
213
+ The glyph is rendered without any padding or centering in the X
214
+ direction, and aligned normally in the Y direction.
215
+ This function returns the new surface, or NULL if there was an error.
216
+ */
217
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Shaded(TTF_Font *font,
218
+ Uint16 ch, SDL_Color fg, SDL_Color bg);
219
+
220
+ /* Create a 32-bit ARGB surface and render the given text at high quality,
221
+ using alpha blending to dither the font with the given color.
222
+ This function returns the new surface, or NULL if there was an error.
223
+ */
224
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended(TTF_Font *font,
225
+ const char *text, SDL_Color fg);
226
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Blended(TTF_Font *font,
227
+ const char *text, SDL_Color fg);
228
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Blended(TTF_Font *font,
229
+ const Uint16 *text, SDL_Color fg);
230
+
231
+
232
+ /* Create a 32-bit ARGB surface and render the given text at high quality,
233
+ using alpha blending to dither the font with the given color.
234
+ Text is wrapped to multiple lines on line endings and on word boundaries
235
+ if it extends beyond wrapLength in pixels.
236
+ This function returns the new surface, or NULL if there was an error.
237
+ */
238
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended_Wrapped(TTF_Font *font,
239
+ const char *text, SDL_Color fg, Uint32 wrapLength);
240
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Blended_Wrapped(TTF_Font *font,
241
+ const char *text, SDL_Color fg, Uint32 wrapLength);
242
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Blended_Wrapped(TTF_Font *font,
243
+ const Uint16 *text, SDL_Color fg, Uint32 wrapLength);
244
+
245
+ /* Create a 32-bit ARGB surface and render the given glyph at high quality,
246
+ using alpha blending to dither the font with the given color.
247
+ The glyph is rendered without any padding or centering in the X
248
+ direction, and aligned normally in the Y direction.
249
+ This function returns the new surface, or NULL if there was an error.
250
+ */
251
+ extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Blended(TTF_Font *font,
252
+ Uint16 ch, SDL_Color fg);
253
+
254
+ /* For compatibility with previous versions, here are the old functions */
255
+ #define TTF_RenderText(font, text, fg, bg) \
256
+ TTF_RenderText_Shaded(font, text, fg, bg)
257
+ #define TTF_RenderUTF8(font, text, fg, bg) \
258
+ TTF_RenderUTF8_Shaded(font, text, fg, bg)
259
+ #define TTF_RenderUNICODE(font, text, fg, bg) \
260
+ TTF_RenderUNICODE_Shaded(font, text, fg, bg)
261
+
262
+ /* Close an opened font file */
263
+ extern DECLSPEC void SDLCALL TTF_CloseFont(TTF_Font *font);
264
+
265
+ /* De-initialize the TTF engine */
266
+ extern DECLSPEC void SDLCALL TTF_Quit(void);
267
+
268
+ /* Check if the TTF engine is initialized */
269
+ extern DECLSPEC int SDLCALL TTF_WasInit(void);
270
+
271
+ /* Get the kerning size of two glyphs indices */
272
+ /* DEPRECATED: this function requires FreeType font indexes, not glyphs,
273
+ by accident, which we don't expose through this API, so it could give
274
+ wildly incorrect results, especially with non-ASCII values.
275
+ Going forward, please use TTF_GetFontKerningSizeGlyphs() instead, which
276
+ does what you probably expected this function to do. */
277
+ extern DECLSPEC int TTF_GetFontKerningSize(TTF_Font *font, int prev_index, int index) SDL_DEPRECATED;
278
+
279
+ /* Get the kerning size of two glyphs */
280
+ extern DECLSPEC int TTF_GetFontKerningSizeGlyphs(TTF_Font *font, Uint16 previous_ch, Uint16 ch);
281
+
282
+ /* We'll use SDL for reporting errors */
283
+ #define TTF_SetError SDL_SetError
284
+ #define TTF_GetError SDL_GetError
285
+
286
+ /* Ends C function definitions when using C++ */
287
+ #ifdef __cplusplus
288
+ }
289
+ #endif
290
+ #include "close_code.h"
291
+
292
+ #endif /* SDL_TTF_H_ */
293
+
294
+ /* vi: set ts=4 sw=4 expandtab: */