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
@@ -15,9 +15,9 @@
15
15
 
16
16
  #if defined(MRB_ENABLE_CXX_EXCEPTION) && defined(__cplusplus)
17
17
 
18
- #define MRB_TRY(buf) do { try {
18
+ #define MRB_TRY(buf) try {
19
19
  #define MRB_CATCH(buf) } catch(mrb_jmpbuf_impl e) { if (e != (buf)->impl) { throw e; }
20
- #define MRB_END_EXC(buf) } } while(0)
20
+ #define MRB_END_EXC(buf) }
21
21
 
22
22
  #define MRB_THROW(buf) throw((buf)->impl)
23
23
  typedef mrb_int mrb_jmpbuf_impl;
@@ -34,9 +34,9 @@ typedef mrb_int mrb_jmpbuf_impl;
34
34
  #define MRB_LONGJMP longjmp
35
35
  #endif
36
36
 
37
- #define MRB_TRY(buf) do { if (MRB_SETJMP((buf)->impl) == 0) {
37
+ #define MRB_TRY(buf) if (MRB_SETJMP((buf)->impl) == 0) {
38
38
  #define MRB_CATCH(buf) } else {
39
- #define MRB_END_EXC(buf) } } while(0)
39
+ #define MRB_END_EXC(buf) }
40
40
 
41
41
  #define MRB_THROW(buf) MRB_LONGJMP((buf)->impl, 1);
42
42
  #define mrb_jmpbuf_impl jmp_buf
@@ -31,8 +31,6 @@ struct global_entry {
31
31
 
32
32
  mrb_value mrb_vm_special_get(mrb_state*, mrb_sym);
33
33
  void mrb_vm_special_set(mrb_state*, mrb_sym, mrb_value);
34
- mrb_value mrb_vm_iv_get(mrb_state*, mrb_sym);
35
- void mrb_vm_iv_set(mrb_state*, mrb_sym, mrb_value);
36
34
  mrb_value mrb_vm_cv_get(mrb_state*, mrb_sym);
37
35
  void mrb_vm_cv_set(mrb_state*, mrb_sym, mrb_value);
38
36
  mrb_value mrb_vm_const_get(mrb_state*, mrb_sym);
@@ -42,8 +40,8 @@ MRB_API void mrb_const_set(mrb_state*, mrb_value, mrb_sym, mrb_value);
42
40
  MRB_API mrb_bool mrb_const_defined(mrb_state*, mrb_value, mrb_sym);
43
41
  MRB_API void mrb_const_remove(mrb_state*, mrb_value, mrb_sym);
44
42
 
45
- MRB_API mrb_bool mrb_iv_p(mrb_state *mrb, mrb_sym sym);
46
- MRB_API void mrb_iv_check(mrb_state *mrb, mrb_sym sym);
43
+ MRB_API mrb_bool mrb_iv_name_sym_p(mrb_state *mrb, mrb_sym sym);
44
+ MRB_API void mrb_iv_name_sym_check(mrb_state *mrb, mrb_sym sym);
47
45
  MRB_API mrb_value mrb_obj_iv_get(mrb_state *mrb, struct RObject *obj, mrb_sym sym);
48
46
  MRB_API void mrb_obj_iv_set(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v);
49
47
  MRB_API mrb_bool mrb_obj_iv_defined(mrb_state *mrb, struct RObject *obj, mrb_sym sym);
@@ -27,7 +27,7 @@ MRB_BEGIN_DECL
27
27
  /*
28
28
  * The version of Ruby used by mruby.
29
29
  */
30
- #define MRUBY_RUBY_VERSION "1.9"
30
+ #define MRUBY_RUBY_VERSION "2.0"
31
31
 
32
32
  /*
33
33
  * Ruby engine.
@@ -37,12 +37,12 @@ MRB_BEGIN_DECL
37
37
  /*
38
38
  * Major release version number.
39
39
  */
40
- #define MRUBY_RELEASE_MAJOR 1
40
+ #define MRUBY_RELEASE_MAJOR 2
41
41
 
42
42
  /*
43
43
  * Minor release version number.
44
44
  */
45
- #define MRUBY_RELEASE_MINOR 3
45
+ #define MRUBY_RELEASE_MINOR 0
46
46
 
47
47
  /*
48
48
  * Tiny release version number.
@@ -62,17 +62,17 @@ MRB_BEGIN_DECL
62
62
  /*
63
63
  * Release year.
64
64
  */
65
- #define MRUBY_RELEASE_YEAR 2017
65
+ #define MRUBY_RELEASE_YEAR 2018
66
66
 
67
67
  /*
68
68
  * Release month.
69
69
  */
70
- #define MRUBY_RELEASE_MONTH 7
70
+ #define MRUBY_RELEASE_MONTH 12
71
71
 
72
72
  /*
73
73
  * Release day.
74
74
  */
75
- #define MRUBY_RELEASE_DAY 4
75
+ #define MRUBY_RELEASE_DAY 11
76
76
 
77
77
  /*
78
78
  * Release date as a string.
@@ -3,13 +3,14 @@
3
3
  archiveVersion = 1;
4
4
  classes = {
5
5
  };
6
- objectVersion = 48;
6
+ objectVersion = 51;
7
7
  objects = {
8
8
 
9
9
  /* Begin PBXBuildFile section */
10
10
  E2206BB41F4AB3AC002BD456 /* Simple2D.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2206BB31F4AB3AC002BD456 /* Simple2D.framework */; };
11
11
  E228A73E1F16780900E03F68 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E228A73D1F16780900E03F68 /* Assets.xcassets */; };
12
12
  E228A7461F1678F000E03F68 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = E228A7451F1678F000E03F68 /* main.c */; };
13
+ E2309DC022532AF60005CB0C /* MRuby.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2309DBF22532AF60005CB0C /* MRuby.framework */; };
13
14
  E25EF19A1F167AF90045EA1D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25EF1901F167AF90045EA1D /* AudioToolbox.framework */; };
14
15
  E25EF19B1F167AF90045EA1D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25EF1911F167AF90045EA1D /* AVFoundation.framework */; };
15
16
  E25EF19C1F167AF90045EA1D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25EF1921F167AF90045EA1D /* CoreGraphics.framework */; };
@@ -20,7 +21,6 @@
20
21
  E25EF1A11F167AF90045EA1D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25EF1971F167AF90045EA1D /* OpenGLES.framework */; };
21
22
  E25EF1A21F167AF90045EA1D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25EF1981F167AF90045EA1D /* QuartzCore.framework */; };
22
23
  E25EF1A31F167AF90045EA1D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E25EF1991F167AF90045EA1D /* UIKit.framework */; };
23
- E2D0E9131F764B5E000AF870 /* MRuby.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2D0E9121F764B5E000AF870 /* MRuby.framework */; };
24
24
  /* End PBXBuildFile section */
25
25
 
26
26
  /* Begin PBXFileReference section */
@@ -29,6 +29,7 @@
29
29
  E228A73D1F16780900E03F68 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
30
30
  E228A73F1F16780900E03F68 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
31
31
  E228A7451F1678F000E03F68 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
32
+ E2309DBF22532AF60005CB0C /* MRuby.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MRuby.framework; sourceTree = "<group>"; };
32
33
  E25EF1901F167AF90045EA1D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
33
34
  E25EF1911F167AF90045EA1D /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
34
35
  E25EF1921F167AF90045EA1D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
@@ -39,7 +40,6 @@
39
40
  E25EF1971F167AF90045EA1D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
40
41
  E25EF1981F167AF90045EA1D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
41
42
  E25EF1991F167AF90045EA1D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
42
- E2D0E9121F764B5E000AF870 /* MRuby.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MRuby.framework; sourceTree = "<group>"; };
43
43
  /* End PBXFileReference section */
44
44
 
45
45
  /* Begin PBXFrameworksBuildPhase section */
@@ -47,7 +47,7 @@
47
47
  isa = PBXFrameworksBuildPhase;
48
48
  buildActionMask = 2147483647;
49
49
  files = (
50
- E2D0E9131F764B5E000AF870 /* MRuby.framework in Frameworks */,
50
+ E2309DC022532AF60005CB0C /* MRuby.framework in Frameworks */,
51
51
  E2206BB41F4AB3AC002BD456 /* Simple2D.framework in Frameworks */,
52
52
  E25EF19A1F167AF90045EA1D /* AudioToolbox.framework in Frameworks */,
53
53
  E25EF19B1F167AF90045EA1D /* AVFoundation.framework in Frameworks */,
@@ -71,8 +71,8 @@
71
71
  E228A7451F1678F000E03F68 /* main.c */,
72
72
  E228A73D1F16780900E03F68 /* Assets.xcassets */,
73
73
  E228A73F1F16780900E03F68 /* Info.plist */,
74
- E228A72F1F16780900E03F68 /* Products */,
75
74
  E25EF17D1F1679F30045EA1D /* Frameworks */,
75
+ E228A72F1F16780900E03F68 /* Products */,
76
76
  );
77
77
  indentWidth = 2;
78
78
  sourceTree = "<group>";
@@ -90,7 +90,7 @@
90
90
  E25EF17D1F1679F30045EA1D /* Frameworks */ = {
91
91
  isa = PBXGroup;
92
92
  children = (
93
- E2D0E9121F764B5E000AF870 /* MRuby.framework */,
93
+ E2309DBF22532AF60005CB0C /* MRuby.framework */,
94
94
  E2206BB31F4AB3AC002BD456 /* Simple2D.framework */,
95
95
  E25EF1901F167AF90045EA1D /* AudioToolbox.framework */,
96
96
  E25EF1911F167AF90045EA1D /* AVFoundation.framework */,
@@ -132,7 +132,7 @@
132
132
  E228A7261F16780900E03F68 /* Project object */ = {
133
133
  isa = PBXProject;
134
134
  attributes = {
135
- LastUpgradeCheck = 0910;
135
+ LastUpgradeCheck = 1020;
136
136
  TargetAttributes = {
137
137
  E228A72D1F16780900E03F68 = {
138
138
  CreatedOnToolsVersion = 8.3.3;
@@ -141,8 +141,8 @@
141
141
  };
142
142
  };
143
143
  buildConfigurationList = E228A7291F16780900E03F68 /* Build configuration list for PBXProject "MyApp" */;
144
- compatibilityVersion = "Xcode 8.0";
145
- developmentRegion = English;
144
+ compatibilityVersion = "Xcode 10.0";
145
+ developmentRegion = en;
146
146
  hasScannedForEncodings = 0;
147
147
  knownRegions = (
148
148
  en,
@@ -185,6 +185,7 @@
185
185
  isa = XCBuildConfiguration;
186
186
  buildSettings = {
187
187
  ALWAYS_SEARCH_USER_PATHS = NO;
188
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
188
189
  CLANG_ANALYZER_NONNULL = YES;
189
190
  CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
190
191
  CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -195,17 +196,17 @@
195
196
  CLANG_WARN_BOOL_CONVERSION = YES;
196
197
  CLANG_WARN_COMMA = YES;
197
198
  CLANG_WARN_CONSTANT_CONVERSION = YES;
199
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
198
200
  CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
199
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
200
201
  CLANG_WARN_EMPTY_BODY = YES;
201
202
  CLANG_WARN_ENUM_CONVERSION = YES;
202
203
  CLANG_WARN_INFINITE_RECURSION = YES;
203
204
  CLANG_WARN_INT_CONVERSION = YES;
204
205
  CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
206
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
205
207
  CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
206
208
  CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
207
209
  CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
208
- CLANG_WARN_STRICT_PROTOTYPES = YES;
209
210
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
210
211
  CLANG_WARN_UNREACHABLE_CODE = YES;
211
212
  CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -227,11 +228,11 @@
227
228
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
228
229
  GCC_WARN_UNUSED_FUNCTION = YES;
229
230
  GCC_WARN_UNUSED_VARIABLE = YES;
231
+ HEADER_SEARCH_PATHS = "\"$(SRCROOT)/MRuby.framework/Headers\"";
230
232
  MTL_ENABLE_DEBUG_INFO = YES;
231
233
  ONLY_ACTIVE_ARCH = YES;
232
234
  SDKROOT = appletvos;
233
235
  TARGETED_DEVICE_FAMILY = 3;
234
- TVOS_DEPLOYMENT_TARGET = 11.1;
235
236
  };
236
237
  name = Debug;
237
238
  };
@@ -239,6 +240,7 @@
239
240
  isa = XCBuildConfiguration;
240
241
  buildSettings = {
241
242
  ALWAYS_SEARCH_USER_PATHS = NO;
243
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
242
244
  CLANG_ANALYZER_NONNULL = YES;
243
245
  CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
244
246
  CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -249,17 +251,17 @@
249
251
  CLANG_WARN_BOOL_CONVERSION = YES;
250
252
  CLANG_WARN_COMMA = YES;
251
253
  CLANG_WARN_CONSTANT_CONVERSION = YES;
254
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
252
255
  CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
253
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
254
256
  CLANG_WARN_EMPTY_BODY = YES;
255
257
  CLANG_WARN_ENUM_CONVERSION = YES;
256
258
  CLANG_WARN_INFINITE_RECURSION = YES;
257
259
  CLANG_WARN_INT_CONVERSION = YES;
258
260
  CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
261
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
259
262
  CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
260
263
  CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
261
264
  CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
262
- CLANG_WARN_STRICT_PROTOTYPES = YES;
263
265
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
264
266
  CLANG_WARN_UNREACHABLE_CODE = YES;
265
267
  CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -275,10 +277,10 @@
275
277
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
276
278
  GCC_WARN_UNUSED_FUNCTION = YES;
277
279
  GCC_WARN_UNUSED_VARIABLE = YES;
280
+ HEADER_SEARCH_PATHS = "\"$(SRCROOT)/MRuby.framework/Headers\"";
278
281
  MTL_ENABLE_DEBUG_INFO = NO;
279
282
  SDKROOT = appletvos;
280
283
  TARGETED_DEVICE_FAMILY = 3;
281
- TVOS_DEPLOYMENT_TARGET = 11.1;
282
284
  VALIDATE_PRODUCT = YES;
283
285
  };
284
286
  name = Release;
@@ -292,9 +294,11 @@
292
294
  /usr/local/Frameworks/Simple2D/tvOS,
293
295
  "$(PROJECT_DIR)",
294
296
  );
295
- HEADER_SEARCH_PATHS = "\"$(SRCROOT)/MRuby.framework/Headers\"";
296
297
  INFOPLIST_FILE = "$(SRCROOT)/Info.plist";
297
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
298
+ LD_RUNPATH_SEARCH_PATHS = (
299
+ "$(inherited)",
300
+ "@executable_path/Frameworks",
301
+ );
298
302
  PRODUCT_BUNDLE_IDENTIFIER = Ruby2D.MyApp;
299
303
  PRODUCT_NAME = "$(TARGET_NAME)";
300
304
  };
@@ -309,9 +313,11 @@
309
313
  /usr/local/Frameworks/Simple2D/tvOS,
310
314
  "$(PROJECT_DIR)",
311
315
  );
312
- HEADER_SEARCH_PATHS = "\"$(SRCROOT)/MRuby.framework/Headers\"";
313
316
  INFOPLIST_FILE = "$(SRCROOT)/Info.plist";
314
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
317
+ LD_RUNPATH_SEARCH_PATHS = (
318
+ "$(inherited)",
319
+ "@executable_path/Frameworks",
320
+ );
315
321
  PRODUCT_BUNDLE_IDENTIFIER = Ruby2D.MyApp;
316
322
  PRODUCT_NAME = "$(TARGET_NAME)";
317
323
  };
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -1 +1 @@
1
- // Your Ruby 2D app here
1
+ // Your app here
@@ -2,78 +2,87 @@ require 'mkmf'
2
2
  require_relative '../../lib/ruby2d/colorize'
3
3
 
4
4
  S2D_VERSION = '1.1.0' # Simple 2D minimum version required
5
- $errors = []
5
+ $errors = [] # Array to capture errors
6
6
 
7
+ # Print installation errors
7
8
  def print_errors
8
9
  puts "
9
10
  #{"== #{"Ruby 2D Installation Errors".error} =======================================\n"}
10
11
  #{$errors.join("\n ")}\n
11
- #{"======================================================================="}"
12
+ #{"======================================================================"}"
12
13
  end
13
14
 
14
- def check_s2d_version
15
- unless Gem::Version.new(`bash simple2d --version`) >= Gem::Version.new(S2D_VERSION)
16
- $errors << "Simple 2D needs to be updated for this version of Ruby 2D." <<
17
- "Run the following, then try reinstalling this gem:\n" <<
18
- " simple2d update".bold
19
- print_errors
20
- exit
21
- end
22
- end
23
-
24
-
25
- # Install Simple 2D on supported platforms
26
- case RUBY_PLATFORM
27
-
28
- # macOS
29
- when /darwin/
15
+ # Check that Simple 2D is installed and meets minimum version requirements
16
+ def check_s2d
30
17
 
31
18
  # Simple 2D not installed
32
19
  if `which simple2d`.empty?
20
+ $errors << "Ruby 2D uses a native library called Simple 2D, which was not found." <<
21
+ "To install, follow the instructions at #{"ruby2d.com/learn".bold}"
22
+ print_errors
23
+ exit
33
24
 
34
- # Homebrew not installed
35
- if `which brew`.empty?
36
- $errors << "Ruby 2D uses a native library called Simple 2D, which was not found." <<
37
- "On macOS, it can be installed using Homebrew.\n" <<
38
- "First, install #{"Homebrew".bold}. See instructions at #{"http://brew.sh".bold}" <<
39
- "Then, run the following:\n" <<
40
- " brew tap simple2d/tap".bold <<
41
- " brew install simple2d".bold
42
- print_errors
43
- exit
44
-
45
- # Homebrew installed, instruct to install Simple 2D
46
- else
47
- $errors << "Ruby 2D uses a native library called Simple 2D, which was not found." <<
48
- "Install it with Homebrew using:\n" <<
49
- " brew tap simple2d/tap".bold <<
50
- " brew install simple2d".bold
25
+ # Simple 2D installed, checking version
26
+ else
27
+ unless Gem::Version.new(`bash simple2d --version`) >= Gem::Version.new(S2D_VERSION)
28
+ $errors << "Simple 2D needs to be updated for this version of Ruby 2D." <<
29
+ "Run the following, then try reinstalling this gem:\n" <<
30
+ " simple2d update".bold
51
31
  print_errors
52
32
  exit
53
33
  end
54
34
  end
35
+ end
55
36
 
56
- # Linux and Windows / MinGW
57
- when /linux|mingw/
37
+ # Use the Simple 2D, SDL, and other libraries installed by the user (not those bundled with the gem)
38
+ def use_usr_libs
39
+ check_s2d
58
40
 
59
- # Simple 2D not installed
60
- if `which simple2d`.empty?
61
- $errors << "Ruby 2D uses a native library called Simple 2D, which was not found." <<
62
- "To install, follow the instructions at #{"ruby2d.com/learn".bold}"
63
- print_errors
64
- exit
41
+ # Add flags
42
+ $CFLAGS << ' -std=c11 -I/usr/local/include'
43
+ if `cat /etc/os-release` =~ /raspbian/ # Raspberry Pi
44
+ $CFLAGS << ' -I/opt/vc/include'
65
45
  end
46
+ $LDFLAGS << ' ' << `bash simple2d --libs`
47
+ $LDFLAGS.gsub!(/\n/, ' ') # remove newlines in flags, they cause problems
66
48
  end
67
49
 
68
50
 
69
- check_s2d_version
51
+ # Build Ruby 2D native extention using libraries installed by user
52
+ # To use install flag: `gem install ruby2d -- libs`
53
+ if ARGV.include? 'libs'
54
+ use_usr_libs
70
55
 
71
- # Add flags
72
- $CFLAGS << ' -std=c11 -I/usr/local/include'
73
- if `cat /etc/os-release` =~ /raspbian/ # Raspberry Pi
74
- $CFLAGS << ' -I/opt/vc/include'
56
+ # Use libraries provided by the gem (default)
57
+ else
58
+ $CFLAGS << ' -std=c11 -I../../assets/include'
59
+ case RUBY_PLATFORM
60
+
61
+ # macOS
62
+ when /darwin/
63
+ # $LDFLAGS << " -L../../assets/macos/lib -lsimple2d -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf -ljpeg -lpng16 -ltiff -lwebp -lmpg123 -logg -lflac -lvorbis -lvorbisfile -lfreetype -Wl,-framework,Cocoa -Wl,-framework,ForceFeedback"
64
+
65
+ ldir = "#{Dir.pwd}/../../assets/macos/lib"
66
+ $LDFLAGS << " #{ldir}/libsimple2d.a #{ldir}/libSDL2.a #{ldir}/libSDL2_image.a #{ldir}/libSDL2_mixer.a #{ldir}/libSDL2_ttf.a \
67
+ #{ldir}/libjpeg.a #{ldir}/libpng16.a #{ldir}/libtiff.a #{ldir}/libwebp.a \
68
+ #{ldir}/libmpg123.a #{ldir}/libogg.a #{ldir}/libflac.a #{ldir}/libvorbis.a #{ldir}/libvorbisfile.a \
69
+ #{ldir}/libfreetype.a -Wl,-framework,Cocoa -Wl,-framework,ForceFeedback"
70
+
71
+ # Linux
72
+ when /linux/
73
+ # TODO: Implement static compilation for Linux
74
+ use_usr_libs
75
+
76
+ # Windows / MinGW
77
+ when /mingw/
78
+ $LDFLAGS << " -L../../assets/mingw/lib -lsimple2d -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf -lmingw32 -lopengl32 -lglew32"
79
+
80
+ # If can't detect the platform, use libraries installed by the user
81
+ else
82
+ use_usr_libs
83
+ end
75
84
  end
76
- $LDFLAGS << ' ' << `bash simple2d --libs`
77
- $LDFLAGS.gsub!(/\n/, ' ') # remove newlines in flags, they cause problems
78
85
 
86
+
87
+ # Create the Makefile
79
88
  create_makefile('ruby2d/ruby2d')
@@ -1087,7 +1087,6 @@ static R_VAL ruby2d_ext_screenshot(R_VAL self, R_VAL path) {
1087
1087
  S2D_Screenshot(window, RSTRING_PTR(path));
1088
1088
  return path;
1089
1089
  } else {
1090
- S2D_Log(S2D_WARN, "Cannot take screenshot before window is shown");
1091
1090
  return R_FALSE;
1092
1091
  }
1093
1092
  }
@@ -21,13 +21,7 @@ unless RUBY_ENGINE == 'mruby'
21
21
  require 'ruby2d/music'
22
22
 
23
23
  if RUBY_PLATFORM =~ /mingw/
24
- # When using the Windows CI AppVeyor
25
- if ENV['APPVEYOR']
26
- s2d_dll_path = 'C:\msys64\usr\local\bin'
27
- # When in a standard MinGW shell
28
- else
29
- s2d_dll_path = '~/../../usr/local/bin'
30
- end
24
+ s2d_dll_path = Gem::Specification.find_by_name('ruby2d').gem_dir + '/assets/mingw/bin'
31
25
  RubyInstaller::Runtime.add_dll_directory(File.expand_path(s2d_dll_path))
32
26
  end
33
27