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
@@ -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