gosu 0.15.2 → 1.1.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. checksums.yaml +4 -4
  2. data/dependencies/SDL/include/SDL.h +138 -0
  3. data/dependencies/SDL/include/SDL_assert.h +293 -0
  4. data/dependencies/SDL/include/SDL_atomic.h +295 -0
  5. data/dependencies/SDL/include/SDL_audio.h +859 -0
  6. data/dependencies/SDL/include/SDL_bits.h +121 -0
  7. data/dependencies/SDL/include/SDL_blendmode.h +123 -0
  8. data/dependencies/SDL/include/SDL_clipboard.h +71 -0
  9. data/dependencies/SDL/include/SDL_config.h +55 -0
  10. data/dependencies/SDL/include/SDL_config_android.h +182 -0
  11. data/dependencies/SDL/include/SDL_config_iphoneos.h +207 -0
  12. data/dependencies/SDL/include/SDL_config_macosx.h +266 -0
  13. data/dependencies/SDL/include/SDL_config_minimal.h +85 -0
  14. data/dependencies/SDL/include/SDL_config_os2.h +188 -0
  15. data/dependencies/SDL/include/SDL_config_pandora.h +135 -0
  16. data/dependencies/SDL/include/SDL_config_psp.h +165 -0
  17. data/dependencies/SDL/include/SDL_config_windows.h +288 -0
  18. data/dependencies/SDL/include/SDL_config_winrt.h +243 -0
  19. data/dependencies/SDL/include/SDL_config_wiz.h +149 -0
  20. data/dependencies/SDL/include/SDL_copying.h +20 -0
  21. data/dependencies/SDL/include/SDL_cpuinfo.h +299 -0
  22. data/dependencies/SDL/include/SDL_egl.h +1676 -0
  23. data/dependencies/SDL/include/SDL_endian.h +263 -0
  24. data/dependencies/SDL/include/SDL_error.h +112 -0
  25. data/dependencies/SDL/include/SDL_events.h +827 -0
  26. data/dependencies/SDL/include/SDL_filesystem.h +136 -0
  27. data/dependencies/SDL/include/SDL_gamecontroller.h +541 -0
  28. data/dependencies/SDL/include/SDL_gesture.h +87 -0
  29. data/dependencies/SDL/include/SDL_haptic.h +1247 -0
  30. data/dependencies/SDL/include/SDL_hints.h +1578 -0
  31. data/dependencies/SDL/include/SDL_joystick.h +499 -0
  32. data/dependencies/SDL/include/SDL_keyboard.h +217 -0
  33. data/dependencies/SDL/include/SDL_keycode.h +351 -0
  34. data/dependencies/SDL/include/SDL_loadso.h +81 -0
  35. data/dependencies/SDL/include/SDL_locale.h +101 -0
  36. data/dependencies/SDL/include/SDL_log.h +211 -0
  37. data/dependencies/SDL/include/SDL_main.h +180 -0
  38. data/dependencies/SDL/include/SDL_messagebox.h +146 -0
  39. data/dependencies/SDL/include/SDL_metal.h +117 -0
  40. data/dependencies/SDL/include/SDL_misc.h +75 -0
  41. data/dependencies/SDL/include/SDL_mouse.h +302 -0
  42. data/dependencies/SDL/include/SDL_mutex.h +251 -0
  43. data/dependencies/SDL/include/SDL_name.h +33 -0
  44. data/dependencies/SDL/include/SDL_opengl.h +2183 -0
  45. data/dependencies/SDL/include/SDL_opengl_glext.h +11180 -0
  46. data/dependencies/SDL/include/SDL_opengles.h +39 -0
  47. data/dependencies/SDL/include/SDL_opengles2.h +52 -0
  48. data/dependencies/SDL/include/SDL_opengles2_gl2.h +621 -0
  49. data/dependencies/SDL/include/SDL_opengles2_gl2ext.h +2050 -0
  50. data/dependencies/SDL/include/SDL_opengles2_gl2platform.h +30 -0
  51. data/dependencies/SDL/include/SDL_opengles2_khrplatform.h +282 -0
  52. data/dependencies/SDL/include/SDL_pixels.h +479 -0
  53. data/dependencies/SDL/include/SDL_platform.h +198 -0
  54. data/dependencies/SDL/include/SDL_power.h +75 -0
  55. data/dependencies/SDL/include/SDL_quit.h +58 -0
  56. data/dependencies/SDL/include/SDL_rect.h +174 -0
  57. data/dependencies/SDL/include/SDL_render.h +1158 -0
  58. data/dependencies/SDL/include/SDL_revision.h +2 -0
  59. data/dependencies/SDL/include/SDL_rwops.h +283 -0
  60. data/dependencies/SDL/include/SDL_scancode.h +413 -0
  61. data/dependencies/SDL/include/SDL_sensor.h +267 -0
  62. data/dependencies/SDL/include/SDL_shape.h +144 -0
  63. data/dependencies/SDL/include/SDL_stdinc.h +647 -0
  64. data/dependencies/SDL/include/SDL_surface.h +563 -0
  65. data/dependencies/SDL/include/SDL_system.h +325 -0
  66. data/dependencies/SDL/include/SDL_syswm.h +354 -0
  67. data/dependencies/SDL/include/SDL_test.h +69 -0
  68. data/dependencies/SDL/include/SDL_test_assert.h +105 -0
  69. data/dependencies/SDL/include/SDL_test_common.h +218 -0
  70. data/dependencies/SDL/include/SDL_test_compare.h +69 -0
  71. data/dependencies/SDL/include/SDL_test_crc32.h +124 -0
  72. data/dependencies/SDL/include/SDL_test_font.h +81 -0
  73. data/dependencies/SDL/include/SDL_test_fuzzer.h +384 -0
  74. data/dependencies/SDL/include/SDL_test_harness.h +134 -0
  75. data/dependencies/SDL/include/SDL_test_images.h +78 -0
  76. data/dependencies/SDL/include/SDL_test_log.h +67 -0
  77. data/dependencies/SDL/include/SDL_test_md5.h +129 -0
  78. data/dependencies/SDL/include/SDL_test_memory.h +63 -0
  79. data/dependencies/SDL/include/SDL_test_random.h +115 -0
  80. data/dependencies/SDL/include/SDL_thread.h +366 -0
  81. data/dependencies/SDL/include/SDL_timer.h +115 -0
  82. data/dependencies/SDL/include/SDL_touch.h +102 -0
  83. data/dependencies/SDL/include/SDL_types.h +29 -0
  84. data/dependencies/SDL/include/SDL_version.h +162 -0
  85. data/dependencies/SDL/include/SDL_video.h +1282 -0
  86. data/dependencies/SDL/include/SDL_vulkan.h +276 -0
  87. data/dependencies/SDL/include/begin_code.h +166 -0
  88. data/dependencies/SDL/include/close_code.h +40 -0
  89. data/dependencies/SDL/lib/x64/libSDL2.dll.a +0 -0
  90. data/dependencies/SDL/lib/x86/libSDL2.dll.a +0 -0
  91. data/dependencies/SDL_sound/SDL_sound.c +795 -0
  92. data/dependencies/SDL_sound/SDL_sound.h +725 -0
  93. data/dependencies/SDL_sound/SDL_sound_aiff.c +537 -0
  94. data/dependencies/SDL_sound/SDL_sound_au.c +352 -0
  95. data/dependencies/SDL_sound/SDL_sound_coreaudio.c +747 -0
  96. data/dependencies/SDL_sound/SDL_sound_flac.c +182 -0
  97. data/dependencies/SDL_sound/SDL_sound_internal.h +304 -0
  98. data/dependencies/SDL_sound/SDL_sound_modplug.c +228 -0
  99. data/dependencies/SDL_sound/SDL_sound_mp3.c +184 -0
  100. data/dependencies/SDL_sound/SDL_sound_raw.c +164 -0
  101. data/dependencies/SDL_sound/SDL_sound_shn.c +1309 -0
  102. data/dependencies/SDL_sound/SDL_sound_voc.c +550 -0
  103. data/dependencies/SDL_sound/SDL_sound_vorbis.c +223 -0
  104. data/dependencies/SDL_sound/SDL_sound_wav.c +783 -0
  105. data/dependencies/SDL_sound/dr_flac.h +5906 -0
  106. data/dependencies/SDL_sound/dr_mp3.h +2832 -0
  107. data/dependencies/SDL_sound/libmodplug/fastmix.c +1748 -0
  108. data/dependencies/SDL_sound/libmodplug/libmodplug.h +1001 -0
  109. data/dependencies/SDL_sound/libmodplug/load_669.c +188 -0
  110. data/dependencies/SDL_sound/libmodplug/load_abc.c +4725 -0
  111. data/dependencies/SDL_sound/libmodplug/load_amf.c +403 -0
  112. data/dependencies/SDL_sound/libmodplug/load_ams.c +587 -0
  113. data/dependencies/SDL_sound/libmodplug/load_dbm.c +357 -0
  114. data/dependencies/SDL_sound/libmodplug/load_dmf.c +531 -0
  115. data/dependencies/SDL_sound/libmodplug/load_dsm.c +232 -0
  116. data/dependencies/SDL_sound/libmodplug/load_far.c +253 -0
  117. data/dependencies/SDL_sound/libmodplug/load_it.c +796 -0
  118. data/dependencies/SDL_sound/libmodplug/load_mdl.c +488 -0
  119. data/dependencies/SDL_sound/libmodplug/load_med.c +757 -0
  120. data/dependencies/SDL_sound/libmodplug/load_mid.c +1405 -0
  121. data/dependencies/SDL_sound/libmodplug/load_mod.c +269 -0
  122. data/dependencies/SDL_sound/libmodplug/load_mt2.c +546 -0
  123. data/dependencies/SDL_sound/libmodplug/load_mtm.c +142 -0
  124. data/dependencies/SDL_sound/libmodplug/load_okt.c +192 -0
  125. data/dependencies/SDL_sound/libmodplug/load_pat.c +1143 -0
  126. data/dependencies/SDL_sound/libmodplug/load_pat.h +25 -0
  127. data/dependencies/SDL_sound/libmodplug/load_psm.c +350 -0
  128. data/dependencies/SDL_sound/libmodplug/load_ptm.c +204 -0
  129. data/dependencies/SDL_sound/libmodplug/load_s3m.c +325 -0
  130. data/dependencies/SDL_sound/libmodplug/load_stm.c +180 -0
  131. data/dependencies/SDL_sound/libmodplug/load_ult.c +206 -0
  132. data/dependencies/SDL_sound/libmodplug/load_umx.c +51 -0
  133. data/dependencies/SDL_sound/libmodplug/load_xm.c +554 -0
  134. data/dependencies/SDL_sound/libmodplug/mmcmp.c +382 -0
  135. data/dependencies/SDL_sound/libmodplug/modplug.c +170 -0
  136. data/dependencies/SDL_sound/libmodplug/modplug.h +90 -0
  137. data/dependencies/SDL_sound/libmodplug/snd_dsp.c +301 -0
  138. data/dependencies/SDL_sound/libmodplug/snd_flt.c +63 -0
  139. data/dependencies/SDL_sound/libmodplug/snd_fx.c +2350 -0
  140. data/dependencies/SDL_sound/libmodplug/sndfile.c +1169 -0
  141. data/dependencies/SDL_sound/libmodplug/sndmix.c +1034 -0
  142. data/dependencies/SDL_sound/libmodplug/tables.h +371 -0
  143. data/{src/stb_vorbis.c → dependencies/SDL_sound/stb_vorbis.h} +143 -78
  144. data/dependencies/al_soft/AL/al.h +655 -0
  145. data/dependencies/al_soft/AL/alc.h +270 -0
  146. data/dependencies/al_soft/AL/alext.h +585 -0
  147. data/dependencies/al_soft/AL/efx-creative.h +3 -0
  148. data/dependencies/al_soft/AL/efx-presets.h +402 -0
  149. data/dependencies/al_soft/AL/efx.h +762 -0
  150. data/dependencies/al_soft/x64/libOpenAL32.dll.a +0 -0
  151. data/dependencies/al_soft/x86/libOpenAL32.dll.a +0 -0
  152. data/{src → dependencies/stb}/stb_image.h +330 -127
  153. data/{src → dependencies/stb}/stb_image_write.h +156 -85
  154. data/{src → dependencies/stb}/stb_truetype.h +192 -69
  155. data/{src → dependencies/utf8proc}/utf8proc.c +0 -0
  156. data/{src → dependencies/utf8proc}/utf8proc.h +0 -0
  157. data/{src → dependencies/utf8proc}/utf8proc_data.h +0 -0
  158. data/ext/gosu/extconf.rb +53 -39
  159. data/{Gosu → include/Gosu}/Audio.hpp +6 -8
  160. data/include/Gosu/Bitmap.hpp +100 -0
  161. data/{Gosu → include/Gosu}/Buttons.hpp +104 -44
  162. data/{Gosu → include/Gosu}/Color.hpp +0 -0
  163. data/{Gosu → include/Gosu}/Directories.hpp +0 -0
  164. data/{Gosu → include/Gosu}/Font.hpp +1 -1
  165. data/{Gosu → include/Gosu}/Fwd.hpp +0 -5
  166. data/{Gosu → include/Gosu}/Gosu.hpp +0 -0
  167. data/{Gosu → include/Gosu}/Graphics.hpp +0 -0
  168. data/{Gosu → include/Gosu}/GraphicsBase.hpp +0 -0
  169. data/{Gosu → include/Gosu}/IO.hpp +0 -0
  170. data/{Gosu → include/Gosu}/Image.hpp +7 -6
  171. data/{Gosu → include/Gosu}/ImageData.hpp +0 -0
  172. data/{Gosu → include/Gosu}/Input.hpp +39 -51
  173. data/{Gosu → include/Gosu}/Inspection.hpp +0 -0
  174. data/{Gosu → include/Gosu}/Math.hpp +0 -0
  175. data/{Gosu → include/Gosu}/Platform.hpp +0 -0
  176. data/{Gosu → include/Gosu}/Text.hpp +0 -0
  177. data/{Gosu → include/Gosu}/TextInput.hpp +0 -0
  178. data/{Gosu → include/Gosu}/Timing.hpp +0 -0
  179. data/{Gosu → include/Gosu}/Utility.hpp +15 -4
  180. data/{Gosu → include/Gosu}/Version.hpp +3 -3
  181. data/{Gosu → include/Gosu}/Window.hpp +46 -34
  182. data/lib/OpenAL32.dll +0 -0
  183. data/lib/SDL2.dll +0 -0
  184. data/lib/gosu.rb +0 -3
  185. data/lib/gosu/patches.rb +0 -23
  186. data/lib/gosu/preview.rb +1 -3
  187. data/lib/gosu/swig_patches.rb +14 -12
  188. data/lib64/OpenAL32.dll +0 -0
  189. data/lib64/SDL2.dll +0 -0
  190. data/rdoc/gosu.rb +112 -23
  191. data/src/Audio.cpp +50 -224
  192. data/src/AudioFile.hpp +20 -37
  193. data/src/AudioFileAudioToolbox.cpp +237 -0
  194. data/src/AudioFileSDLSound.cpp +147 -0
  195. data/src/AudioImpl.cpp +3 -12
  196. data/src/AudioImpl.hpp +3 -1
  197. data/src/Bitmap.cpp +85 -83
  198. data/src/BitmapIO.cpp +52 -58
  199. data/src/Font.cpp +3 -1
  200. data/src/Graphics.cpp +7 -4
  201. data/src/Image.cpp +13 -16
  202. data/src/Input.cpp +412 -164
  203. data/src/LargeImageData.cpp +1 -1
  204. data/src/MarkupParser.cpp +2 -1
  205. data/src/Resolution.cpp +8 -8
  206. data/src/RubyGosu.cxx +1017 -196
  207. data/src/RubyGosu.h +4 -2
  208. data/src/TexChunk.cpp +1 -1
  209. data/src/TextBuilder.cpp +3 -1
  210. data/src/Texture.cpp +1 -1
  211. data/src/TrueTypeFont.cpp +1 -1
  212. data/src/TrueTypeFontWin.cpp +3 -3
  213. data/src/Utility.cpp +11 -7
  214. data/src/Window.cpp +90 -62
  215. data/src/WindowUIKit.cpp +21 -9
  216. metadata +194 -65
  217. data/Gosu/AutoLink.hpp +0 -14
  218. data/Gosu/Bitmap.hpp +0 -113
  219. data/Gosu/Channel.h +0 -25
  220. data/Gosu/Color.h +0 -38
  221. data/Gosu/Font.h +0 -36
  222. data/Gosu/Gosu.h +0 -79
  223. data/Gosu/Image.h +0 -54
  224. data/Gosu/Sample.h +0 -19
  225. data/Gosu/Song.h +0 -24
  226. data/Gosu/TextInput.h +0 -30
  227. data/Gosu/Window.h +0 -61
  228. data/lib/gosu/zen.rb +0 -89
  229. data/src/AudioToolboxFile.hpp +0 -210
  230. data/src/ChannelWrapper.cpp +0 -50
  231. data/src/ColorWrapper.cpp +0 -126
  232. data/src/Constants.cpp +0 -287
  233. data/src/FontWrapper.cpp +0 -74
  234. data/src/GosuWrapper.cpp +0 -232
  235. data/src/ImageWrapper.cpp +0 -168
  236. data/src/MPEGFile.hpp +0 -90
  237. data/src/OggFile.hpp +0 -92
  238. data/src/SampleWrapper.cpp +0 -30
  239. data/src/SndFile.hpp +0 -174
  240. data/src/SongWrapper.cpp +0 -52
  241. data/src/TextInputWrapper.cpp +0 -101
  242. data/src/WinMain.cpp +0 -64
  243. data/src/WindowWrapper.cpp +0 -289
@@ -1,74 +0,0 @@
1
- #include <Gosu/Gosu.hpp>
2
-
3
- extern "C" {
4
- #include <Gosu/Image.h>
5
- #include <Gosu/Font.h>
6
-
7
- Gosu_Font *Gosu_Font_create(int height, const char *name, unsigned flags)
8
- {
9
- return reinterpret_cast<Gosu_Font *>(new Gosu::Font(height, name, flags));
10
- }
11
-
12
- const char *Gosu_Font_name(Gosu_Font *font)
13
- {
14
- return reinterpret_cast<Gosu::Font *>(font)->name().c_str();
15
- }
16
-
17
- int Gosu_Font_height(Gosu_Font *font)
18
- {
19
- return reinterpret_cast<Gosu::Font *>(font)->height();
20
- }
21
-
22
- unsigned Gosu_Font_flags(Gosu_Font *font)
23
- {
24
- return reinterpret_cast<Gosu::Font *>(font)->flags();
25
- }
26
-
27
- double Gosu_Font_text_width(Gosu_Font *font, const char *text)
28
- {
29
- return reinterpret_cast<Gosu::Font *>(font)->text_width(text);
30
- }
31
-
32
- double Gosu_Font_markup_width(Gosu_Font *font, const char *text)
33
- {
34
- return reinterpret_cast<Gosu::Font *>(font)->markup_width(text);
35
- }
36
-
37
- void Gosu_Font_draw_text(Gosu_Font *font, const char *text, double x, double y, double z,
38
- double scale_x, double scale_y, unsigned c, unsigned mode)
39
- {
40
- reinterpret_cast<Gosu::Font *>(font)->draw_text(text, x, y, z, scale_x, scale_y, c, (Gosu::AlphaMode)mode);
41
- }
42
-
43
- void Gosu_Font_draw_markup(Gosu_Font *font, const char *text, double x, double y, double z,
44
- double scale_x, double scale_y, unsigned c, unsigned mode)
45
- {
46
- reinterpret_cast<Gosu::Font *>(font)->draw_markup(text, x, y, z, scale_x, scale_y, c, (Gosu::AlphaMode)mode);
47
- }
48
-
49
- void Gosu_Font_draw_text_rel(Gosu_Font *font, const char *text, double x, double y, double z,
50
- double rel_x, double rel_y, double scale_x, double scale_y,
51
- unsigned c, unsigned mode)
52
- {
53
- reinterpret_cast<Gosu::Font *>(font)->draw_text_rel(text, x, y, z, rel_x, rel_y, scale_x, scale_y, c, (Gosu::AlphaMode)mode);
54
- }
55
-
56
- void Gosu_Font_draw_markup_rel(Gosu_Font *font, const char *text, double x, double y, double z,
57
- double rel_x, double rel_y, double scale_x, double scale_y,
58
- unsigned c, unsigned mode)
59
- {
60
- reinterpret_cast<Gosu::Font *>(font)->draw_markup_rel(text, x, y, z, rel_x, rel_y, scale_x, scale_y, c, (Gosu::AlphaMode)mode);
61
- }
62
-
63
- void Gosu_Font_set_image(Gosu_Font *font, const char *codepoint, unsigned font_flags, Gosu_Image *image)
64
- {
65
-
66
- const Gosu::Image *gosu_image = reinterpret_cast<Gosu::Image *>(image);
67
- reinterpret_cast<Gosu::Font *>(font)->set_image(codepoint, font_flags, *gosu_image);
68
- }
69
-
70
- void Gosu_Font_destroy(Gosu_Font *font)
71
- {
72
- delete (reinterpret_cast<Gosu::Font *>(font));
73
- }
74
- }
@@ -1,232 +0,0 @@
1
- #include <Gosu/Gosu.hpp>
2
-
3
- extern "C" {
4
- #include <Gosu/Gosu.h>
5
-
6
- void Gosu_gl_z(double z, void function(void *data), void *data)
7
- {
8
- std::function<void ()> callback;
9
- callback = [=]() { function(data); };
10
-
11
- Gosu::Graphics::gl(z, callback);
12
- }
13
-
14
- void Gosu_gl(void function(void *data), void *data)
15
- {
16
- std::function<void ()> callback;
17
- callback = [=]() { function(data); };
18
-
19
- Gosu::Graphics::gl(callback);
20
- }
21
-
22
- Gosu_Image *Gosu_render(int width, int height, void function(void *data), void *data, unsigned image_flags)
23
- {
24
- std::function<void ()> callback;
25
- callback = [=]() { function(data); };
26
-
27
- return reinterpret_cast<Gosu_Image *>(new Gosu::Image(Gosu::Graphics::render(width, height, callback, image_flags)));
28
- }
29
-
30
- Gosu_Image *Gosu_record(int width, int height, void function(void *data), void *data)
31
- {
32
- std::function<void ()> callback;
33
- callback = [=]() { function(data); };
34
- return reinterpret_cast<Gosu_Image *>(new Gosu::Image(Gosu::Graphics::record(width, height, callback)));
35
- }
36
-
37
- void Gosu_flush()
38
- {
39
- Gosu::Graphics::flush();
40
- }
41
-
42
- void Gosu_transform(double m0, double m1, double m2, double m3, double m4, double m5, double m6,
43
- double m7, double m8, double m9, double m10, double m11, double m12, double m13,
44
- double m14, double m15, void function(void *data), void *data)
45
- {
46
- Gosu::Transform transform = {
47
- m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15};
48
- std::function<void ()> callback;
49
- callback = [=]() { function(data); };
50
-
51
- Gosu::Graphics::transform(transform, callback);
52
- }
53
-
54
- void Gosu_translate(double x, double y, void function(void *data), void *data)
55
- {
56
- std::function<void ()> callback;
57
- callback = [=]() { function(data); };
58
-
59
- Gosu::Graphics::transform(Gosu::translate(x, y), callback);
60
- }
61
-
62
- void Gosu_scale(double scale_x, double scale_y, double around_x, double around_y, void function(void *data), void *data)
63
- {
64
- std::function<void ()> callback;
65
- callback = [=]() { function(data); };
66
-
67
- Gosu::Graphics::transform(Gosu::scale(scale_x, scale_y, around_x, around_y), callback);
68
- }
69
-
70
- void Gosu_rotate(double angle, double around_x, double around_y, void function(void *data), void *data)
71
- {
72
- std::function<void ()> callback;
73
- callback = [=]() { function(data); };
74
-
75
- Gosu::Graphics::transform(Gosu::rotate(angle, around_x, around_y), callback);
76
- }
77
-
78
- void Gosu_clip_to(double x, double y, double width, double height, void function(void *data), void *data)
79
- {
80
- std::function<void ()> callback;
81
- callback = [=]() { function(data); };
82
-
83
- Gosu::Graphics::clip_to(x, y, width, height, callback);
84
- }
85
-
86
- void Gosu_draw_line(double x1, double y1, unsigned c1,
87
- double x2, double y2, unsigned c2,
88
- double z, unsigned mode)
89
- {
90
- Gosu::Graphics::draw_line(x1, y1, c1, x2, y2, c2, z, (Gosu::AlphaMode)mode);
91
- }
92
-
93
- void Gosu_draw_triangle(double x1, double y1, unsigned c1,
94
- double x2, double y2, unsigned c2,
95
- double x3, double y3, unsigned c3,
96
- double z, unsigned mode)
97
- {
98
- Gosu::Graphics::draw_triangle(x1, y1, c1,
99
- x2, y2, c2,
100
- x3, y3, c3,
101
- z, (Gosu::AlphaMode)mode);
102
- }
103
-
104
- void Gosu_draw_rect(double x, double y, double width, double height, unsigned c, double z, unsigned mode)
105
- {
106
- Gosu::Graphics::draw_rect(x, y, width, height, c, z, (Gosu::AlphaMode)mode);
107
- }
108
-
109
- void Gosu_draw_quad(double x1, double y1, unsigned c1,
110
- double x2, double y2, unsigned c2,
111
- double x3, double y3, unsigned c3,
112
- double x4, double y4, unsigned c4,
113
- double z, unsigned mode)
114
- {
115
- Gosu::Graphics::draw_quad(x1, y1, c1,
116
- x2, y2, c2,
117
- x3, y3, c3,
118
- x4, y4, c4,
119
- z, (Gosu::AlphaMode)mode);
120
- }
121
-
122
- double Gosu_distance(double x1, double y1, double x2, double y2)
123
- {
124
- return Gosu::distance(x1, y1, x2, y2);
125
- }
126
-
127
- double Gosu_angle(double from_x, double from_y, double to_x, double to_y)
128
- {
129
- return Gosu::angle(from_x, from_y, to_x, to_y);
130
- }
131
-
132
- double Gosu_angle_diff(double from, double to)
133
- {
134
- return Gosu::angle_diff(from, to);
135
- }
136
-
137
- double Gosu_offset_x(double angle, double radius)
138
- {
139
- return Gosu::offset_x(angle, radius);
140
- }
141
-
142
- double Gosu_offset_y(double angle, double radius)
143
- {
144
- return Gosu::offset_y(angle, radius);
145
- }
146
-
147
- double Gosu_random(double min, double max)
148
- {
149
- return Gosu::random(min, max);
150
- }
151
-
152
- unsigned Gosu_available_width(Gosu_Window *window)
153
- {
154
- Gosu::Window *gosu_window = nullptr;
155
- if (window != nullptr) {
156
- gosu_window = reinterpret_cast<Gosu::Window *>(window);
157
- }
158
- return Gosu::available_width(gosu_window);
159
- }
160
-
161
- unsigned Gosu_available_height(Gosu_Window *window)
162
- {
163
- Gosu::Window *gosu_window = nullptr;
164
- if (window != nullptr) {
165
- gosu_window = reinterpret_cast<Gosu::Window *>(window);
166
- }
167
- return Gosu::available_height(gosu_window);
168
- }
169
-
170
- unsigned Gosu_screen_width(Gosu_Window *window)
171
- {
172
- Gosu::Window *gosu_window = nullptr;
173
- if (window != nullptr) {
174
- gosu_window = reinterpret_cast<Gosu::Window *>(window);
175
- }
176
- return Gosu::screen_width(gosu_window);
177
- }
178
-
179
- unsigned Gosu_screen_height(Gosu_Window *window)
180
- {
181
- Gosu::Window *gosu_window = nullptr;
182
- if (window != nullptr) {
183
- gosu_window = reinterpret_cast<Gosu::Window *>(window);
184
- }
185
- return Gosu::screen_height(gosu_window);
186
- }
187
-
188
- int Gosu_button_down(int btn)
189
- {
190
- return Gosu::Input::down((Gosu::ButtonName)btn);
191
- }
192
-
193
- const char *Gosu_button_id_to_char(int id)
194
- {
195
- static thread_local std::string button;
196
- button = Gosu::Input::id_to_char((Gosu::Button)id);
197
-
198
- return button.c_str();
199
- }
200
-
201
- unsigned Gosu_button_char_to_id(const char *btn)
202
- {
203
- return Gosu::Input::char_to_id(btn).id();
204
- }
205
-
206
- int Gosu_fps()
207
- {
208
- return Gosu::fps();
209
- }
210
-
211
- const char *Gosu_language()
212
- {
213
- static thread_local std::string language;
214
- language = Gosu::language();
215
-
216
- return language.c_str();
217
- }
218
-
219
- long Gosu_milliseconds()
220
- {
221
- return Gosu::milliseconds();
222
- }
223
-
224
- const char *Gosu_default_font_name()
225
- {
226
- static thread_local std::string name;
227
- name = Gosu::default_font_name();
228
-
229
- return name.c_str();
230
- }
231
-
232
- }
@@ -1,168 +0,0 @@
1
- #include <Gosu/Gosu.hpp>
2
- #include <stdio.h>
3
- #include <cstring>
4
-
5
- extern "C" {
6
- #include <Gosu/Image.h>
7
-
8
- // Constructors
9
- Gosu_Image *Gosu_Image_create(const char *filename, unsigned image_flags)
10
- {
11
- return reinterpret_cast<Gosu_Image *>(new Gosu::Image(filename, image_flags));
12
- };
13
-
14
- Gosu_Image *Gosu_Image_create_from_markup(const char *markup, const char *font, double font_height,
15
- int width, double spacing, unsigned align, unsigned font_flags, unsigned image_flags)
16
- {
17
- Gosu::Bitmap bitmap = Gosu::layout_markup(markup, font, font_height, spacing, width,
18
- (Gosu::Alignment)align, font_flags);
19
- return reinterpret_cast<Gosu_Image *>(new Gosu::Image(bitmap, image_flags));
20
- }
21
-
22
- Gosu_Image *Gosu_Image_create_from_text(const char *text, const char *font, double font_height,
23
- int width, double spacing, unsigned align, unsigned font_flags, unsigned image_flags)
24
- {
25
- Gosu::Bitmap bitmap = Gosu::layout_text(text, font, font_height, spacing, width,
26
- (Gosu::Alignment)align, font_flags);
27
- return reinterpret_cast<Gosu_Image *>(new Gosu::Image(bitmap, image_flags));
28
- }
29
-
30
- Gosu_Image *Gosu_Image_create_from_blob(unsigned char *blob, int byte_count, int columns, int rows, unsigned image_flags)
31
- {
32
- std::size_t size = columns * rows * 4;
33
- Gosu::Bitmap bitmap(columns, rows, Gosu::Color::NONE);
34
-
35
- if (byte_count == size) {
36
- // 32 bit per pixel, assume R8G8B8A8
37
- std::memcpy(bitmap.data(), blob, size);
38
- }
39
- else if (byte_count == size * sizeof(float)) {
40
- // 128 bit per channel, assume float/float/float/float
41
- const float *in = reinterpret_cast<const float *>(blob);
42
- Gosu::Color::Channel *out = reinterpret_cast<Gosu::Color::Channel *>(bitmap.data());
43
- for (int i = size; i > 0; --i) {
44
- *(out++) = static_cast<Gosu::Color::Channel>(*(in++) * 255);
45
- }
46
- }
47
- else {
48
- return nullptr; // abort?
49
- }
50
-
51
- return reinterpret_cast<Gosu_Image *>(new Gosu::Image(bitmap, image_flags));
52
- }
53
-
54
- Gosu_Image *Gosu_Image_create_from_subimage(Gosu_Image *image, int left, int top, int width, int height)
55
- {
56
- Gosu::Image *gosu_image = reinterpret_cast<Gosu::Image *>(image);
57
- std::unique_ptr<Gosu::ImageData> image_data = gosu_image->data().subimage(left, top, width, height);
58
-
59
- return reinterpret_cast<Gosu_Image *>(image_data.get() ? new Gosu::Image(std::move(image_data)) : nullptr);
60
- }
61
-
62
- void Gosu_Image_create_from_tiles(const char *source, int tile_width, int tile_height, void function(void *data, Gosu_Image *image), void *data, unsigned image_flags)
63
- {
64
- std::vector<Gosu::Image> gosu_images = Gosu::load_tiles(source, tile_width, tile_height, image_flags);
65
-
66
- for (Gosu::Image &img : gosu_images) {
67
- function(data, reinterpret_cast<Gosu_Image *>(new Gosu::Image(img)));
68
- }
69
- }
70
-
71
- void Gosu_Image_create_tiles_from_image(Gosu_Image *image, int tile_width, int tile_height, void function(void *data, Gosu_Image *image), void *data, unsigned image_flags)
72
- {
73
- std::vector<Gosu::Image> gosu_images = Gosu::load_tiles(reinterpret_cast<Gosu::Image *>(image)->data().to_bitmap(), tile_width, tile_height, image_flags);
74
-
75
- for (Gosu::Image &img : gosu_images) {
76
- function(data, reinterpret_cast<Gosu_Image *>(new Gosu::Image(img)));
77
- }
78
- }
79
-
80
- // Properties
81
- unsigned Gosu_Image_width(Gosu_Image *image)
82
- {
83
- return reinterpret_cast<Gosu::Image *>(image)->width();
84
- }
85
-
86
- unsigned Gosu_Image_height(Gosu_Image *image)
87
- {
88
- return reinterpret_cast<Gosu::Image *>(image)->height();
89
- }
90
-
91
- Gosu_GLTexInfo *Gosu_Image_gl_tex_info_create(Gosu_Image *image)
92
- {
93
- Gosu::Image *gosu_image = reinterpret_cast<Gosu::Image *>(image);
94
- Gosu::GLTexInfo *gosu_texture_info = new Gosu::GLTexInfo(*gosu_image->data().gl_tex_info());
95
- if (gosu_texture_info) {
96
- return reinterpret_cast<Gosu_GLTexInfo *>(gosu_texture_info);
97
- }
98
- else {
99
- return nullptr;
100
- }
101
- }
102
-
103
- void Gosu_Image_gl_tex_info_destroy(Gosu_GLTexInfo *gl_tex_info)
104
- {
105
- delete (reinterpret_cast<Gosu::GLTexInfo *>(gl_tex_info));
106
- }
107
-
108
- // Rendering
109
- void Gosu_Image_draw(Gosu_Image *image, double x, double y, double z, double scale_x, double scale_y, unsigned color, unsigned mode)
110
- {
111
- reinterpret_cast<Gosu::Image *>(image)->draw(x, y, z, scale_x, scale_y, color, (Gosu::AlphaMode)mode);
112
- }
113
-
114
- void Gosu_Image_draw_rot(Gosu_Image *image, double x, double y, double z,
115
- double angle, double center_x, double center_y,
116
- double scale_x, double scale_y, unsigned color, unsigned mode)
117
- {
118
- reinterpret_cast<Gosu::Image *>(image)->draw_rot(x, y, z,
119
- angle, center_x, center_y,
120
- scale_x, scale_y,
121
- color, (Gosu::AlphaMode)mode);
122
- }
123
-
124
- void Gosu_Image_draw_as_quad(Gosu_Image *image,
125
- double x1, double y1, unsigned color1,
126
- double x2, double y2, unsigned color2,
127
- double x3, double y3, unsigned color3,
128
- double x4, double y4, unsigned color4,
129
- double z, unsigned mode)
130
- {
131
- Gosu::Image *gosu_image = reinterpret_cast<Gosu::Image *>(image);
132
- gosu_image->data().draw(
133
- x1, y1, color1,
134
- x2, y2, color2,
135
- x3, y3, color3,
136
- x4, y4, color4,
137
- z, (Gosu::AlphaMode)mode);
138
- }
139
-
140
- // Image operations
141
- void Gosu_Image_insert(Gosu_Image *image, Gosu_Image *source, int x, int y)
142
- {
143
- Gosu::Bitmap bmp;
144
- bmp = reinterpret_cast<Gosu::Image *>(source)->data().to_bitmap();
145
- reinterpret_cast<Gosu::Image *>(image)->data().insert(bmp, x, y);
146
- }
147
-
148
- unsigned char *Gosu_Image_to_blob(Gosu_Image *image)
149
- {
150
- Gosu::Image *gosu_image = reinterpret_cast<Gosu::Image *>(image);
151
- static thread_local Gosu::Bitmap bitmap;
152
- bitmap = gosu_image->data().to_bitmap();
153
-
154
- return reinterpret_cast<unsigned char *>(bitmap.data());
155
- }
156
-
157
- void Gosu_Image_save(Gosu_Image *image, const char *filename)
158
- {
159
- Gosu::save_image_file(reinterpret_cast<Gosu::Image *>(image)->data().to_bitmap(), filename);
160
- }
161
-
162
- // Destructor
163
- void Gosu_Image_destroy(Gosu_Image *image)
164
- {
165
- delete (reinterpret_cast<Gosu::Image *>(image));
166
- }
167
-
168
- }