webruby 0.2.7 → 0.9.1

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 (1537) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +24 -8
  3. data/lib/webruby/rake/files.rake +6 -22
  4. data/lib/webruby/rake/general.rake +1 -1
  5. data/lib/webruby/rake/mruby.rake +1 -0
  6. data/lib/webruby/utility.rb +14 -0
  7. data/modules/mruby/AUTHORS +14 -0
  8. data/modules/mruby/CONTRIBUTING.md +7 -4
  9. data/modules/mruby/INSTALL +28 -11
  10. data/modules/mruby/MITL +13 -13
  11. data/modules/mruby/Makefile +4 -5
  12. data/modules/mruby/README.md +54 -49
  13. data/modules/mruby/Rakefile +36 -6
  14. data/modules/mruby/benchmark/ao-render.rb +1 -2
  15. data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  16. data/modules/mruby/benchmark/fib39.rb +0 -0
  17. data/modules/mruby/bintest/mrbc.rb +12 -0
  18. data/modules/mruby/build_config.rb +32 -2
  19. data/modules/mruby/doc/api/README.md +30 -0
  20. data/modules/mruby/doc/api/mruby.h.md +69 -0
  21. data/modules/mruby/doc/compile/README.md +208 -99
  22. data/modules/mruby/doc/debugger/README.md +370 -0
  23. data/modules/mruby/doc/language/Core.md +1590 -0
  24. data/modules/mruby/doc/language/README.md +9 -0
  25. data/modules/mruby/doc/language/generator.rb +15 -0
  26. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
  27. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
  28. data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
  29. data/modules/mruby/doc/mrbconf/README.md +160 -0
  30. data/modules/mruby/doc/mrbgems/README.md +136 -66
  31. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
  32. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
  33. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
  34. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
  35. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
  36. data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
  37. data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  38. data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
  39. data/modules/mruby/include/mrbconf.h +25 -1
  40. data/modules/mruby/include/mruby/array.h +32 -22
  41. data/modules/mruby/include/mruby/boxing_nan.h +94 -0
  42. data/modules/mruby/include/mruby/boxing_no.h +49 -0
  43. data/modules/mruby/include/mruby/boxing_word.h +119 -0
  44. data/modules/mruby/include/mruby/class.h +15 -13
  45. data/modules/mruby/include/mruby/compile.h +43 -36
  46. data/modules/mruby/include/mruby/data.h +13 -5
  47. data/modules/mruby/include/mruby/debug.h +9 -9
  48. data/modules/mruby/include/mruby/dump.h +32 -23
  49. data/modules/mruby/include/mruby/error.h +36 -0
  50. data/modules/mruby/include/mruby/gc.h +11 -6
  51. data/modules/mruby/include/mruby/hash.h +12 -12
  52. data/modules/mruby/include/mruby/irep.h +9 -3
  53. data/modules/mruby/include/mruby/khash.h +58 -41
  54. data/modules/mruby/include/mruby/numeric.h +38 -4
  55. data/modules/mruby/include/mruby/object.h +55 -0
  56. data/modules/mruby/include/mruby/opcode.h +160 -0
  57. data/modules/mruby/include/mruby/proc.h +19 -5
  58. data/modules/mruby/include/mruby/range.h +4 -3
  59. data/modules/mruby/include/mruby/re.h +20 -0
  60. data/modules/mruby/include/mruby/string.h +86 -47
  61. data/modules/mruby/include/mruby/value.h +100 -374
  62. data/modules/mruby/include/mruby/variable.h +34 -32
  63. data/modules/mruby/include/mruby/version.h +40 -0
  64. data/modules/mruby/include/mruby.h +211 -139
  65. data/modules/mruby/minirake +16 -9
  66. data/modules/mruby/mrbgems/default.gembox +12 -0
  67. data/modules/mruby/mrbgems/full-core.gembox +3 -3
  68. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
  69. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
  70. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
  71. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
  72. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  73. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  74. data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  75. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
  76. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  77. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
  78. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  79. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  80. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  81. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
  82. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
  83. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  84. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
  85. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
  86. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
  87. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  88. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  89. data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  90. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
  91. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
  92. data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
  93. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  94. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
  95. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  96. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
  97. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
  98. data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  99. data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  100. data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  101. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
  102. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
  103. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
  104. data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  105. data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
  106. data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
  107. data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  108. data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
  109. data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
  110. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
  111. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
  112. data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
  113. data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
  114. data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
  115. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
  116. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
  117. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
  118. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
  119. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
  120. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
  121. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
  122. data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  123. data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
  124. data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
  125. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
  126. data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
  127. data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
  128. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
  129. data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
  130. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
  131. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
  132. data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  133. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
  134. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
  135. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
  136. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
  137. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
  138. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
  139. data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
  140. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
  141. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
  142. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
  143. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
  144. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
  145. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
  146. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
  147. data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
  148. data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
  149. data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
  150. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
  151. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
  152. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
  153. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
  154. data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  155. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
  156. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
  157. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
  158. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
  159. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
  160. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
  161. data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
  162. data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
  163. data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
  164. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
  165. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
  166. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
  167. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
  168. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
  169. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
  170. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
  171. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
  172. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
  173. data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  174. data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
  175. data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
  176. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
  177. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
  178. data/modules/mruby/mrblib/array.rb +110 -4
  179. data/modules/mruby/mrblib/class.rb +1 -22
  180. data/modules/mruby/mrblib/compar.rb +10 -30
  181. data/modules/mruby/mrblib/enum.rb +64 -52
  182. data/modules/mruby/mrblib/error.rb +9 -4
  183. data/modules/mruby/mrblib/hash.rb +164 -23
  184. data/modules/mruby/mrblib/kernel.rb +26 -22
  185. data/modules/mruby/mrblib/mrblib.rake +4 -4
  186. data/modules/mruby/mrblib/numeric.rb +22 -9
  187. data/modules/mruby/mrblib/range.rb +24 -2
  188. data/modules/mruby/mrblib/string.rb +15 -3
  189. data/modules/mruby/src/array.c +279 -339
  190. data/modules/mruby/src/backtrace.c +68 -16
  191. data/modules/mruby/src/class.c +539 -379
  192. data/modules/mruby/src/codegen.c +424 -207
  193. data/modules/mruby/src/compar.c +1 -1
  194. data/modules/mruby/src/crc.c +7 -6
  195. data/modules/mruby/src/debug.c +37 -36
  196. data/modules/mruby/src/dump.c +463 -213
  197. data/modules/mruby/src/enum.c +1 -1
  198. data/modules/mruby/src/error.c +91 -92
  199. data/modules/mruby/src/error.h +3 -19
  200. data/modules/mruby/src/etc.c +85 -82
  201. data/modules/mruby/src/gc.c +134 -108
  202. data/modules/mruby/src/hash.c +161 -565
  203. data/modules/mruby/src/init.c +2 -13
  204. data/modules/mruby/src/kernel.c +217 -251
  205. data/modules/mruby/src/load.c +280 -283
  206. data/modules/mruby/src/mrb_throw.h +41 -0
  207. data/modules/mruby/src/mruby_core.rake +57 -7
  208. data/modules/mruby/src/node.h +104 -104
  209. data/modules/mruby/src/numeric.c +221 -208
  210. data/modules/mruby/src/object.c +41 -42
  211. data/modules/mruby/src/opcode.h +2 -160
  212. data/modules/mruby/src/parse.y +3430 -3223
  213. data/modules/mruby/src/pool.c +13 -9
  214. data/modules/mruby/src/print.c +20 -17
  215. data/modules/mruby/src/proc.c +77 -21
  216. data/modules/mruby/src/range.c +55 -45
  217. data/modules/mruby/src/state.c +95 -31
  218. data/modules/mruby/src/string.c +462 -468
  219. data/modules/mruby/src/symbol.c +95 -85
  220. data/modules/mruby/src/variable.c +104 -74
  221. data/modules/mruby/src/version.c +13 -0
  222. data/modules/mruby/src/vm.c +528 -296
  223. data/modules/mruby/tasks/libmruby.rake +9 -5
  224. data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
  225. data/modules/mruby/tasks/mrbgems.rake +21 -11
  226. data/modules/mruby/tasks/mrbgems_test.rake +46 -40
  227. data/modules/mruby/tasks/mruby_build.rake +54 -12
  228. data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
  229. data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
  230. data/modules/mruby/tasks/ruby_ext.rake +11 -2
  231. data/modules/mruby/tasks/toolchains/clang.rake +2 -1
  232. data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
  233. data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
  234. data/modules/mruby/test/assert.rb +30 -8
  235. data/modules/mruby/test/bintest.rb +10 -0
  236. data/modules/mruby/test/driver.c +74 -24
  237. data/modules/mruby/test/init_mrbtest.c +21 -2
  238. data/modules/mruby/test/mrbtest.rake +27 -5
  239. data/modules/mruby/test/t/argumenterror.rb +0 -5
  240. data/modules/mruby/test/t/array.rb +23 -7
  241. data/modules/mruby/test/t/bs_block.rb +32 -0
  242. data/modules/mruby/test/t/class.rb +29 -5
  243. data/modules/mruby/test/t/comparable.rb +20 -12
  244. data/modules/mruby/test/t/enumerable.rb +33 -7
  245. data/modules/mruby/test/t/exception.rb +63 -38
  246. data/modules/mruby/test/t/false.rb +2 -4
  247. data/modules/mruby/test/t/float.rb +39 -4
  248. data/modules/mruby/test/t/hash.rb +40 -6
  249. data/modules/mruby/test/t/indexerror.rb +0 -4
  250. data/modules/mruby/test/t/integer.rb +41 -5
  251. data/modules/mruby/test/t/kernel.rb +90 -3
  252. data/modules/mruby/test/t/localjumperror.rb +4 -4
  253. data/modules/mruby/test/t/methods.rb +1 -1
  254. data/modules/mruby/test/t/module.rb +43 -13
  255. data/modules/mruby/test/t/nameerror.rb +0 -4
  256. data/modules/mruby/test/t/nil.rb +5 -0
  257. data/modules/mruby/test/t/nomethoderror.rb +11 -2
  258. data/modules/mruby/test/t/numeric.rb +18 -4
  259. data/modules/mruby/test/t/proc.rb +59 -6
  260. data/modules/mruby/test/t/range.rb +15 -5
  261. data/modules/mruby/test/t/rangeerror.rb +0 -4
  262. data/modules/mruby/test/t/standarderror.rb +0 -4
  263. data/modules/mruby/test/t/string.rb +56 -12
  264. data/modules/mruby/test/t/superclass.rb +46 -0
  265. data/modules/mruby/test/t/symbol.rb +0 -4
  266. data/modules/mruby/test/t/syntax.rb +134 -1
  267. data/modules/mruby/test/t/true.rb +2 -4
  268. data/modules/mruby/test/t/typeerror.rb +0 -5
  269. data/modules/mruby/test/t/unicode.rb +35 -0
  270. data/modules/mruby/tools/mrbc/mrbc.c +9 -12
  271. data/modules/mruby/travis_config.rb +22 -2
  272. metadata +98 -1299
  273. data/modules/emscripten/AUTHORS +0 -117
  274. data/modules/emscripten/CONTRIBUTING.markdown +0 -5
  275. data/modules/emscripten/ChangeLog +0 -468
  276. data/modules/emscripten/LICENSE +0 -94
  277. data/modules/emscripten/README.markdown +0 -14
  278. data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
  279. data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
  280. data/modules/emscripten/em++ +0 -12
  281. data/modules/emscripten/em++.bat +0 -2
  282. data/modules/emscripten/em-config +0 -24
  283. data/modules/emscripten/em-config.bat +0 -2
  284. data/modules/emscripten/emar +0 -24
  285. data/modules/emscripten/emar.bat +0 -2
  286. data/modules/emscripten/emcc +0 -2069
  287. data/modules/emscripten/emcc.bat +0 -2
  288. data/modules/emscripten/emcc.py +0 -5
  289. data/modules/emscripten/emconfigure +0 -27
  290. data/modules/emscripten/emconfigure.bat +0 -2
  291. data/modules/emscripten/emlink.py +0 -33
  292. data/modules/emscripten/emmake +0 -29
  293. data/modules/emscripten/emmake.bat +0 -2
  294. data/modules/emscripten/emranlib +0 -9
  295. data/modules/emscripten/emranlib.bat +0 -2
  296. data/modules/emscripten/emrun +0 -1087
  297. data/modules/emscripten/emrun.bat +0 -2
  298. data/modules/emscripten/emscons +0 -20
  299. data/modules/emscripten/emscripten.py +0 -1347
  300. data/modules/emscripten/package.json +0 -7
  301. data/modules/emscripten/patches/README +0 -4
  302. data/modules/emscripten/patches/series +0 -2
  303. data/modules/emscripten/scons-tools/closure.py +0 -28
  304. data/modules/emscripten/scons-tools/emscripten.py +0 -364
  305. data/modules/emscripten/scons-tools/llvm.py +0 -34
  306. data/modules/emscripten/src/analyzer.js +0 -1781
  307. data/modules/emscripten/src/closure-externs.js +0 -110
  308. data/modules/emscripten/src/compiler.html +0 -48
  309. data/modules/emscripten/src/compiler.js +0 -331
  310. data/modules/emscripten/src/compiler_phase.html +0 -33
  311. data/modules/emscripten/src/corruptionCheck.js +0 -98
  312. data/modules/emscripten/src/determinstic.js +0 -20
  313. data/modules/emscripten/src/embind/embind.js +0 -1677
  314. data/modules/emscripten/src/embind/emval.js +0 -284
  315. data/modules/emscripten/src/emrun_postjs.js +0 -20
  316. data/modules/emscripten/src/emrun_prejs.js +0 -5
  317. data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
  318. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
  319. data/modules/emscripten/src/experimental/batching.diff +0 -44
  320. data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
  321. data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
  322. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
  323. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
  324. data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
  325. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
  326. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
  327. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
  328. data/modules/emscripten/src/experimental/stringCache.diff +0 -147
  329. data/modules/emscripten/src/fastLong.js +0 -299
  330. data/modules/emscripten/src/gl-matrix.js +0 -1952
  331. data/modules/emscripten/src/headless.js +0 -295
  332. data/modules/emscripten/src/headlessCanvas.js +0 -618
  333. data/modules/emscripten/src/hello_world.js +0 -92
  334. data/modules/emscripten/src/intertyper.js +0 -1228
  335. data/modules/emscripten/src/jsifier.js +0 -1969
  336. data/modules/emscripten/src/library.js +0 -9196
  337. data/modules/emscripten/src/library_browser.js +0 -988
  338. data/modules/emscripten/src/library_egl.js +0 -564
  339. data/modules/emscripten/src/library_fs.js +0 -1619
  340. data/modules/emscripten/src/library_gc.js +0 -236
  341. data/modules/emscripten/src/library_gl.js +0 -5194
  342. data/modules/emscripten/src/library_glfw.js +0 -585
  343. data/modules/emscripten/src/library_glut.js +0 -504
  344. data/modules/emscripten/src/library_idbfs.js +0 -216
  345. data/modules/emscripten/src/library_jansson.js +0 -320
  346. data/modules/emscripten/src/library_memfs.js +0 -303
  347. data/modules/emscripten/src/library_nodefs.js +0 -286
  348. data/modules/emscripten/src/library_openal.js +0 -915
  349. data/modules/emscripten/src/library_path.js +0 -133
  350. data/modules/emscripten/src/library_sdl.js +0 -2728
  351. data/modules/emscripten/src/library_sockfs.js +0 -578
  352. data/modules/emscripten/src/library_strtok_r.c +0 -97
  353. data/modules/emscripten/src/library_tty.js +0 -146
  354. data/modules/emscripten/src/library_uuid.js +0 -140
  355. data/modules/emscripten/src/library_xlib.js +0 -23
  356. data/modules/emscripten/src/long.js +0 -1609
  357. data/modules/emscripten/src/modules.js +0 -543
  358. data/modules/emscripten/src/parseTools.js +0 -2723
  359. data/modules/emscripten/src/postamble.js +0 -239
  360. data/modules/emscripten/src/postamble_sharedlib.js +0 -16
  361. data/modules/emscripten/src/preamble.js +0 -1233
  362. data/modules/emscripten/src/preamble_sharedlib.js +0 -25
  363. data/modules/emscripten/src/proxyClient.js +0 -82
  364. data/modules/emscripten/src/proxyWorker.js +0 -143
  365. data/modules/emscripten/src/relooper/README.markdown +0 -14
  366. data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
  367. data/modules/emscripten/src/relooper/Relooper.h +0 -257
  368. data/modules/emscripten/src/relooper/doit.sh +0 -70
  369. data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
  370. data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
  371. data/modules/emscripten/src/relooper/fuzzer.py +0 -131
  372. data/modules/emscripten/src/relooper/ministring.h +0 -35
  373. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  374. data/modules/emscripten/src/relooper/test.cpp +0 -290
  375. data/modules/emscripten/src/relooper/test.txt +0 -317
  376. data/modules/emscripten/src/relooper/test2.c +0 -44
  377. data/modules/emscripten/src/relooper/test2.txt +0 -26
  378. data/modules/emscripten/src/relooper/test3.c +0 -42
  379. data/modules/emscripten/src/relooper/test3.txt +0 -56
  380. data/modules/emscripten/src/relooper/test4.cpp +0 -40
  381. data/modules/emscripten/src/relooper/test4.txt +0 -44
  382. data/modules/emscripten/src/relooper/test5.cpp +0 -40
  383. data/modules/emscripten/src/relooper/test5.txt +0 -56
  384. data/modules/emscripten/src/relooper/test6.cpp +0 -31
  385. data/modules/emscripten/src/relooper/test6.txt +0 -26
  386. data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
  387. data/modules/emscripten/src/relooper/test_dead.txt +0 -9
  388. data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
  389. data/modules/emscripten/src/relooper/test_debug.txt +0 -142
  390. data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
  391. data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
  392. data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
  393. data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
  394. data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
  395. data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
  396. data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
  397. data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
  398. data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
  399. data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
  400. data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
  401. data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
  402. data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
  403. data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
  404. data/modules/emscripten/src/relooper/testit.sh +0 -62
  405. data/modules/emscripten/src/relooper/updateit.sh +0 -17
  406. data/modules/emscripten/src/runtime.js +0 -604
  407. data/modules/emscripten/src/settings.js +0 -476
  408. data/modules/emscripten/src/shell.html +0 -95
  409. data/modules/emscripten/src/shell.js +0 -173
  410. data/modules/emscripten/src/shell_sharedlib.js +0 -29
  411. data/modules/emscripten/src/simd.js +0 -1128
  412. data/modules/emscripten/src/socket.io.js +0 -3870
  413. data/modules/emscripten/src/struct_info.json +0 -1077
  414. data/modules/emscripten/src/utility.js +0 -411
  415. data/modules/emscripten/src/wrtcp.js +0 -821
  416. data/modules/emscripten/system/bin/sdl-config +0 -13
  417. data/modules/emscripten/system/include/AL/al.h +0 -172
  418. data/modules/emscripten/system/include/AL/alc.h +0 -84
  419. data/modules/emscripten/system/include/EGL/egl.h +0 -329
  420. data/modules/emscripten/system/include/EGL/eglext.h +0 -398
  421. data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
  422. data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
  423. data/modules/emscripten/system/include/GL/gl.h +0 -2241
  424. data/modules/emscripten/system/include/GL/glew.h +0 -6
  425. data/modules/emscripten/system/include/GL/glext.h +0 -11127
  426. data/modules/emscripten/system/include/GL/glfw.h +0 -518
  427. data/modules/emscripten/system/include/GL/glu.h +0 -353
  428. data/modules/emscripten/system/include/GL/glut.h +0 -21
  429. data/modules/emscripten/system/include/GLES/gl.h +0 -770
  430. data/modules/emscripten/system/include/GLES/glext.h +0 -1278
  431. data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
  432. data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
  433. data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
  434. data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
  435. data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
  436. data/modules/emscripten/system/include/SDL/COPYING +0 -19
  437. data/modules/emscripten/system/include/SDL/SDL.h +0 -162
  438. data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
  439. data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
  440. data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
  441. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
  442. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
  443. data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
  444. data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
  445. data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
  446. data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
  447. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
  448. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
  449. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
  450. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
  451. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
  452. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
  453. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
  454. data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
  455. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
  456. data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
  457. data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
  458. data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
  459. data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
  460. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
  461. data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
  462. data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
  463. data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
  464. data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
  465. data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
  466. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
  467. data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
  468. data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
  469. data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
  470. data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
  471. data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
  472. data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
  473. data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
  474. data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
  475. data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
  476. data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
  477. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
  478. data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
  479. data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
  480. data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
  481. data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
  482. data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
  483. data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
  484. data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
  485. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
  486. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
  487. data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
  488. data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
  489. data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
  490. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
  491. data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
  492. data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
  493. data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
  494. data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
  495. data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
  496. data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
  497. data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
  498. data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
  499. data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
  500. data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
  501. data/modules/emscripten/system/include/SDL/close_code.h +0 -37
  502. data/modules/emscripten/system/include/X11/X.h +0 -717
  503. data/modules/emscripten/system/include/X11/Xatom.h +0 -79
  504. data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
  505. data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
  506. data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
  507. data/modules/emscripten/system/include/X11/Xutil.h +0 -826
  508. data/modules/emscripten/system/include/X11/keysym.h +0 -73
  509. data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
  510. data/modules/emscripten/system/include/compat/ctype.h +0 -34
  511. data/modules/emscripten/system/include/compat/malloc.h +0 -48
  512. data/modules/emscripten/system/include/compat/math.h +0 -14
  513. data/modules/emscripten/system/include/compat/netdb.h +0 -22
  514. data/modules/emscripten/system/include/compat/stdarg.h +0 -16
  515. data/modules/emscripten/system/include/compat/stdlib.h +0 -16
  516. data/modules/emscripten/system/include/compat/string.h +0 -17
  517. data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
  518. data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
  519. data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
  520. data/modules/emscripten/system/include/compat/time.h +0 -18
  521. data/modules/emscripten/system/include/compat/unistd.h +0 -16
  522. data/modules/emscripten/system/include/compat/wchar.h +0 -23
  523. data/modules/emscripten/system/include/compat/wctype.h +0 -23
  524. data/modules/emscripten/system/include/compat/xlocale.h +0 -19
  525. data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
  526. data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
  527. data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
  528. data/modules/emscripten/system/include/emscripten/val.h +0 -311
  529. data/modules/emscripten/system/include/emscripten/vector.h +0 -34
  530. data/modules/emscripten/system/include/emscripten/wire.h +0 -393
  531. data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
  532. data/modules/emscripten/system/include/execinfo.h +0 -44
  533. data/modules/emscripten/system/include/gc.h +0 -70
  534. data/modules/emscripten/system/include/gfx/png.h +0 -3798
  535. data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
  536. data/modules/emscripten/system/include/gfx/tiff.h +0 -654
  537. data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
  538. data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
  539. data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
  540. data/modules/emscripten/system/include/jansson.h +0 -323
  541. data/modules/emscripten/system/include/jansson_config.h +0 -54
  542. data/modules/emscripten/system/include/libc/aio.h +0 -69
  543. data/modules/emscripten/system/include/libc/alloca.h +0 -21
  544. data/modules/emscripten/system/include/libc/ar.h +0 -25
  545. data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
  546. data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
  547. data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
  548. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
  549. data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
  550. data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
  551. data/modules/emscripten/system/include/libc/assert.h +0 -19
  552. data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
  553. data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
  554. data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
  555. data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
  556. data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
  557. data/modules/emscripten/system/include/libc/bits/float.h +0 -17
  558. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  559. data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
  560. data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
  561. data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
  562. data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
  563. data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
  564. data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
  565. data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
  566. data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
  567. data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
  568. data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
  569. data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
  570. data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
  571. data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
  572. data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
  573. data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
  574. data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
  575. data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
  576. data/modules/emscripten/system/include/libc/bits/user.h +0 -48
  577. data/modules/emscripten/system/include/libc/byteswap.h +0 -26
  578. data/modules/emscripten/system/include/libc/complex.h +0 -125
  579. data/modules/emscripten/system/include/libc/cpio.h +0 -29
  580. data/modules/emscripten/system/include/libc/crypt.h +0 -20
  581. data/modules/emscripten/system/include/libc/ctype.h +0 -67
  582. data/modules/emscripten/system/include/libc/dirent.h +0 -79
  583. data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
  584. data/modules/emscripten/system/include/libc/elf.h +0 -2555
  585. data/modules/emscripten/system/include/libc/endian.h +0 -82
  586. data/modules/emscripten/system/include/libc/err.h +0 -25
  587. data/modules/emscripten/system/include/libc/errno.h +0 -27
  588. data/modules/emscripten/system/include/libc/fcntl.h +0 -175
  589. data/modules/emscripten/system/include/libc/features.h +0 -32
  590. data/modules/emscripten/system/include/libc/fenv.h +0 -28
  591. data/modules/emscripten/system/include/libc/float.h +0 -34
  592. data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
  593. data/modules/emscripten/system/include/libc/ftw.h +0 -42
  594. data/modules/emscripten/system/include/libc/getopt.h +0 -31
  595. data/modules/emscripten/system/include/libc/glob.h +0 -48
  596. data/modules/emscripten/system/include/libc/grp.h +0 -52
  597. data/modules/emscripten/system/include/libc/iconv.h +0 -24
  598. data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
  599. data/modules/emscripten/system/include/libc/inttypes.h +0 -227
  600. data/modules/emscripten/system/include/libc/iso646.h +0 -20
  601. data/modules/emscripten/system/include/libc/langinfo.h +0 -88
  602. data/modules/emscripten/system/include/libc/lastlog.h +0 -1
  603. data/modules/emscripten/system/include/libc/libgen.h +0 -15
  604. data/modules/emscripten/system/include/libc/libintl.h +0 -25
  605. data/modules/emscripten/system/include/libc/limits.h +0 -146
  606. data/modules/emscripten/system/include/libc/link.h +0 -54
  607. data/modules/emscripten/system/include/libc/locale.h +0 -82
  608. data/modules/emscripten/system/include/libc/malloc.h +0 -0
  609. data/modules/emscripten/system/include/libc/math.h +0 -422
  610. data/modules/emscripten/system/include/libc/memory.h +0 -1
  611. data/modules/emscripten/system/include/libc/mntent.h +0 -44
  612. data/modules/emscripten/system/include/libc/monetary.h +0 -23
  613. data/modules/emscripten/system/include/libc/mqueue.h +0 -36
  614. data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
  615. data/modules/emscripten/system/include/libc/net/if.h +0 -135
  616. data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
  617. data/modules/emscripten/system/include/libc/net/route.h +0 -124
  618. data/modules/emscripten/system/include/libc/netdb.h +0 -161
  619. data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
  620. data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
  621. data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
  622. data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
  623. data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
  624. data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
  625. data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
  626. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
  627. data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
  628. data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
  629. data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
  630. data/modules/emscripten/system/include/libc/nl_types.h +0 -22
  631. data/modules/emscripten/system/include/libc/paths.h +0 -32
  632. data/modules/emscripten/system/include/libc/poll.h +0 -46
  633. data/modules/emscripten/system/include/libc/pthread.h +0 -222
  634. data/modules/emscripten/system/include/libc/pty.h +0 -18
  635. data/modules/emscripten/system/include/libc/pwd.h +0 -49
  636. data/modules/emscripten/system/include/libc/readme.txt +0 -3
  637. data/modules/emscripten/system/include/libc/regex.h +0 -62
  638. data/modules/emscripten/system/include/libc/resolv.h +0 -144
  639. data/modules/emscripten/system/include/libc/sched.h +0 -132
  640. data/modules/emscripten/system/include/libc/search.h +0 -51
  641. data/modules/emscripten/system/include/libc/semaphore.h +0 -35
  642. data/modules/emscripten/system/include/libc/setjmp.h +0 -42
  643. data/modules/emscripten/system/include/libc/shadow.h +0 -44
  644. data/modules/emscripten/system/include/libc/signal.h +0 -255
  645. data/modules/emscripten/system/include/libc/spawn.h +0 -74
  646. data/modules/emscripten/system/include/libc/stdalign.h +0 -15
  647. data/modules/emscripten/system/include/libc/stdarg.h +0 -25
  648. data/modules/emscripten/system/include/libc/stdbool.h +0 -14
  649. data/modules/emscripten/system/include/libc/stddef.h +0 -18
  650. data/modules/emscripten/system/include/libc/stdint.h +0 -117
  651. data/modules/emscripten/system/include/libc/stdio.h +0 -199
  652. data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
  653. data/modules/emscripten/system/include/libc/stdlib.h +0 -171
  654. data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
  655. data/modules/emscripten/system/include/libc/string.h +0 -102
  656. data/modules/emscripten/system/include/libc/strings.h +0 -35
  657. data/modules/emscripten/system/include/libc/stropts.h +0 -139
  658. data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
  659. data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
  660. data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
  661. data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
  662. data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
  663. data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
  664. data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
  665. data/modules/emscripten/system/include/libc/sys/file.h +0 -21
  666. data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
  667. data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
  668. data/modules/emscripten/system/include/libc/sys/io.h +0 -17
  669. data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
  670. data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
  671. data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
  672. data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
  673. data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
  674. data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
  675. data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
  676. data/modules/emscripten/system/include/libc/sys/param.h +0 -35
  677. data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
  678. data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
  679. data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
  680. data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
  681. data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
  682. data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
  683. data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
  684. data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
  685. data/modules/emscripten/system/include/libc/sys/select.h +0 -42
  686. data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
  687. data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
  688. data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
  689. data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
  690. data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
  691. data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
  692. data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
  693. data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
  694. data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
  695. data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
  696. data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
  697. data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
  698. data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
  699. data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
  700. data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
  701. data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
  702. data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
  703. data/modules/emscripten/system/include/libc/sys/time.h +0 -57
  704. data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
  705. data/modules/emscripten/system/include/libc/sys/times.h +0 -26
  706. data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
  707. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
  708. data/modules/emscripten/system/include/libc/sys/types.h +0 -91
  709. data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
  710. data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
  711. data/modules/emscripten/system/include/libc/sys/un.h +0 -32
  712. data/modules/emscripten/system/include/libc/sys/user.h +0 -16
  713. data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
  714. data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
  715. data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
  716. data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
  717. data/modules/emscripten/system/include/libc/syscall.h +0 -1
  718. data/modules/emscripten/system/include/libc/sysexits.h +0 -21
  719. data/modules/emscripten/system/include/libc/syslog.h +0 -104
  720. data/modules/emscripten/system/include/libc/tar.h +0 -33
  721. data/modules/emscripten/system/include/libc/termios.h +0 -46
  722. data/modules/emscripten/system/include/libc/tgmath.h +0 -270
  723. data/modules/emscripten/system/include/libc/time.h +0 -132
  724. data/modules/emscripten/system/include/libc/ucontext.h +0 -25
  725. data/modules/emscripten/system/include/libc/ulimit.h +0 -17
  726. data/modules/emscripten/system/include/libc/unistd.h +0 -519
  727. data/modules/emscripten/system/include/libc/utime.h +0 -24
  728. data/modules/emscripten/system/include/libc/utmp.h +0 -47
  729. data/modules/emscripten/system/include/libc/utmpx.h +0 -58
  730. data/modules/emscripten/system/include/libc/values.h +0 -39
  731. data/modules/emscripten/system/include/libc/wchar.h +0 -183
  732. data/modules/emscripten/system/include/libc/wctype.h +0 -77
  733. data/modules/emscripten/system/include/libc/wordexp.h +0 -42
  734. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
  735. data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
  736. data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
  737. data/modules/emscripten/system/include/libcxx/__config +0 -610
  738. data/modules/emscripten/system/include/libcxx/__debug +0 -218
  739. data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
  740. data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
  741. data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
  742. data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
  743. data/modules/emscripten/system/include/libcxx/__locale +0 -1445
  744. data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
  745. data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
  746. data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
  747. data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
  748. data/modules/emscripten/system/include/libcxx/__tree +0 -2309
  749. data/modules/emscripten/system/include/libcxx/__tuple +0 -305
  750. data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
  751. data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
  752. data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
  753. data/modules/emscripten/system/include/libcxx/array +0 -342
  754. data/modules/emscripten/system/include/libcxx/atomic +0 -1531
  755. data/modules/emscripten/system/include/libcxx/bitset +0 -1081
  756. data/modules/emscripten/system/include/libcxx/cassert +0 -25
  757. data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
  758. data/modules/emscripten/system/include/libcxx/cctype +0 -164
  759. data/modules/emscripten/system/include/libcxx/cerrno +0 -393
  760. data/modules/emscripten/system/include/libcxx/cfenv +0 -82
  761. data/modules/emscripten/system/include/libcxx/cfloat +0 -78
  762. data/modules/emscripten/system/include/libcxx/chrono +0 -1027
  763. data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
  764. data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
  765. data/modules/emscripten/system/include/libcxx/climits +0 -48
  766. data/modules/emscripten/system/include/libcxx/clocale +0 -53
  767. data/modules/emscripten/system/include/libcxx/cmath +0 -1690
  768. data/modules/emscripten/system/include/libcxx/codecvt +0 -550
  769. data/modules/emscripten/system/include/libcxx/complex +0 -1567
  770. data/modules/emscripten/system/include/libcxx/complex.h +0 -35
  771. data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
  772. data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
  773. data/modules/emscripten/system/include/libcxx/csignal +0 -58
  774. data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
  775. data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
  776. data/modules/emscripten/system/include/libcxx/cstddef +0 -103
  777. data/modules/emscripten/system/include/libcxx/cstdint +0 -191
  778. data/modules/emscripten/system/include/libcxx/cstdio +0 -182
  779. data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
  780. data/modules/emscripten/system/include/libcxx/cstring +0 -112
  781. data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
  782. data/modules/emscripten/system/include/libcxx/ctime +0 -72
  783. data/modules/emscripten/system/include/libcxx/cwchar +0 -217
  784. data/modules/emscripten/system/include/libcxx/cwctype +0 -213
  785. data/modules/emscripten/system/include/libcxx/deque +0 -2873
  786. data/modules/emscripten/system/include/libcxx/dynarray +0 -311
  787. data/modules/emscripten/system/include/libcxx/exception +0 -250
  788. data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
  789. data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
  790. data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
  791. data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
  792. data/modules/emscripten/system/include/libcxx/fstream +0 -1431
  793. data/modules/emscripten/system/include/libcxx/functional +0 -2418
  794. data/modules/emscripten/system/include/libcxx/future +0 -2615
  795. data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
  796. data/modules/emscripten/system/include/libcxx/iomanip +0 -651
  797. data/modules/emscripten/system/include/libcxx/ios +0 -1023
  798. data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
  799. data/modules/emscripten/system/include/libcxx/iostream +0 -60
  800. data/modules/emscripten/system/include/libcxx/istream +0 -1716
  801. data/modules/emscripten/system/include/libcxx/iterator +0 -1568
  802. data/modules/emscripten/system/include/libcxx/limits +0 -813
  803. data/modules/emscripten/system/include/libcxx/list +0 -2355
  804. data/modules/emscripten/system/include/libcxx/locale +0 -4465
  805. data/modules/emscripten/system/include/libcxx/map +0 -2045
  806. data/modules/emscripten/system/include/libcxx/memory +0 -5448
  807. data/modules/emscripten/system/include/libcxx/mutex +0 -566
  808. data/modules/emscripten/system/include/libcxx/new +0 -146
  809. data/modules/emscripten/system/include/libcxx/numeric +0 -197
  810. data/modules/emscripten/system/include/libcxx/optional +0 -697
  811. data/modules/emscripten/system/include/libcxx/ostream +0 -1295
  812. data/modules/emscripten/system/include/libcxx/queue +0 -717
  813. data/modules/emscripten/system/include/libcxx/random +0 -6725
  814. data/modules/emscripten/system/include/libcxx/ratio +0 -487
  815. data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
  816. data/modules/emscripten/system/include/libcxx/regex +0 -6487
  817. data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
  818. data/modules/emscripten/system/include/libcxx/set +0 -1189
  819. data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
  820. data/modules/emscripten/system/include/libcxx/sstream +0 -972
  821. data/modules/emscripten/system/include/libcxx/stack +0 -292
  822. data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
  823. data/modules/emscripten/system/include/libcxx/streambuf +0 -564
  824. data/modules/emscripten/system/include/libcxx/string +0 -4198
  825. data/modules/emscripten/system/include/libcxx/strstream +0 -400
  826. data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
  827. data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
  828. data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
  829. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
  830. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
  831. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
  832. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
  833. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
  834. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
  835. data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
  836. data/modules/emscripten/system/include/libcxx/system_error +0 -642
  837. data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
  838. data/modules/emscripten/system/include/libcxx/thread +0 -458
  839. data/modules/emscripten/system/include/libcxx/tuple +0 -1102
  840. data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
  841. data/modules/emscripten/system/include/libcxx/typeindex +0 -103
  842. data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
  843. data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
  844. data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
  845. data/modules/emscripten/system/include/libcxx/utility +0 -768
  846. data/modules/emscripten/system/include/libcxx/valarray +0 -4779
  847. data/modules/emscripten/system/include/libcxx/vector +0 -3246
  848. data/modules/emscripten/system/include/unwind.h +0 -154
  849. data/modules/emscripten/system/include/uuid/uuid.h +0 -35
  850. data/modules/emscripten/system/include/zconf.h +0 -428
  851. data/modules/emscripten/system/include/zlib.h +0 -1613
  852. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
  853. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
  854. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
  855. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
  856. data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
  857. data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
  858. data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
  859. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
  860. data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
  861. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
  862. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
  863. data/modules/emscripten/system/lib/debugging.cpp +0 -24
  864. data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
  865. data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
  866. data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
  867. data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
  868. data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
  869. data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
  870. data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
  871. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
  872. data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
  873. data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
  874. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
  875. data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
  876. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
  877. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
  878. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
  879. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
  880. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
  881. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
  882. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
  883. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
  884. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
  885. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
  886. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
  887. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
  888. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
  889. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
  890. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
  891. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
  892. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
  893. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
  894. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
  895. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
  896. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
  897. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
  898. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
  899. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
  900. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
  901. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
  902. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
  903. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
  904. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
  905. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
  906. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
  907. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
  908. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
  909. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
  910. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
  911. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
  912. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
  913. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
  914. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
  915. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
  916. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
  917. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
  918. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
  919. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
  920. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
  921. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
  922. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
  923. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
  924. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
  925. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
  926. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
  927. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
  928. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
  929. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
  930. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
  931. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
  932. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
  933. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
  934. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
  935. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
  936. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
  937. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
  938. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
  939. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
  940. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
  941. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
  942. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
  943. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
  944. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
  945. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
  946. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
  947. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
  948. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
  949. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
  950. data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
  951. data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
  952. data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
  953. data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
  954. data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
  955. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
  956. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
  957. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
  958. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
  959. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
  960. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
  961. data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
  962. data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
  963. data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
  964. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
  965. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
  966. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
  967. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
  968. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
  969. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
  970. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
  971. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
  972. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
  973. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
  974. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
  975. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
  976. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
  977. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
  978. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
  979. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
  980. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
  981. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
  982. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
  983. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
  984. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
  985. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
  986. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
  987. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
  988. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
  989. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
  990. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
  991. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
  992. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
  993. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
  994. data/modules/emscripten/system/lib/libc.symbols +0 -81
  995. data/modules/emscripten/system/lib/libcextra.symbols +0 -115
  996. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
  997. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
  998. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
  999. data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
  1000. data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
  1001. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
  1002. data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
  1003. data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
  1004. data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
  1005. data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
  1006. data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
  1007. data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
  1008. data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
  1009. data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
  1010. data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
  1011. data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
  1012. data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
  1013. data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
  1014. data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
  1015. data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
  1016. data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
  1017. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
  1018. data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
  1019. data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
  1020. data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
  1021. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
  1022. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
  1023. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
  1024. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
  1025. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
  1026. data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
  1027. data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
  1028. data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
  1029. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
  1030. data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
  1031. data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
  1032. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
  1033. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
  1034. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
  1035. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
  1036. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
  1037. data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
  1038. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
  1039. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
  1040. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
  1041. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
  1042. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
  1043. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
  1044. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
  1045. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
  1046. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
  1047. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
  1048. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
  1049. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
  1050. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
  1051. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
  1052. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
  1053. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
  1054. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
  1055. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
  1056. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
  1057. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
  1058. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
  1059. data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
  1060. data/modules/emscripten/system/lib/sdl.cpp +0 -13
  1061. data/modules/emscripten/system/lib/sdl.symbols +0 -1
  1062. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
  1063. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
  1064. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
  1065. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
  1066. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
  1067. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
  1068. data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
  1069. data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
  1070. data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
  1071. data/modules/emscripten/third_party/ansidecl.h +0 -371
  1072. data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
  1073. data/modules/emscripten/third_party/closure-compiler/README +0 -292
  1074. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  1075. data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
  1076. data/modules/emscripten/third_party/cp-demangle.h +0 -161
  1077. data/modules/emscripten/third_party/demangle.h +0 -549
  1078. data/modules/emscripten/third_party/demangler.py +0 -49
  1079. data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
  1080. data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
  1081. data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
  1082. data/modules/emscripten/third_party/jni/emjvm.h +0 -8
  1083. data/modules/emscripten/third_party/jni/emjvm.js +0 -185
  1084. data/modules/emscripten/third_party/jni/jni.h +0 -1154
  1085. data/modules/emscripten/third_party/libiberty.h +0 -634
  1086. data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
  1087. data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
  1088. data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
  1089. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
  1090. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
  1091. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
  1092. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
  1093. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
  1094. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
  1095. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
  1096. data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
  1097. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
  1098. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
  1099. data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
  1100. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
  1101. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
  1102. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
  1103. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
  1104. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
  1105. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
  1106. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
  1107. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
  1108. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
  1109. data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
  1110. data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
  1111. data/modules/emscripten/third_party/lzma.js/post.js +0 -13
  1112. data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
  1113. data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
  1114. data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
  1115. data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
  1116. data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
  1117. data/modules/emscripten/third_party/ply/CHANGES +0 -1093
  1118. data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
  1119. data/modules/emscripten/third_party/ply/README +0 -271
  1120. data/modules/emscripten/third_party/ply/TODO +0 -16
  1121. data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
  1122. data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
  1123. data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
  1124. data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
  1125. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
  1126. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
  1127. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
  1128. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
  1129. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
  1130. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
  1131. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
  1132. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
  1133. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
  1134. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
  1135. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
  1136. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
  1137. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
  1138. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
  1139. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
  1140. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
  1141. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
  1142. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
  1143. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
  1144. data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
  1145. data/modules/emscripten/third_party/ply/example/README +0 -10
  1146. data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
  1147. data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
  1148. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
  1149. data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
  1150. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
  1151. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
  1152. data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
  1153. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
  1154. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
  1155. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
  1156. data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
  1157. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
  1158. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
  1159. data/modules/emscripten/third_party/ply/example/yply/README +0 -41
  1160. data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
  1161. data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
  1162. data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
  1163. data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
  1164. data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
  1165. data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
  1166. data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
  1167. data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
  1168. data/modules/emscripten/third_party/ply/setup.py +0 -31
  1169. data/modules/emscripten/third_party/ply/test/README +0 -7
  1170. data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
  1171. data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
  1172. data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
  1173. data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
  1174. data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
  1175. data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
  1176. data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
  1177. data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
  1178. data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
  1179. data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
  1180. data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
  1181. data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
  1182. data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
  1183. data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
  1184. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
  1185. data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
  1186. data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
  1187. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
  1188. data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
  1189. data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
  1190. data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
  1191. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
  1192. data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
  1193. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
  1194. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
  1195. data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
  1196. data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
  1197. data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
  1198. data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
  1199. data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
  1200. data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
  1201. data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
  1202. data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
  1203. data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
  1204. data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
  1205. data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
  1206. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
  1207. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
  1208. data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
  1209. data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
  1210. data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
  1211. data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
  1212. data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
  1213. data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
  1214. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
  1215. data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
  1216. data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
  1217. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
  1218. data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
  1219. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
  1220. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
  1221. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
  1222. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
  1223. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
  1224. data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
  1225. data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
  1226. data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
  1227. data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
  1228. data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
  1229. data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
  1230. data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
  1231. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
  1232. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
  1233. data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
  1234. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
  1235. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
  1236. data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
  1237. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
  1238. data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
  1239. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
  1240. data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
  1241. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
  1242. data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
  1243. data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
  1244. data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
  1245. data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
  1246. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
  1247. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
  1248. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
  1249. data/modules/emscripten/third_party/readme.txt +0 -7
  1250. data/modules/emscripten/third_party/stb_image.c +0 -4673
  1251. data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
  1252. data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
  1253. data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
  1254. data/modules/emscripten/third_party/websockify/Makefile +0 -11
  1255. data/modules/emscripten/third_party/websockify/README.md +0 -168
  1256. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
  1257. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
  1258. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
  1259. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
  1260. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
  1261. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
  1262. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
  1263. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
  1264. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
  1265. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
  1266. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
  1267. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
  1268. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
  1269. data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
  1270. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
  1271. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
  1272. data/modules/emscripten/third_party/websockify/docs/notes +0 -17
  1273. data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
  1274. data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
  1275. data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
  1276. data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
  1277. data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
  1278. data/modules/emscripten/third_party/websockify/include/util.js +0 -359
  1279. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
  1280. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  1281. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
  1282. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
  1283. data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
  1284. data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
  1285. data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
  1286. data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
  1287. data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
  1288. data/modules/emscripten/third_party/websockify/other/README.md +0 -51
  1289. data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
  1290. data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
  1291. data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
  1292. data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
  1293. data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
  1294. data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
  1295. data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
  1296. data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
  1297. data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
  1298. data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
  1299. data/modules/emscripten/third_party/websockify/rebind +0 -18
  1300. data/modules/emscripten/third_party/websockify/rebind.c +0 -94
  1301. data/modules/emscripten/third_party/websockify/run +0 -5
  1302. data/modules/emscripten/third_party/websockify/setup.py +0 -30
  1303. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
  1304. data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
  1305. data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
  1306. data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
  1307. data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
  1308. data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
  1309. data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
  1310. data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
  1311. data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
  1312. data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
  1313. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
  1314. data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
  1315. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
  1316. data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
  1317. data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
  1318. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
  1319. data/modules/emscripten/third_party/websockify/websockify.py +0 -5
  1320. data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
  1321. data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
  1322. data/modules/emscripten/tools/__init__.py +0 -0
  1323. data/modules/emscripten/tools/asm_module.py +0 -275
  1324. data/modules/emscripten/tools/autodebugger.py +0 -291
  1325. data/modules/emscripten/tools/autodebugger_c.py +0 -37
  1326. data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
  1327. data/modules/emscripten/tools/autodebugger_js.py +0 -47
  1328. data/modules/emscripten/tools/autodediffer.py +0 -60
  1329. data/modules/emscripten/tools/bindings_generator.py +0 -832
  1330. data/modules/emscripten/tools/bisect_pair.py +0 -88
  1331. data/modules/emscripten/tools/cache.py +0 -196
  1332. data/modules/emscripten/tools/clean_webconsole.py +0 -34
  1333. data/modules/emscripten/tools/crunch-worker.js +0 -124
  1334. data/modules/emscripten/tools/diff_autodebugger.py +0 -15
  1335. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
  1336. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
  1337. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
  1338. data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
  1339. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
  1340. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
  1341. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
  1342. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
  1343. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
  1344. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
  1345. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
  1346. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
  1347. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
  1348. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
  1349. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
  1350. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
  1351. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
  1352. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
  1353. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
  1354. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
  1355. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
  1356. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
  1357. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
  1358. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
  1359. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
  1360. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
  1361. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
  1362. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
  1363. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
  1364. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
  1365. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
  1366. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
  1367. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
  1368. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
  1369. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
  1370. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
  1371. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
  1372. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
  1373. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
  1374. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
  1375. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
  1376. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
  1377. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
  1378. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
  1379. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
  1380. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
  1381. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
  1382. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
  1383. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
  1384. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
  1385. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
  1386. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
  1387. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
  1388. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
  1389. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
  1390. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
  1391. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
  1392. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
  1393. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
  1394. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
  1395. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
  1396. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
  1397. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
  1398. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
  1399. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
  1400. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
  1401. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
  1402. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
  1403. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
  1404. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
  1405. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
  1406. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
  1407. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
  1408. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
  1409. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
  1410. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
  1411. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
  1412. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
  1413. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
  1414. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
  1415. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
  1416. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
  1417. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
  1418. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
  1419. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
  1420. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
  1421. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
  1422. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
  1423. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
  1424. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
  1425. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
  1426. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
  1427. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
  1428. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
  1429. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
  1430. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
  1431. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
  1432. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
  1433. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
  1434. data/modules/emscripten/tools/emconfiguren.py +0 -19
  1435. data/modules/emscripten/tools/emmaken.py +0 -230
  1436. data/modules/emscripten/tools/emmakenxx.py +0 -18
  1437. data/modules/emscripten/tools/exec_llvm.py +0 -50
  1438. data/modules/emscripten/tools/file2json.py +0 -49
  1439. data/modules/emscripten/tools/file_packager.py +0 -719
  1440. data/modules/emscripten/tools/find_bigfuncs.py +0 -23
  1441. data/modules/emscripten/tools/find_bigis.py +0 -18
  1442. data/modules/emscripten/tools/find_bigvars.py +0 -24
  1443. data/modules/emscripten/tools/fix_closure.py +0 -88
  1444. data/modules/emscripten/tools/gen_struct_info.py +0 -509
  1445. data/modules/emscripten/tools/ie7_fix.py +0 -14
  1446. data/modules/emscripten/tools/js-optimizer.js +0 -4023
  1447. data/modules/emscripten/tools/js_optimizer.py +0 -357
  1448. data/modules/emscripten/tools/jsrun.py +0 -37
  1449. data/modules/emscripten/tools/ll-strip.py +0 -56
  1450. data/modules/emscripten/tools/make_file.py +0 -19
  1451. data/modules/emscripten/tools/make_minigzip.py +0 -13
  1452. data/modules/emscripten/tools/merge_asm.py +0 -26
  1453. data/modules/emscripten/tools/namespacer.py +0 -95
  1454. data/modules/emscripten/tools/nativize_llvm.py +0 -34
  1455. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
  1456. data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
  1457. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
  1458. data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
  1459. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
  1460. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
  1461. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1462. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1463. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
  1464. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1465. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
  1466. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
  1467. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
  1468. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
  1469. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  1470. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
  1471. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  1472. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
  1473. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
  1474. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
  1475. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
  1476. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
  1477. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  1478. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1479. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1480. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
  1481. data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
  1482. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
  1483. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
  1484. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
  1485. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  1486. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
  1487. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  1488. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  1489. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
  1490. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
  1491. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
  1492. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
  1493. data/modules/emscripten/tools/reproduceriter.js +0 -216
  1494. data/modules/emscripten/tools/reproduceriter.py +0 -160
  1495. data/modules/emscripten/tools/response_file.py +0 -34
  1496. data/modules/emscripten/tools/scan_js.py +0 -20
  1497. data/modules/emscripten/tools/scan_ll.py +0 -18
  1498. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
  1499. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
  1500. data/modules/emscripten/tools/settings_template_readonly.py +0 -49
  1501. data/modules/emscripten/tools/shared.py +0 -1705
  1502. data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
  1503. data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
  1504. data/modules/emscripten/tools/split.py +0 -105
  1505. data/modules/emscripten/tools/split_asm.py +0 -30
  1506. data/modules/emscripten/tools/tempfiles.py +0 -41
  1507. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
  1508. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
  1509. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
  1510. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
  1511. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
  1512. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
  1513. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
  1514. data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
  1515. data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
  1516. data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
  1517. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
  1518. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
  1519. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
  1520. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
  1521. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
  1522. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
  1523. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
  1524. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
  1525. data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
  1526. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
  1527. data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
  1528. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
  1529. data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
  1530. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
  1531. data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
  1532. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
  1533. data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
  1534. data/modules/emscripten/tools/test-js-optimizer.js +0 -401
  1535. data/modules/emscripten/tools/validate_asmjs.py +0 -82
  1536. data/modules/mruby/mrblib/print.rb +0 -18
  1537. data/modules/mruby/src/re.h +0 -12
@@ -1,2728 +0,0 @@
1
- //"use strict";
2
-
3
- // See browser tests for examples (tests/runner.py, search for sdl_). Run with
4
- // python tests/runner.py browser
5
-
6
- // Notes:
7
- // SDL_VIDEORESIZE: This is sent when the canvas is resized. Note that the user
8
- // cannot manually do so, so this is only sent when the
9
- // program manually resizes it (emscripten_set_canvas_size
10
- // or otherwise).
11
-
12
- var LibrarySDL = {
13
- $SDL__deps: ['$FS', '$PATH', '$Browser'],
14
- $SDL: {
15
- defaults: {
16
- width: 320,
17
- height: 200,
18
- copyOnLock: true
19
- },
20
-
21
- version: null,
22
-
23
- surfaces: {},
24
- // A pool of freed canvas elements. Reusing them avoids GC pauses.
25
- canvasPool: [],
26
- events: [],
27
- fonts: [null],
28
-
29
- // The currently preloaded audio elements ready to be played
30
- audios: [null],
31
- rwops: [null],
32
- // The currently playing audio element. There's only one music track.
33
- music: {
34
- audio: null,
35
- volume: 1.0
36
- },
37
- mixerFrequency: 22050,
38
- mixerFormat: {{{ cDefine('AUDIO_S16LSB') }}}, //0x8010, // AUDIO_S16LSB
39
- mixerNumChannels: 2,
40
- mixerChunkSize: 1024,
41
- channelMinimumNumber: 0,
42
-
43
- GL: false, // Set to true if we call SDL_SetVideoMode with SDL_OPENGL, and if so, we do not create 2D canvases&contexts for blitting
44
- // Note that images loaded before SDL_SetVideoMode will not get this optimization
45
-
46
- // all possible GL attributes, with their default value
47
- glAttributes: {
48
- 0: 3, /* SDL_GL_RED_SIZE */
49
- 1: 3, /* SDL_GL_GREEN_SIZE */
50
- 2: 2, /* SDL_GL_BLUE_SIZE */
51
- 3: 0, /* SDL_GL_ALPHA_SIZE */
52
- 4: 0, /* SDL_GL_BUFFER_SIZE */
53
- 5: 1, /* SDL_GL_DOUBLEBUFFER */
54
- 6: 16, /* SDL_GL_DEPTH_SIZE */
55
- 7: 0, /* SDL_GL_STENCIL_SIZE */
56
- 8: 0, /* SDL_GL_ACCUM_RED_SIZE */
57
- 9: 0, /* SDL_GL_ACCUM_GREEN_SIZE */
58
- 10: 0, /* SDL_GL_ACCUM_BLUE_SIZE */
59
- 11: 0, /* SDL_GL_ACCUM_ALPHA_SIZE */
60
- 12: 0, /* SDL_GL_STEREO */
61
- 13: 0, /* SDL_GL_MULTISAMPLEBUFFERS */
62
- 14: 0, /* SDL_GL_MULTISAMPLESAMPLES */
63
- 15: 1, /* SDL_GL_ACCELERATED_VISUAL */
64
- 16: 0, /* SDL_GL_RETAINED_BACKING */
65
- 17: 0, /* SDL_GL_CONTEXT_MAJOR_VERSION */
66
- 18: 0 /* SDL_GL_CONTEXT_MINOR_VERSION */
67
- },
68
-
69
- keyboardState: null,
70
- keyboardMap: {},
71
-
72
- canRequestFullscreen: false,
73
- isRequestingFullscreen: false,
74
-
75
- textInput: false,
76
-
77
- startTime: null,
78
- initFlags: 0, // The flags passed to SDL_Init
79
- buttonState: 0,
80
- modState: 0,
81
- DOMButtons: [0, 0, 0],
82
-
83
- DOMEventToSDLEvent: {},
84
-
85
- keyCodes: { // DOM code ==> SDL code. See https://developer.mozilla.org/en/Document_Object_Model_%28DOM%29/KeyboardEvent and SDL_keycode.h
86
- 46: 127, // SDLK_DEL == '\177'
87
- 38: 1106, // up arrow
88
- 40: 1105, // down arrow
89
- 37: 1104, // left arrow
90
- 39: 1103, // right arrow
91
-
92
- 33: 1099, // pagedup
93
- 34: 1102, // pagedown
94
-
95
- 17: 1248, // control (right, or left)
96
- 18: 1250, // alt
97
- 173: 45, // minus
98
- 16: 1249, // shift
99
-
100
- 96: 88 | 1<<10, // keypad 0
101
- 97: 89 | 1<<10, // keypad 1
102
- 98: 90 | 1<<10, // keypad 2
103
- 99: 91 | 1<<10, // keypad 3
104
- 100: 92 | 1<<10, // keypad 4
105
- 101: 93 | 1<<10, // keypad 5
106
- 102: 94 | 1<<10, // keypad 6
107
- 103: 95 | 1<<10, // keypad 7
108
- 104: 96 | 1<<10, // keypad 8
109
- 105: 97 | 1<<10, // keypad 9
110
-
111
- 112: 58 | 1<<10, // F1
112
- 113: 59 | 1<<10, // F2
113
- 114: 60 | 1<<10, // F3
114
- 115: 61 | 1<<10, // F4
115
- 116: 62 | 1<<10, // F5
116
- 117: 63 | 1<<10, // F6
117
- 118: 64 | 1<<10, // F7
118
- 119: 65 | 1<<10, // F8
119
- 120: 66 | 1<<10, // F9
120
- 121: 67 | 1<<10, // F10
121
- 122: 68 | 1<<10, // F11
122
- 123: 69 | 1<<10, // F12
123
-
124
- 188: 44, // comma
125
- 190: 46, // period
126
- 191: 47, // slash (/)
127
- 192: 96, // backtick/backquote (`)
128
- },
129
-
130
- scanCodes: { // SDL keycode ==> SDL scancode. See SDL_scancode.h
131
- 97: 4, // A
132
- 98: 5,
133
- 99: 6,
134
- 100: 7,
135
- 101: 8,
136
- 102: 9,
137
- 103: 10,
138
- 104: 11,
139
- 105: 12,
140
- 106: 13,
141
- 107: 14,
142
- 108: 15,
143
- 109: 16,
144
- 110: 17,
145
- 111: 18,
146
- 112: 19,
147
- 113: 20,
148
- 114: 21,
149
- 115: 22,
150
- 116: 23,
151
- 117: 24,
152
- 118: 25,
153
- 119: 26,
154
- 120: 27,
155
- 121: 28,
156
- 122: 29, // Z
157
- 49: 30, // 1
158
- 50: 31,
159
- 51: 32,
160
- 52: 33,
161
- 53: 34,
162
- 54: 35,
163
- 55: 36,
164
- 56: 37,
165
- 57: 38, // 9
166
- 48: 39, // 0
167
- 13: 40, // return
168
- 27: 41, // escape
169
- 8: 42, // backspace
170
- 9: 43, // tab
171
- 32: 44, // space
172
- 61: 46, // equals
173
- 91: 47, // left bracket
174
- 93: 48, // right bracket
175
- 92: 49, // backslash
176
- 59: 51, // ;
177
- 96: 52, // apostrophe
178
- 44: 54, // comma
179
- 46: 55, // period
180
- 47: 56, // slash
181
- 305: 224, // ctrl
182
- 308: 226, // alt
183
- },
184
- loadRect: function(rect) {
185
- return {
186
- x: {{{ makeGetValue('rect + ' + C_STRUCTS.SDL_Rect.x, '0', 'i32') }}},
187
- y: {{{ makeGetValue('rect + ' + C_STRUCTS.SDL_Rect.y, '0', 'i32') }}},
188
- w: {{{ makeGetValue('rect + ' + C_STRUCTS.SDL_Rect.w, '0', 'i32') }}},
189
- h: {{{ makeGetValue('rect + ' + C_STRUCTS.SDL_Rect.h, '0', 'i32') }}}
190
- };
191
- },
192
-
193
- // Load SDL color into a CSS-style color specification
194
- loadColorToCSSRGB: function(color) {
195
- var rgba = {{{ makeGetValue('color', '0', 'i32') }}};
196
- return 'rgb(' + (rgba&255) + ',' + ((rgba >> 8)&255) + ',' + ((rgba >> 16)&255) + ')';
197
- },
198
- loadColorToCSSRGBA: function(color) {
199
- var rgba = {{{ makeGetValue('color', '0', 'i32') }}};
200
- return 'rgba(' + (rgba&255) + ',' + ((rgba >> 8)&255) + ',' + ((rgba >> 16)&255) + ',' + (((rgba >> 24)&255)/255) + ')';
201
- },
202
-
203
- translateColorToCSSRGBA: function(rgba) {
204
- return 'rgba(' + (rgba&0xff) + ',' + (rgba>>8 & 0xff) + ',' + (rgba>>16 & 0xff) + ',' + (rgba>>>24)/0xff + ')';
205
- },
206
-
207
- translateRGBAToCSSRGBA: function(r, g, b, a) {
208
- return 'rgba(' + (r&0xff) + ',' + (g&0xff) + ',' + (b&0xff) + ',' + (a&0xff)/255 + ')';
209
- },
210
-
211
- translateRGBAToColor: function(r, g, b, a) {
212
- return r | g << 8 | b << 16 | a << 24;
213
- },
214
-
215
- makeSurface: function(width, height, flags, usePageCanvas, source, rmask, gmask, bmask, amask) {
216
- flags = flags || 0;
217
- var surf = _malloc({{{ C_STRUCTS.SDL_Surface.__size__ }}}); // SDL_Surface has 15 fields of quantum size
218
- var buffer = _malloc(width*height*4); // TODO: only allocate when locked the first time
219
- var pixelFormat = _malloc({{{ C_STRUCTS.SDL_PixelFormat.__size__ }}});
220
- flags |= 1; // SDL_HWSURFACE - this tells SDL_MUSTLOCK that this needs to be locked
221
-
222
- //surface with SDL_HWPALETTE flag is 8bpp surface (1 byte)
223
- var is_SDL_HWPALETTE = flags & 0x00200000;
224
- var bpp = is_SDL_HWPALETTE ? 1 : 4;
225
-
226
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.flags, 'flags', 'i32') }}} // SDL_Surface.flags
227
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.format, 'pixelFormat', 'void*') }}} // SDL_Surface.format TODO
228
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.w, 'width', 'i32') }}} // SDL_Surface.w
229
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.h, 'height', 'i32') }}} // SDL_Surface.h
230
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.pitch, 'width * bpp', 'i32') }}} // SDL_Surface.pitch, assuming RGBA or indexed for now,
231
- // since that is what ImageData gives us in browsers
232
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.pixels, 'buffer', 'void*') }}} // SDL_Surface.pixels
233
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.clip_rect, '0', 'i32*') }}} // SDL_Surface.offset
234
-
235
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.refcount, '1', 'i32') }}}
236
-
237
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.format, cDefine('SDL_PIXELFORMAT_RGBA8888'), 'i32') }}} // SDL_PIXELFORMAT_RGBA8888
238
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.palette, '0', 'i32') }}} // TODO
239
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.BitsPerPixel, 'bpp * 8', 'i8') }}}
240
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.BytesPerPixel, 'bpp', 'i8') }}}
241
-
242
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.Rmask, 'rmask || 0x000000ff', 'i32') }}}
243
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.Gmask, 'gmask || 0x0000ff00', 'i32') }}}
244
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.Bmask, 'bmask || 0x00ff0000', 'i32') }}}
245
- {{{ makeSetValue('pixelFormat', C_STRUCTS.SDL_PixelFormat.Amask, 'amask || 0xff000000', 'i32') }}}
246
-
247
- // Decide if we want to use WebGL or not
248
- var useWebGL = (flags & 0x04000000) != 0; // SDL_OPENGL
249
- SDL.GL = SDL.GL || useWebGL;
250
- var canvas;
251
- if (!usePageCanvas) {
252
- if (SDL.canvasPool.length > 0) {
253
- canvas = SDL.canvasPool.pop();
254
- } else {
255
- canvas = document.createElement('canvas');
256
- }
257
- canvas.width = width;
258
- canvas.height = height;
259
- } else {
260
- canvas = Module['canvas'];
261
- }
262
-
263
- var webGLContextAttributes = {
264
- antialias: ((SDL.glAttributes[13 /*SDL_GL_MULTISAMPLEBUFFERS*/] != 0) && (SDL.glAttributes[14 /*SDL_GL_MULTISAMPLESAMPLES*/] > 1)),
265
- depth: (SDL.glAttributes[6 /*SDL_GL_DEPTH_SIZE*/] > 0),
266
- stencil: (SDL.glAttributes[7 /*SDL_GL_STENCIL_SIZE*/] > 0)
267
- };
268
-
269
- var ctx = Browser.createContext(canvas, useWebGL, usePageCanvas, webGLContextAttributes);
270
-
271
- SDL.surfaces[surf] = {
272
- width: width,
273
- height: height,
274
- canvas: canvas,
275
- ctx: ctx,
276
- surf: surf,
277
- buffer: buffer,
278
- pixelFormat: pixelFormat,
279
- alpha: 255,
280
- flags: flags,
281
- locked: 0,
282
- usePageCanvas: usePageCanvas,
283
- source: source,
284
-
285
- isFlagSet: function(flag) {
286
- return flags & flag;
287
- }
288
- };
289
-
290
- return surf;
291
- },
292
-
293
- // Copy data from the C++-accessible storage to the canvas backing
294
- // for surface with HWPALETTE flag(8bpp depth)
295
- copyIndexedColorData: function(surfData, rX, rY, rW, rH) {
296
- // HWPALETTE works with palette
297
- // setted by SDL_SetColors
298
- if (!surfData.colors) {
299
- return;
300
- }
301
-
302
- var fullWidth = Module['canvas'].width;
303
- var fullHeight = Module['canvas'].height;
304
-
305
- var startX = rX || 0;
306
- var startY = rY || 0;
307
- var endX = (rW || (fullWidth - startX)) + startX;
308
- var endY = (rH || (fullHeight - startY)) + startY;
309
-
310
- var buffer = surfData.buffer;
311
- var data = surfData.image.data;
312
- var colors = surfData.colors;
313
-
314
- for (var y = startY; y < endY; ++y) {
315
- var indexBase = y * fullWidth;
316
- var colorBase = indexBase * 4;
317
- for (var x = startX; x < endX; ++x) {
318
- // HWPALETTE have only 256 colors (not rgba)
319
- var index = {{{ makeGetValue('buffer + indexBase + x', '0', 'i8', null, true) }}} * 3;
320
- var colorOffset = colorBase + x * 4;
321
-
322
- data[colorOffset ] = colors[index ];
323
- data[colorOffset +1] = colors[index +1];
324
- data[colorOffset +2] = colors[index +2];
325
- //unused: data[colorOffset +3] = color[index +3];
326
- }
327
- }
328
- },
329
-
330
- freeSurface: function(surf) {
331
- var refcountPointer = surf + {{{ C_STRUCTS.SDL_Surface.refcount }}};
332
- var refcount = {{{ makeGetValue('refcountPointer', '0', 'i32') }}};
333
- if (refcount > 1) {
334
- {{{ makeSetValue('refcountPointer', '0', 'refcount - 1', 'i32') }}};
335
- return;
336
- }
337
-
338
- var info = SDL.surfaces[surf];
339
- if (!info.usePageCanvas && info.canvas) SDL.canvasPool.push(info.canvas);
340
- _free(info.buffer);
341
- _free(info.pixelFormat);
342
- _free(surf);
343
- SDL.surfaces[surf] = null;
344
- },
345
-
346
- touchX: 0, touchY: 0,
347
- savedKeydown: null,
348
-
349
- receiveEvent: function(event) {
350
- switch(event.type) {
351
- case 'touchstart':
352
- event.preventDefault();
353
- var touch = event.touches[0];
354
- touchX = touch.pageX;
355
- touchY = touch.pageY;
356
- var event = {
357
- type: 'mousedown',
358
- button: 0,
359
- pageX: touchX,
360
- pageY: touchY
361
- };
362
- SDL.DOMButtons[0] = 1;
363
- SDL.events.push(event);
364
- break;
365
- case 'touchmove':
366
- event.preventDefault();
367
- var touch = event.touches[0];
368
- touchX = touch.pageX;
369
- touchY = touch.pageY;
370
- event = {
371
- type: 'mousemove',
372
- button: 0,
373
- pageX: touchX,
374
- pageY: touchY
375
- };
376
- SDL.events.push(event);
377
- break;
378
- case 'touchend':
379
- event.preventDefault();
380
- event = {
381
- type: 'mouseup',
382
- button: 0,
383
- pageX: touchX,
384
- pageY: touchY
385
- };
386
- SDL.DOMButtons[0] = 0;
387
- SDL.events.push(event);
388
- break;
389
- case 'mousemove':
390
- if (Browser.pointerLock) {
391
- // workaround for firefox bug 750111
392
- if ('mozMovementX' in event) {
393
- event['movementX'] = event['mozMovementX'];
394
- event['movementY'] = event['mozMovementY'];
395
- }
396
- // workaround for Firefox bug 782777
397
- if (event['movementX'] == 0 && event['movementY'] == 0) {
398
- // ignore a mousemove event if it doesn't contain any movement info
399
- // (without pointer lock, we infer movement from pageX/pageY, so this check is unnecessary)
400
- event.preventDefault();
401
- return;
402
- }
403
- }
404
- // fall through
405
- case 'keydown': case 'keyup': case 'keypress': case 'mousedown': case 'mouseup': case 'DOMMouseScroll': case 'mousewheel':
406
- // If we preventDefault on keydown events, the subsequent keypress events
407
- // won't fire. However, it's fine (and in some cases necessary) to
408
- // preventDefault for keys that don't generate a character. Otherwise,
409
- // preventDefault is the right thing to do in general.
410
- if (event.type !== 'keydown' || (event.keyCode === 8 /* backspace */ || event.keyCode === 9 /* tab */)) {
411
- event.preventDefault();
412
- }
413
-
414
- if (event.type == 'DOMMouseScroll' || event.type == 'mousewheel') {
415
- var button = (event.type == 'DOMMouseScroll' ? event.detail : -event.wheelDelta) > 0 ? 4 : 3;
416
- var event2 = {
417
- type: 'mousedown',
418
- button: button,
419
- pageX: event.pageX,
420
- pageY: event.pageY
421
- };
422
- SDL.events.push(event2);
423
- event = {
424
- type: 'mouseup',
425
- button: button,
426
- pageX: event.pageX,
427
- pageY: event.pageY
428
- };
429
- } else if (event.type == 'mousedown') {
430
- SDL.DOMButtons[event.button] = 1;
431
- } else if (event.type == 'mouseup') {
432
- // ignore extra ups, can happen if we leave the canvas while pressing down, then return,
433
- // since we add a mouseup in that case
434
- if (!SDL.DOMButtons[event.button]) {
435
- return;
436
- }
437
-
438
- SDL.DOMButtons[event.button] = 0;
439
- }
440
-
441
- // We can only request fullscreen as the result of user input.
442
- // Due to this limitation, we toggle a boolean on keydown which
443
- // SDL_WM_ToggleFullScreen will check and subsequently set another
444
- // flag indicating for us to request fullscreen on the following
445
- // keyup. This isn't perfect, but it enables SDL_WM_ToggleFullScreen
446
- // to work as the result of a keypress (which is an extremely
447
- // common use case).
448
- if (event.type === 'keydown') {
449
- SDL.canRequestFullscreen = true;
450
- } else if (event.type === 'keyup') {
451
- if (SDL.isRequestingFullscreen) {
452
- Module['requestFullScreen'](true, true);
453
- SDL.isRequestingFullscreen = false;
454
- }
455
- SDL.canRequestFullscreen = false;
456
- }
457
-
458
- // SDL expects a unicode character to be passed to its keydown events.
459
- // Unfortunately, the browser APIs only provide a charCode property on
460
- // keypress events, so we must backfill in keydown events with their
461
- // subsequent keypress event's charCode.
462
- if (event.type === 'keypress' && SDL.savedKeydown) {
463
- // charCode is read-only
464
- SDL.savedKeydown.keypressCharCode = event.charCode;
465
- SDL.savedKeydown = null;
466
- } else if (event.type === 'keydown') {
467
- SDL.savedKeydown = event;
468
- }
469
-
470
- // Don't push keypress events unless SDL_StartTextInput has been called.
471
- if (event.type !== 'keypress' || SDL.textInput) {
472
- SDL.events.push(event);
473
- }
474
- break;
475
- case 'mouseout':
476
- // Un-press all pressed mouse buttons, because we might miss the release outside of the canvas
477
- for (var i = 0; i < 3; i++) {
478
- if (SDL.DOMButtons[i]) {
479
- SDL.events.push({
480
- type: 'mouseup',
481
- button: i,
482
- pageX: event.pageX,
483
- pageY: event.pageY
484
- });
485
- SDL.DOMButtons[i] = 0;
486
- }
487
- }
488
- event.preventDefault();
489
- break;
490
- case 'blur':
491
- case 'visibilitychange': {
492
- // Un-press all pressed keys: TODO
493
- for (var code in SDL.keyboardMap) {
494
- SDL.events.push({
495
- type: 'keyup',
496
- keyCode: SDL.keyboardMap[code]
497
- });
498
- }
499
- event.preventDefault();
500
- break;
501
- }
502
- case 'unload':
503
- if (Browser.mainLoop.runner) {
504
- SDL.events.push(event);
505
- // Force-run a main event loop, since otherwise this event will never be caught!
506
- Browser.mainLoop.runner();
507
- }
508
- return;
509
- case 'resize':
510
- SDL.events.push(event);
511
- // manually triggered resize event doesn't have a preventDefault member
512
- if (event.preventDefault) {
513
- event.preventDefault();
514
- }
515
- break;
516
- }
517
- if (SDL.events.length >= 10000) {
518
- Module.printErr('SDL event queue full, dropping events');
519
- SDL.events = SDL.events.slice(0, 10000);
520
- }
521
- return;
522
- },
523
-
524
- handleEvent: function(event) {
525
- if (event.handled) return;
526
- event.handled = true;
527
-
528
- switch (event.type) {
529
- case 'keydown': case 'keyup': {
530
- var down = event.type === 'keydown';
531
- var code = event.keyCode;
532
- if (code >= 65 && code <= 90) {
533
- code += 32; // make lowercase for SDL
534
- } else {
535
- code = SDL.keyCodes[event.keyCode] || event.keyCode;
536
- }
537
-
538
- {{{ makeSetValue('SDL.keyboardState', 'code', 'down', 'i8') }}};
539
- // TODO: lmeta, rmeta, numlock, capslock, KMOD_MODE, KMOD_RESERVED
540
- SDL.modState = ({{{ makeGetValue('SDL.keyboardState', '1248', 'i8') }}} ? 0x0040 | 0x0080 : 0) | // KMOD_LCTRL & KMOD_RCTRL
541
- ({{{ makeGetValue('SDL.keyboardState', '1249', 'i8') }}} ? 0x0001 | 0x0002 : 0) | // KMOD_LSHIFT & KMOD_RSHIFT
542
- ({{{ makeGetValue('SDL.keyboardState', '1250', 'i8') }}} ? 0x0100 | 0x0200 : 0); // KMOD_LALT & KMOD_RALT
543
-
544
- if (down) {
545
- SDL.keyboardMap[code] = event.keyCode; // save the DOM input, which we can use to unpress it during blur
546
- } else {
547
- delete SDL.keyboardMap[code];
548
- }
549
-
550
- break;
551
- }
552
- case 'mousedown': case 'mouseup':
553
- if (event.type == 'mousedown') {
554
- // SDL_BUTTON(x) is defined as (1 << ((x)-1)). SDL buttons are 1-3,
555
- // and DOM buttons are 0-2, so this means that the below formula is
556
- // correct.
557
- SDL.buttonState |= 1 << event.button;
558
- } else if (event.type == 'mouseup') {
559
- SDL.buttonState &= ~(1 << event.button);
560
- }
561
- // fall through
562
- case 'mousemove': {
563
- Browser.calculateMouseEvent(event);
564
- break;
565
- }
566
- }
567
- },
568
-
569
- makeCEvent: function(event, ptr) {
570
- if (typeof event === 'number') {
571
- // This is a pointer to a native C event that was SDL_PushEvent'ed
572
- _memcpy(ptr, event, {{{ C_STRUCTS.SDL_KeyboardEvent.__size__ }}}); // XXX
573
- return;
574
- }
575
-
576
- SDL.handleEvent(event);
577
-
578
- switch (event.type) {
579
- case 'keydown': case 'keyup': {
580
- var down = event.type === 'keydown';
581
- //Module.print('Received key event: ' + event.keyCode);
582
- var key = event.keyCode;
583
- if (key >= 65 && key <= 90) {
584
- key += 32; // make lowercase for SDL
585
- } else {
586
- key = SDL.keyCodes[event.keyCode] || event.keyCode;
587
- }
588
- var scan;
589
- if (key >= 1024) {
590
- scan = key - 1024;
591
- } else {
592
- scan = SDL.scanCodes[key] || key;
593
- }
594
-
595
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}}
596
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.state, 'down ? 1 : 0', 'i8') }}}
597
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.repeat, '0', 'i8') }}} // TODO
598
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.keysym + C_STRUCTS.SDL_Keysym.scancode, 'scan', 'i32') }}}
599
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.keysym + C_STRUCTS.SDL_Keysym.sym, 'key', 'i32') }}}
600
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.keysym + C_STRUCTS.SDL_Keysym.mod, 'SDL.modState', 'i16') }}}
601
- // some non-character keys (e.g. backspace and tab) won't have keypressCharCode set, fill in with the keyCode.
602
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.keysym + C_STRUCTS.SDL_Keysym.unicode, 'event.keypressCharCode || key', 'i32') }}}
603
-
604
- break;
605
- }
606
- case 'keypress': {
607
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_TextInputEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}}
608
- // Not filling in windowID for now
609
- var cStr = intArrayFromString(String.fromCharCode(event.charCode));
610
- for (var i = 0; i < cStr.length; ++i) {
611
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_TextInputEvent.text + ' + i', 'cStr[i]', 'i8') }}};
612
- }
613
- break;
614
- }
615
- case 'mousedown': case 'mouseup': case 'mousemove': {
616
- if (event.type != 'mousemove') {
617
- var down = event.type === 'mousedown';
618
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseButtonEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}};
619
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseButtonEvent.button, 'event.button+1', 'i8') }}}; // DOM buttons are 0-2, SDL 1-3
620
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseButtonEvent.state, 'down ? 1 : 0', 'i8') }}};
621
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseButtonEvent.x, 'Browser.mouseX', 'i32') }}};
622
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseButtonEvent.y, 'Browser.mouseY', 'i32') }}};
623
- } else {
624
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseMotionEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}};
625
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseMotionEvent.state, 'SDL.buttonState', 'i8') }}};
626
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseMotionEvent.x, 'Browser.mouseX', 'i32') }}};
627
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseMotionEvent.y, 'Browser.mouseY', 'i32') }}};
628
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseMotionEvent.xrel, 'Browser.mouseMovementX', 'i32') }}};
629
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_MouseMotionEvent.yrel, 'Browser.mouseMovementY', 'i32') }}};
630
- }
631
- break;
632
- }
633
- case 'unload': {
634
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}};
635
- break;
636
- }
637
- case 'resize': {
638
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_KeyboardEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}};
639
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_ResizeEvent.w, 'event.w', 'i32') }}};
640
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_ResizeEvent.h, 'event.h', 'i32') }}};
641
- break;
642
- }
643
- case 'joystick_button_up': case 'joystick_button_down': {
644
- var state = event.type === 'joystick_button_up' ? 0 : 1;
645
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyButtonEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}};
646
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyButtonEvent.which, 'event.index', 'i8') }}};
647
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyButtonEvent.button, 'event.button', 'i8') }}};
648
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyButtonEvent.state, 'state', 'i8') }}};
649
- break;
650
- }
651
- case 'joystick_axis_motion': {
652
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyAxisEvent.type, 'SDL.DOMEventToSDLEvent[event.type]', 'i32') }}};
653
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyAxisEvent.which, 'event.index', 'i8') }}};
654
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyAxisEvent.axis, 'event.axis', 'i8') }}};
655
- {{{ makeSetValue('ptr', C_STRUCTS.SDL_JoyAxisEvent.value, 'SDL.joystickAxisValueConversion(event.value)', 'i32') }}};
656
- break;
657
- }
658
- default: throw 'Unhandled SDL event: ' + event.type;
659
- }
660
- },
661
-
662
- estimateTextWidth: function(fontData, text) {
663
- var h = fontData.size;
664
- var fontString = h + 'px ' + fontData.name;
665
- var tempCtx = SDL.ttfContext;
666
- #if ASSERTIONS
667
- assert(tempCtx, 'TTF_Init must have been called');
668
- #endif
669
- tempCtx.save();
670
- tempCtx.font = fontString;
671
- var ret = tempCtx.measureText(text).width | 0;
672
- tempCtx.restore();
673
- return ret;
674
- },
675
-
676
- // Sound
677
-
678
- // Channels are a SDL abstraction for allowing multiple sound tracks to be
679
- // played at the same time. We don't need to actually implement the mixing
680
- // since the browser engine handles that for us. Therefore, in JS we just
681
- // maintain a list of channels and return IDs for them to the SDL consumer.
682
- allocateChannels: function(num) { // called from Mix_AllocateChannels and init
683
- if (SDL.numChannels && SDL.numChannels >= num && num != 0) return;
684
- SDL.numChannels = num;
685
- SDL.channels = [];
686
- for (var i = 0; i < num; i++) {
687
- SDL.channels[i] = {
688
- audio: null,
689
- volume: 1.0
690
- };
691
- }
692
- },
693
-
694
- setGetVolume: function(info, volume) {
695
- if (!info) return 0;
696
- var ret = info.volume * 128; // MIX_MAX_VOLUME
697
- if (volume != -1) {
698
- info.volume = volume / 128;
699
- if (info.audio) info.audio.volume = info.volume;
700
- }
701
- return ret;
702
- },
703
-
704
- // Debugging
705
-
706
- debugSurface: function(surfData) {
707
- console.log('dumping surface ' + [surfData.surf, surfData.source, surfData.width, surfData.height]);
708
- var image = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height);
709
- var data = image.data;
710
- var num = Math.min(surfData.width, surfData.height);
711
- for (var i = 0; i < num; i++) {
712
- console.log(' diagonal ' + i + ':' + [data[i*surfData.width*4 + i*4 + 0], data[i*surfData.width*4 + i*4 + 1], data[i*surfData.width*4 + i*4 + 2], data[i*surfData.width*4 + i*4 + 3]]);
713
- }
714
- },
715
-
716
- // Joystick helper methods and state
717
-
718
- joystickEventState: 1, // SDL_ENABLE
719
- lastJoystickState: {}, // Map from SDL_Joystick* to their last known state. Required to determine if a change has occurred.
720
- // Maps Joystick names to pointers. Allows us to avoid reallocating memory for
721
- // joystick names each time this function is called.
722
- joystickNamePool: {},
723
- recordJoystickState: function(joystick, state) {
724
- // Standardize button state.
725
- var buttons = new Array(state.buttons.length);
726
- for (var i = 0; i < state.buttons.length; i++) {
727
- buttons[i] = SDL.getJoystickButtonState(state.buttons[i]);
728
- }
729
-
730
- SDL.lastJoystickState[joystick] = {
731
- buttons: buttons,
732
- axes: state.axes.slice(0),
733
- timestamp: state.timestamp,
734
- index: state.index,
735
- id: state.id
736
- };
737
- },
738
- // Retrieves the button state of the given gamepad button.
739
- // Abstracts away implementation differences.
740
- // Returns 'true' if pressed, 'false' otherwise.
741
- getJoystickButtonState: function(button) {
742
- if (typeof button === 'object') {
743
- // Current gamepad API editor's draft (Firefox Nightly)
744
- // https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#idl-def-GamepadButton
745
- return button.pressed;
746
- } else {
747
- // Current gamepad API working draft (Firefox / Chrome Stable)
748
- // http://www.w3.org/TR/2012/WD-gamepad-20120529/#gamepad-interface
749
- return button > 0;
750
- }
751
- },
752
- // Queries for and inserts controller events into the SDL queue.
753
- queryJoysticks: function() {
754
- for (var joystick in SDL.lastJoystickState) {
755
- var state = SDL.getGamepad(joystick - 1);
756
- var prevState = SDL.lastJoystickState[joystick];
757
- // Check only if the timestamp has differed.
758
- // NOTE: Timestamp is not available in Firefox.
759
- if (typeof state.timestamp !== 'number' || state.timestamp !== prevState.timestamp) {
760
- var i;
761
- for (i = 0; i < state.buttons.length; i++) {
762
- var buttonState = SDL.getJoystickButtonState(state.buttons[i]);
763
- // NOTE: The previous state already has a boolean representation of
764
- // its button, so no need to standardize its button state here.
765
- if (buttonState !== prevState.buttons[i]) {
766
- // Insert button-press event.
767
- SDL.events.push({
768
- type: buttonState ? 'joystick_button_down' : 'joystick_button_up',
769
- joystick: joystick,
770
- index: joystick - 1,
771
- button: i
772
- });
773
- }
774
- }
775
- for (i = 0; i < state.axes.length; i++) {
776
- if (state.axes[i] !== prevState.axes[i]) {
777
- // Insert axes-change event.
778
- SDL.events.push({
779
- type: 'joystick_axis_motion',
780
- joystick: joystick,
781
- index: joystick - 1,
782
- axis: i,
783
- value: state.axes[i]
784
- });
785
- }
786
- }
787
-
788
- SDL.recordJoystickState(joystick, state);
789
- }
790
- }
791
- },
792
- // Converts the double-based browser axis value [-1, 1] into SDL's 16-bit
793
- // value [-32768, 32767]
794
- joystickAxisValueConversion: function(value) {
795
- // Ensures that 0 is 0, 1 is 32767, and -1 is 32768.
796
- return Math.ceil(((value+1) * 32767.5) - 32768);
797
- },
798
-
799
- getGamepads: function() {
800
- var fcn = navigator.getGamepads || navigator.webkitGamepads || navigator.mozGamepads || navigator.gamepads || navigator.webkitGetGamepads;
801
- if (fcn !== undefined) {
802
- // The function must be applied on the navigator object.
803
- return fcn.apply(navigator);
804
- } else {
805
- return [];
806
- }
807
- },
808
-
809
- // Helper function: Returns the gamepad if available, or null if not.
810
- getGamepad: function(deviceIndex) {
811
- var gamepads = SDL.getGamepads();
812
- if (gamepads.length > deviceIndex && deviceIndex >= 0) {
813
- return gamepads[deviceIndex];
814
- }
815
- return null;
816
- },
817
- },
818
-
819
- SDL_Linked_Version: function() {
820
- if (SDL.version === null) {
821
- SDL.version = _malloc({{{ C_STRUCTS.SDL_version.__size__ }}});
822
- {{{ makeSetValue('SDL.version + ' + C_STRUCTS.SDL_version.major, '0', '1', 'i8') }}}
823
- {{{ makeSetValue('SDL.version + ' + C_STRUCTS.SDL_version.minor, '0', '3', 'i8') }}}
824
- {{{ makeSetValue('SDL.version + ' + C_STRUCTS.SDL_version.patch, '0', '0', 'i8') }}}
825
- }
826
- return SDL.version;
827
- },
828
-
829
- SDL_Init: function(initFlags) {
830
- SDL.startTime = Date.now();
831
- SDL.initFlags = initFlags;
832
-
833
- // capture all key events. we just keep down and up, but also capture press to prevent default actions
834
- if (!Module['doNotCaptureKeyboard']) {
835
- document.addEventListener("keydown", SDL.receiveEvent);
836
- document.addEventListener("keyup", SDL.receiveEvent);
837
- document.addEventListener("keypress", SDL.receiveEvent);
838
- window.addEventListener("blur", SDL.receiveEvent);
839
- document.addEventListener("visibilitychange", SDL.receiveEvent);
840
- }
841
-
842
- if (initFlags & 0x200) {
843
- // SDL_INIT_JOYSTICK
844
- // Firefox will not give us Joystick data unless we register this NOP
845
- // callback.
846
- // https://bugzilla.mozilla.org/show_bug.cgi?id=936104
847
- addEventListener("gamepadconnected", function() {});
848
- }
849
-
850
- window.addEventListener("unload", SDL.receiveEvent);
851
- SDL.keyboardState = _malloc(0x10000); // Our SDL needs 512, but 64K is safe for older SDLs
852
- _memset(SDL.keyboardState, 0, 0x10000);
853
- // Initialize this structure carefully for closure
854
- SDL.DOMEventToSDLEvent['keydown'] = 0x300 /* SDL_KEYDOWN */;
855
- SDL.DOMEventToSDLEvent['keyup'] = 0x301 /* SDL_KEYUP */;
856
- SDL.DOMEventToSDLEvent['keypress'] = 0x303 /* SDL_TEXTINPUT */;
857
- SDL.DOMEventToSDLEvent['mousedown'] = 0x401 /* SDL_MOUSEBUTTONDOWN */;
858
- SDL.DOMEventToSDLEvent['mouseup'] = 0x402 /* SDL_MOUSEBUTTONUP */;
859
- SDL.DOMEventToSDLEvent['mousemove'] = 0x400 /* SDL_MOUSEMOTION */;
860
- SDL.DOMEventToSDLEvent['unload'] = 0x100 /* SDL_QUIT */;
861
- SDL.DOMEventToSDLEvent['resize'] = 0x7001 /* SDL_VIDEORESIZE/SDL_EVENT_COMPAT2 */;
862
- // These are not technically DOM events; the HTML gamepad API is poll-based.
863
- // However, we define them here, as the rest of the SDL code assumes that
864
- // all SDL events originate as DOM events.
865
- SDL.DOMEventToSDLEvent['joystick_axis_motion'] = 0x600 /* SDL_JOYAXISMOTION */;
866
- SDL.DOMEventToSDLEvent['joystick_button_down'] = 0x603 /* SDL_JOYBUTTONDOWN */;
867
- SDL.DOMEventToSDLEvent['joystick_button_up'] = 0x604 /* SDL_JOYBUTTONUP */;
868
- return 0; // success
869
- },
870
-
871
- SDL_WasInit__deps: ['SDL_Init'],
872
- SDL_WasInit: function() {
873
- if (SDL.startTime === null) {
874
- _SDL_Init();
875
- }
876
- return 1;
877
- },
878
-
879
- SDL_GetVideoInfo: function() {
880
- // %struct.SDL_VideoInfo = type { i32, i32, %struct.SDL_PixelFormat*, i32, i32 } - 5 fields of quantum size
881
- var ret = _malloc(5*Runtime.QUANTUM_SIZE);
882
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*0', '0', '0', 'i32') }}} // TODO
883
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*1', '0', '0', 'i32') }}} // TODO
884
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*2', '0', '0', 'void*') }}}
885
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*3', '0', 'Module["canvas"].width', 'i32') }}}
886
- {{{ makeSetValue('ret+Runtime.QUANTUM_SIZE*4', '0', 'Module["canvas"].height', 'i32') }}}
887
- return ret;
888
- },
889
-
890
- SDL_ListModes: function(format, flags) {
891
- return -1; // -1 == all modes are ok. TODO
892
- },
893
-
894
- SDL_VideoModeOK: function(width, height, depth, flags) {
895
- // SDL_VideoModeOK returns 0 if the requested mode is not supported under any bit depth, or returns the
896
- // bits-per-pixel of the closest available mode with the given width, height and requested surface flags
897
- return depth; // all modes are ok.
898
- },
899
-
900
- SDL_AudioDriverName__deps: ['SDL_VideoDriverName'],
901
- SDL_AudioDriverName: function(buf, max_size) {
902
- return _SDL_VideoDriverName(buf, max_size);
903
- },
904
-
905
- SDL_VideoDriverName: function(buf, max_size) {
906
- if (SDL.startTime === null) {
907
- return 0; //return NULL
908
- }
909
- //driverName - emscripten_sdl_driver
910
- var driverName = [101, 109, 115, 99, 114, 105, 112, 116, 101,
911
- 110, 95, 115, 100, 108, 95, 100, 114, 105, 118, 101, 114];
912
-
913
- var index = 0;
914
- var size = driverName.length;
915
-
916
- if (max_size <= size) {
917
- size = max_size - 1; //-1 cause null-terminator
918
- }
919
-
920
- while (index < size) {
921
- var value = driverName[index];
922
- {{{ makeSetValue('buf', 'index', 'value', 'i8') }}};
923
- index++;
924
- }
925
-
926
- {{{ makeSetValue('buf', 'index', '0', 'i8') }}};
927
- return buf;
928
- },
929
-
930
- SDL_SetVideoMode: function(width, height, depth, flags) {
931
- ['mousedown', 'mouseup', 'mousemove', 'DOMMouseScroll', 'mousewheel', 'mouseout'].forEach(function(event) {
932
- Module['canvas'].addEventListener(event, SDL.receiveEvent, true);
933
- });
934
-
935
- // (0,0) means 'use fullscreen' in native; in Emscripten, use the current canvas size.
936
- if (width == 0 && height == 0) {
937
- var canvas = Module['canvas'];
938
- width = canvas.width;
939
- height = canvas.height;
940
- }
941
-
942
- Browser.setCanvasSize(width, height, true);
943
- // Free the old surface first.
944
- if (SDL.screen) {
945
- SDL.freeSurface(SDL.screen);
946
- SDL.screen = null;
947
- }
948
- SDL.screen = SDL.makeSurface(width, height, flags, true, 'screen');
949
- if (!SDL.addedResizeListener) {
950
- SDL.addedResizeListener = true;
951
- Browser.resizeListeners.push(function(w, h) {
952
- SDL.receiveEvent({
953
- type: 'resize',
954
- w: w,
955
- h: h
956
- });
957
- });
958
- }
959
- return SDL.screen;
960
- },
961
-
962
- SDL_GetVideoSurface: function() {
963
- return SDL.screen;
964
- },
965
-
966
- SDL_QuitSubSystem: function(flags) {
967
- Module.print('SDL_QuitSubSystem called (and ignored)');
968
- },
969
-
970
- SDL_Quit: function() {
971
- for (var i = 0; i < SDL.numChannels; ++i) {
972
- if (SDL.channels[i].audio) {
973
- SDL.channels[i].audio.pause();
974
- }
975
- }
976
- if (SDL.music.audio) {
977
- SDL.music.audio.pause();
978
- }
979
- Module.print('SDL_Quit called (and ignored)');
980
- },
981
-
982
- // Copy data from the canvas backing to a C++-accessible storage
983
- SDL_LockSurface: function(surf) {
984
- var surfData = SDL.surfaces[surf];
985
-
986
- surfData.locked++;
987
- if (surfData.locked > 1) return 0;
988
-
989
- // Mark in C/C++-accessible SDL structure
990
- // SDL_Surface has the following fields: Uint32 flags, SDL_PixelFormat *format; int w, h; Uint16 pitch; void *pixels; ...
991
- // So we have fields all of the same size, and 5 of them before us.
992
- // TODO: Use macros like in library.js
993
- {{{ makeSetValue('surf', C_STRUCTS.SDL_Surface.pixels, 'surfData.buffer', 'void*') }}};
994
-
995
- if (surf == SDL.screen && Module.screenIsReadOnly && surfData.image) return 0;
996
-
997
- surfData.image = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height);
998
- if (surf == SDL.screen) {
999
- var data = surfData.image.data;
1000
- var num = data.length;
1001
- for (var i = 0; i < num/4; i++) {
1002
- data[i*4+3] = 255; // opacity, as canvases blend alpha
1003
- }
1004
- }
1005
-
1006
- if (SDL.defaults.copyOnLock) {
1007
- // Copy pixel data to somewhere accessible to 'C/C++'
1008
- if (surfData.isFlagSet(0x00200000 /* SDL_HWPALETTE */)) {
1009
- // If this is neaded then
1010
- // we should compact the data from 32bpp to 8bpp index.
1011
- // I think best way to implement this is use
1012
- // additional colorMap hash (color->index).
1013
- // Something like this:
1014
- //
1015
- // var size = surfData.width * surfData.height;
1016
- // var data = '';
1017
- // for (var i = 0; i<size; i++) {
1018
- // var color = SDL.translateRGBAToColor(
1019
- // surfData.image.data[i*4 ],
1020
- // surfData.image.data[i*4 +1],
1021
- // surfData.image.data[i*4 +2],
1022
- // 255);
1023
- // var index = surfData.colorMap[color];
1024
- // {{{ makeSetValue('surfData.buffer', 'i', 'index', 'i8') }}};
1025
- // }
1026
- throw 'CopyOnLock is not supported for SDL_LockSurface with SDL_HWPALETTE flag set' + new Error().stack;
1027
- } else {
1028
- #if USE_TYPED_ARRAYS == 2
1029
- HEAPU8.set(surfData.image.data, surfData.buffer);
1030
- #else
1031
- var num2 = surfData.image.data.length;
1032
- for (var i = 0; i < num2; i++) {
1033
- {{{ makeSetValue('surfData.buffer', 'i', 'surfData.image.data[i]', 'i8') }}};
1034
- }
1035
- #endif
1036
- }
1037
- }
1038
-
1039
- return 0;
1040
- },
1041
-
1042
- // Copy data from the C++-accessible storage to the canvas backing
1043
- SDL_UnlockSurface: function(surf) {
1044
- assert(!SDL.GL); // in GL mode we do not keep around 2D canvases and contexts
1045
-
1046
- var surfData = SDL.surfaces[surf];
1047
-
1048
- surfData.locked--;
1049
- if (surfData.locked > 0) return;
1050
-
1051
- // Copy pixel data to image
1052
- if (surfData.isFlagSet(0x00200000 /* SDL_HWPALETTE */)) {
1053
- SDL.copyIndexedColorData(surfData);
1054
- } else if (!surfData.colors) {
1055
- var data = surfData.image.data;
1056
- var buffer = surfData.buffer;
1057
- #if USE_TYPED_ARRAYS == 2
1058
- assert(buffer % 4 == 0, 'Invalid buffer offset: ' + buffer);
1059
- var src = buffer >> 2;
1060
- var dst = 0;
1061
- var isScreen = surf == SDL.screen;
1062
- var num;
1063
- if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) {
1064
- // IE10/IE11: ImageData objects are backed by the deprecated CanvasPixelArray,
1065
- // not UInt8ClampedArray. These don't have buffers, so we need to revert
1066
- // to copying a byte at a time. We do the undefined check because modern
1067
- // browsers do not define CanvasPixelArray anymore.
1068
- num = data.length;
1069
- while (dst < num) {
1070
- var val = HEAP32[src]; // This is optimized. Instead, we could do {{{ makeGetValue('buffer', 'dst', 'i32') }}};
1071
- data[dst ] = val & 0xff;
1072
- data[dst+1] = (val >> 8) & 0xff;
1073
- data[dst+2] = (val >> 16) & 0xff;
1074
- data[dst+3] = isScreen ? 0xff : ((val >> 24) & 0xff);
1075
- src++;
1076
- dst += 4;
1077
- }
1078
- } else {
1079
- var data32 = new Uint32Array(data.buffer);
1080
- num = data32.length;
1081
- if (isScreen) {
1082
- while (dst < num) {
1083
- // HEAP32[src++] is an optimization. Instead, we could do {{{ makeGetValue('buffer', 'dst', 'i32') }}};
1084
- data32[dst++] = HEAP32[src++] | 0xff000000;
1085
- }
1086
- } else {
1087
- while (dst < num) {
1088
- data32[dst++] = HEAP32[src++];
1089
- }
1090
- }
1091
- }
1092
- #else
1093
- var num = surfData.image.data.length;
1094
- for (var i = 0; i < num; i++) {
1095
- // We may need to correct signs here. Potentially you can hardcode a write of 255 to alpha, say, and
1096
- // the compiler may decide to write -1 in the llvm bitcode...
1097
- data[i] = {{{ makeGetValue('buffer', 'i', 'i8', null, true) }}};
1098
- if (i % 4 == 3) data[i] = 0xff;
1099
- }
1100
- #endif
1101
- } else {
1102
- var width = Module['canvas'].width;
1103
- var height = Module['canvas'].height;
1104
- var s = surfData.buffer;
1105
- var data = surfData.image.data;
1106
- var colors = surfData.colors;
1107
- for (var y = 0; y < height; y++) {
1108
- var base = y*width*4;
1109
- for (var x = 0; x < width; x++) {
1110
- // See comment above about signs
1111
- var val = {{{ makeGetValue('s++', '0', 'i8', null, true) }}} * 3;
1112
- var start = base + x*4;
1113
- data[start] = colors[val];
1114
- data[start+1] = colors[val+1];
1115
- data[start+2] = colors[val+2];
1116
- }
1117
- s += width*3;
1118
- }
1119
- }
1120
- // Copy to canvas
1121
- surfData.ctx.putImageData(surfData.image, 0, 0);
1122
- // Note that we save the image, so future writes are fast. But, memory is not yet released
1123
- },
1124
-
1125
- SDL_Flip: function(surf) {
1126
- // We actually do this in Unlock, since the screen surface has as its canvas
1127
- // backing the page canvas element
1128
- },
1129
-
1130
- SDL_UpdateRect: function(surf, x, y, w, h) {
1131
- // We actually do the whole screen in Unlock...
1132
- },
1133
-
1134
- SDL_UpdateRects: function(surf, numrects, rects) {
1135
- // We actually do the whole screen in Unlock...
1136
- },
1137
-
1138
- SDL_Delay: function(delay) {
1139
- if (!ENVIRONMENT_IS_WORKER) abort('SDL_Delay called on the main thread! Potential infinite loop, quitting.');
1140
- // horrible busy-wait, but in a worker it at least does not block rendering
1141
- var now = Date.now();
1142
- while (Date.now() - now < delay) {}
1143
- },
1144
-
1145
- SDL_WM_SetCaption: function(title, icon) {
1146
- title = title && Pointer_stringify(title);
1147
- icon = icon && Pointer_stringify(icon);
1148
- },
1149
-
1150
- SDL_EnableKeyRepeat: function(delay, interval) {
1151
- // TODO
1152
- },
1153
-
1154
- SDL_GetKeyboardState: function(numKeys) {
1155
- if (numKeys) {
1156
- {{{ makeSetValue('numKeys', 0, 0x10000, 'i32') }}};
1157
- }
1158
- return SDL.keyboardState;
1159
- },
1160
-
1161
- SDL_GetKeyState__deps: ['SDL_GetKeyboardState'],
1162
- SDL_GetKeyState: function() {
1163
- return _SDL_GetKeyboardState();
1164
- },
1165
-
1166
- SDL_GetKeyName: function(key) {
1167
- if (!SDL.keyName) {
1168
- SDL.keyName = allocate(intArrayFromString('unknown key'), 'i8', ALLOC_NORMAL);
1169
- }
1170
- return SDL.keyName;
1171
- },
1172
-
1173
- SDL_GetModState: function() {
1174
- return SDL.modState;
1175
- },
1176
-
1177
- SDL_GetMouseState: function(x, y) {
1178
- if (x) {{{ makeSetValue('x', '0', 'Browser.mouseX', 'i32') }}};
1179
- if (y) {{{ makeSetValue('y', '0', 'Browser.mouseY', 'i32') }}};
1180
- return SDL.buttonState;
1181
- },
1182
-
1183
- SDL_WarpMouse: function(x, y) {
1184
- return; // TODO: implement this in a non-buggy way. Need to keep relative mouse movements correct after calling this
1185
- var rect = Module["canvas"].getBoundingClientRect();
1186
- SDL.events.push({
1187
- type: 'mousemove',
1188
- pageX: x + (window.scrollX + rect.left),
1189
- pageY: y + (window.scrollY + rect.top)
1190
- });
1191
- },
1192
-
1193
- SDL_ShowCursor: function(toggle) {
1194
- switch (toggle) {
1195
- case 0: // SDL_DISABLE
1196
- if (Browser.isFullScreen) { // only try to lock the pointer when in full screen mode
1197
- Module['canvas'].requestPointerLock();
1198
- return 0;
1199
- } else { // else return SDL_ENABLE to indicate the failure
1200
- return 1;
1201
- }
1202
- break;
1203
- case 1: // SDL_ENABLE
1204
- Module['canvas'].exitPointerLock();
1205
- return 1;
1206
- break;
1207
- case -1: // SDL_QUERY
1208
- return !Browser.pointerLock;
1209
- break;
1210
- default:
1211
- console.log( "SDL_ShowCursor called with unknown toggle parameter value: " + toggle + "." );
1212
- break;
1213
- }
1214
- },
1215
-
1216
- SDL_GetError: function() {
1217
- if (!SDL.errorMessage) {
1218
- SDL.errorMessage = allocate(intArrayFromString("unknown SDL-emscripten error"), 'i8', ALLOC_NORMAL);
1219
- }
1220
- return SDL.errorMessage;
1221
- },
1222
-
1223
- SDL_CreateRGBSurface: function(flags, width, height, depth, rmask, gmask, bmask, amask) {
1224
- return SDL.makeSurface(width, height, flags, false, 'CreateRGBSurface', rmask, gmask, bmask, amask);
1225
- },
1226
-
1227
- SDL_CreateRGBSurfaceFrom: function(pixels, width, height, depth, pitch, rmask, gmask, bmask, amask) {
1228
- // TODO: Actually fill pixel data to created surface.
1229
- // TODO: Take into account depth and pitch parameters.
1230
- console.log('TODO: Partially unimplemented SDL_CreateRGBSurfaceFrom called!');
1231
- return SDL.makeSurface(width, height, 0, false, 'CreateRGBSurfaceFrom', rmask, gmask, bmask, amask);
1232
- },
1233
-
1234
- SDL_DisplayFormatAlpha: function(surf) {
1235
- var oldData = SDL.surfaces[surf];
1236
- var ret = SDL.makeSurface(oldData.width, oldData.height, oldData.flags, false, 'copy:' + oldData.source);
1237
- var newData = SDL.surfaces[ret];
1238
- //newData.ctx.putImageData(oldData.ctx.getImageData(0, 0, oldData.width, oldData.height), 0, 0);
1239
- newData.ctx.drawImage(oldData.canvas, 0, 0);
1240
- return ret;
1241
- },
1242
-
1243
- SDL_FreeSurface: function(surf) {
1244
- if (surf) SDL.freeSurface(surf);
1245
- },
1246
-
1247
- SDL_UpperBlit__deps: ['SDL_LockSurface'],
1248
- SDL_UpperBlit: function(src, srcrect, dst, dstrect) {
1249
- var srcData = SDL.surfaces[src];
1250
- var dstData = SDL.surfaces[dst];
1251
- var sr, dr;
1252
- if (srcrect) {
1253
- sr = SDL.loadRect(srcrect);
1254
- } else {
1255
- sr = { x: 0, y: 0, w: srcData.width, h: srcData.height };
1256
- }
1257
- if (dstrect) {
1258
- dr = SDL.loadRect(dstrect);
1259
- } else {
1260
- dr = { x: 0, y: 0, w: -1, h: -1 };
1261
- }
1262
- var oldAlpha = dstData.ctx.globalAlpha;
1263
- dstData.ctx.globalAlpha = srcData.alpha/255;
1264
- dstData.ctx.drawImage(srcData.canvas, sr.x, sr.y, sr.w, sr.h, dr.x, dr.y, sr.w, sr.h);
1265
- dstData.ctx.globalAlpha = oldAlpha;
1266
- if (dst != SDL.screen) {
1267
- // XXX As in IMG_Load, for compatibility we write out |pixels|
1268
- console.log('WARNING: copying canvas data to memory for compatibility');
1269
- _SDL_LockSurface(dst);
1270
- dstData.locked--; // The surface is not actually locked in this hack
1271
- }
1272
- return 0;
1273
- },
1274
-
1275
- SDL_LowerBlit: 'SDL_UpperBlit',
1276
-
1277
- SDL_FillRect: function(surf, rect, color) {
1278
- var surfData = SDL.surfaces[surf];
1279
- assert(!surfData.locked); // but we could unlock and re-lock if we must..
1280
-
1281
- if (surfData.isFlagSet(0x00200000 /* SDL_HWPALETTE */)) {
1282
- //in SDL_HWPALETTE color is index (0..255)
1283
- //so we should translate 1 byte value to
1284
- //32 bit canvas
1285
- var index = color * 3;
1286
- color = SDL.translateRGBAToColor(surfData.colors[index], surfData.colors[index +1], surfData.colors[index +2], 255);
1287
- }
1288
-
1289
- var r = rect ? SDL.loadRect(rect) : { x: 0, y: 0, w: surfData.width, h: surfData.height };
1290
- surfData.ctx.save();
1291
- surfData.ctx.fillStyle = SDL.translateColorToCSSRGBA(color);
1292
- surfData.ctx.fillRect(r.x, r.y, r.w, r.h);
1293
- surfData.ctx.restore();
1294
- return 0;
1295
- },
1296
-
1297
- SDL_BlitSurface__deps: ['SDL_UpperBlit'],
1298
- SDL_BlitSurface: function(src, srcrect, dst, dstrect) {
1299
- return _SDL_UpperBlit(src, srcrect, dst, dstrect);
1300
- },
1301
-
1302
- zoomSurface: function(src, x, y, smooth) {
1303
- var srcData = SDL.surfaces[src];
1304
- var w = srcData.width * x;
1305
- var h = srcData.height * y;
1306
- var ret = SDL.makeSurface(Math.abs(w), Math.abs(h), srcData.flags, false, 'zoomSurface');
1307
- var dstData = SDL.surfaces[ret];
1308
- if (x >= 0 && y >= 0) dstData.ctx.drawImage(srcData.canvas, 0, 0, w, h);
1309
- else {
1310
- dstData.ctx.save();
1311
- dstData.ctx.scale(x < 0 ? -1 : 1, y < 0 ? -1 : 1);
1312
- dstData.ctx.drawImage(srcData.canvas, w < 0 ? w : 0, h < 0 ? h : 0, Math.abs(w), Math.abs(h));
1313
- // XXX I think this should work according to the spec, but currently
1314
- // fails on FF: dstData.ctx.drawImage(srcData.canvas, 0, 0, w, h);
1315
- dstData.ctx.restore();
1316
- }
1317
- return ret;
1318
- },
1319
-
1320
- rotozoomSurface__deps: ['zoomSurface'],
1321
- rotozoomSurface: function(src, angle, zoom, smooth) {
1322
- if (angle % 360 === 0) {
1323
- return _zoomSurface(src, zoom, zoom, smooth);
1324
- }
1325
- var srcData = SDL.surfaces[src];
1326
- var w = srcData.width * zoom;
1327
- var h = srcData.height * zoom;
1328
- var diagonal = Math.ceil(Math.sqrt(Math.pow(w, 2) + Math.pow(h, 2)));
1329
- var ret = SDL.makeSurface(diagonal, diagonal, srcData.flags, false, 'rotozoomSurface');
1330
- var dstData = SDL.surfaces[ret];
1331
- dstData.ctx.translate(diagonal / 2, diagonal / 2);
1332
- dstData.ctx.rotate(-angle * Math.PI / 180);
1333
- dstData.ctx.drawImage(srcData.canvas, -w / 2, -h / 2, w, h);
1334
- return ret;
1335
- },
1336
-
1337
- SDL_SetAlpha: function(surf, flag, alpha) {
1338
- SDL.surfaces[surf].alpha = alpha;
1339
- },
1340
-
1341
- SDL_SetColorKey: function(surf, flag, key) {
1342
- // SetColorKey assigns one color to be rendered as transparent. I don't
1343
- // think the canvas API allows for anything like this, and iterating through
1344
- // each pixel to replace that color seems prohibitively expensive.
1345
- Runtime.warnOnce('SDL_SetColorKey is a no-op for performance reasons');
1346
- return 0;
1347
- },
1348
-
1349
- SDL_GetTicks: function() {
1350
- return Math.floor(Date.now() - SDL.startTime);
1351
- },
1352
-
1353
- SDL_PollEvent: function(ptr) {
1354
- if (SDL.initFlags & 0x200 && SDL.joystickEventState) {
1355
- // If SDL_INIT_JOYSTICK was supplied AND the joystick system is configured
1356
- // to automatically query for events, query for joystick events.
1357
- SDL.queryJoysticks();
1358
- }
1359
- if (SDL.events.length === 0) return 0;
1360
- if (ptr) {
1361
- SDL.makeCEvent(SDL.events.shift(), ptr);
1362
- }
1363
- return 1;
1364
- },
1365
-
1366
- SDL_PushEvent: function(ptr) {
1367
- SDL.events.push(ptr); // XXX Should we copy it? Not clear from API
1368
- return 0;
1369
- },
1370
-
1371
- SDL_PeepEvents: function(events, numEvents, action, from, to) {
1372
- switch(action) {
1373
- case 2: { // SDL_GETEVENT
1374
- assert(numEvents == 1);
1375
- var got = 0;
1376
- while (SDL.events.length > 0 && numEvents > 0) {
1377
- var type = SDL.DOMEventToSDLEvent[SDL.events[0].type];
1378
- if (type < from || type > to) break;
1379
- SDL.makeCEvent(SDL.events.shift(), events);
1380
- got++;
1381
- numEvents--;
1382
- // events += sizeof(..)
1383
- }
1384
- return got;
1385
- }
1386
- default: throw 'SDL_PeepEvents does not yet support that action: ' + action;
1387
- }
1388
- },
1389
-
1390
- SDL_PumpEvents: function(){
1391
- SDL.events.forEach(function(event) {
1392
- SDL.handleEvent(event);
1393
- });
1394
- },
1395
-
1396
- SDL_SetColors: function(surf, colors, firstColor, nColors) {
1397
- var surfData = SDL.surfaces[surf];
1398
-
1399
- // we should create colors array
1400
- // only once cause client code
1401
- // often wants to change portion
1402
- // of palette not all palette.
1403
- if (!surfData.colors) {
1404
- surfData.colors = new Uint8Array(256 * 3); //256 RGB colors
1405
- }
1406
-
1407
- for (var i = 0; i < nColors; ++i) {
1408
- var index = (firstColor + i) * 3;
1409
- surfData.colors[index] = {{{ makeGetValue('colors', 'i*4', 'i8', null, true) }}};
1410
- surfData.colors[index + 1] = {{{ makeGetValue('colors', 'i*4 + 1', 'i8', null, true) }}};
1411
- surfData.colors[index + 2] = {{{ makeGetValue('colors', 'i*4 + 2', 'i8', null, true) }}};
1412
- }
1413
-
1414
- return 1;
1415
- },
1416
-
1417
- SDL_SetPalette__deps: ['SDL_SetColors'],
1418
- SDL_SetPalette: function(surf, flags, colors, firstColor, nColors) {
1419
- return _SDL_SetColors(surf, colors, firstColor, nColors);
1420
- },
1421
-
1422
- SDL_MapRGB: function(fmt, r, g, b) {
1423
- // Canvas screens are always RGBA. We assume the machine is little-endian.
1424
- return r&0xff|(g&0xff)<<8|(b&0xff)<<16|0xff000000;
1425
- },
1426
-
1427
- SDL_MapRGBA: function(fmt, r, g, b, a) {
1428
- // Canvas screens are always RGBA. We assume the machine is little-endian.
1429
- return r&0xff|(g&0xff)<<8|(b&0xff)<<16|(a&0xff)<<24;
1430
- },
1431
-
1432
- SDL_GetAppState: function() {
1433
- var state = 0;
1434
-
1435
- if (Browser.pointerLock) {
1436
- state |= 0x01; // SDL_APPMOUSEFOCUS
1437
- }
1438
- if (document.hasFocus()) {
1439
- state |= 0x02; // SDL_APPINPUTFOCUS
1440
- }
1441
- state |= 0x04; // SDL_APPACTIVE
1442
-
1443
- return state;
1444
- },
1445
-
1446
- SDL_WM_GrabInput: function() {},
1447
-
1448
- SDL_WM_ToggleFullScreen: function(surf) {
1449
- if (Browser.isFullScreen) {
1450
- Module['canvas'].cancelFullScreen();
1451
- return 1;
1452
- } else {
1453
- if (!SDL.canRequestFullscreen) {
1454
- return 0;
1455
- }
1456
- SDL.isRequestingFullscreen = true;
1457
- return 1;
1458
- }
1459
- },
1460
-
1461
- // SDL_Image
1462
-
1463
- IMG_Init: function(flags) {
1464
- return flags; // We support JPG, PNG, TIF because browsers do
1465
- },
1466
-
1467
- IMG_Load_RW__deps: ['SDL_LockSurface', 'SDL_FreeRW'],
1468
- IMG_Load_RW: function(rwopsID, freeSrc) {
1469
- try {
1470
- // stb_image integration support
1471
- function cleanup() {
1472
- if (rwops && freeSrc) _SDL_FreeRW(rwopsID);
1473
- };
1474
- function addCleanup(func) {
1475
- var old = cleanup;
1476
- cleanup = function added_cleanup() {
1477
- old();
1478
- func();
1479
- }
1480
- }
1481
- function callStbImage(func, params) {
1482
- var x = Module['_malloc']({{{ QUANTUM_SIZE }}});
1483
- var y = Module['_malloc']({{{ QUANTUM_SIZE }}});
1484
- var comp = Module['_malloc']({{{ QUANTUM_SIZE }}});
1485
- addCleanup(function() {
1486
- Module['_free'](x);
1487
- Module['_free'](y);
1488
- Module['_free'](comp);
1489
- if (data) Module['_stbi_image_free'](data);
1490
- });
1491
- var data = Module['_' + func].apply(null, params.concat([x, y, comp, 0]));
1492
- if (!data) return null;
1493
- return {
1494
- rawData: true,
1495
- data: data,
1496
- width: {{{ makeGetValue('x', 0, 'i32') }}},
1497
- height: {{{ makeGetValue('y', 0, 'i32') }}},
1498
- size: {{{ makeGetValue('x', 0, 'i32') }}} * {{{ makeGetValue('y', 0, 'i32') }}} * {{{ makeGetValue('comp', 0, 'i32') }}},
1499
- bpp: {{{ makeGetValue('comp', 0, 'i32') }}}
1500
- };
1501
- }
1502
-
1503
- var rwops = SDL.rwops[rwopsID];
1504
- if (rwops === undefined) {
1505
- return 0;
1506
- }
1507
-
1508
- var filename = rwops.filename;
1509
- if (filename === undefined) {
1510
- #if STB_IMAGE
1511
- var raw = callStbImage('stbi_load_from_memory', [rwops.bytes, rwops.count]);
1512
- if (!raw) return 0;
1513
- #else
1514
- Runtime.warnOnce('Only file names that have been preloaded are supported for IMG_Load_RW. Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js)');
1515
- return 0;
1516
- #endif
1517
- }
1518
-
1519
- if (!raw) {
1520
- filename = PATH.resolve(filename);
1521
- var raw = Module["preloadedImages"][filename];
1522
- if (!raw) {
1523
- if (raw === null) Module.printErr('Trying to reuse preloaded image, but freePreloadedMediaOnUse is set!');
1524
- #if STB_IMAGE
1525
- var name = Module['_malloc'](filename.length+1);
1526
- writeStringToMemory(filename, name);
1527
- addCleanup(function() {
1528
- Module['_free'](name);
1529
- });
1530
- var raw = callStbImage('stbi_load', [name]);
1531
- if (!raw) return 0;
1532
- #else
1533
- Runtime.warnOnce('Cannot find preloaded image ' + filename);
1534
- Runtime.warnOnce('Cannot find preloaded image ' + filename + '. Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js)');
1535
- return 0;
1536
- #endif
1537
- } else if (Module['freePreloadedMediaOnUse']) {
1538
- Module["preloadedImages"][filename] = null;
1539
- }
1540
- }
1541
-
1542
- var surf = SDL.makeSurface(raw.width, raw.height, 0, false, 'load:' + filename);
1543
- var surfData = SDL.surfaces[surf];
1544
- surfData.ctx.globalCompositeOperation = "copy";
1545
- if (!raw.rawData) {
1546
- surfData.ctx.drawImage(raw, 0, 0, raw.width, raw.height, 0, 0, raw.width, raw.height);
1547
- } else {
1548
- var imageData = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height);
1549
- if (raw.bpp == 4) {
1550
- imageData.data.set({{{ makeHEAPView('U8', 'raw.data', 'raw.data+raw.size') }}});
1551
- } else if (raw.bpp == 3) {
1552
- var pixels = raw.size/3;
1553
- var data = imageData.data;
1554
- var sourcePtr = raw.data;
1555
- var destPtr = 0;
1556
- for (var i = 0; i < pixels; i++) {
1557
- data[destPtr++] = {{{ makeGetValue('sourcePtr++', 0, 'i8', null, 1) }}};
1558
- data[destPtr++] = {{{ makeGetValue('sourcePtr++', 0, 'i8', null, 1) }}};
1559
- data[destPtr++] = {{{ makeGetValue('sourcePtr++', 0, 'i8', null, 1) }}};
1560
- data[destPtr++] = 255;
1561
- }
1562
- } else {
1563
- Module.printErr('cannot handle bpp ' + raw.bpp);
1564
- return 0;
1565
- }
1566
- surfData.ctx.putImageData(imageData, 0, 0);
1567
- }
1568
- surfData.ctx.globalCompositeOperation = "source-over";
1569
- // XXX SDL does not specify that loaded images must have available pixel data, in fact
1570
- // there are cases where you just want to blit them, so you just need the hardware
1571
- // accelerated version. However, code everywhere seems to assume that the pixels
1572
- // are in fact available, so we retrieve it here. This does add overhead though.
1573
- _SDL_LockSurface(surf);
1574
- surfData.locked--; // The surface is not actually locked in this hack
1575
- if (SDL.GL) {
1576
- // After getting the pixel data, we can free the canvas and context if we do not need to do 2D canvas blitting
1577
- surfData.canvas = surfData.ctx = null;
1578
- }
1579
- return surf;
1580
- } finally {
1581
- cleanup();
1582
- }
1583
- },
1584
- SDL_LoadBMP: 'IMG_Load',
1585
- SDL_LoadBMP_RW: 'IMG_Load_RW',
1586
- IMG_Load__deps: ['IMG_Load_RW', 'SDL_RWFromFile'],
1587
- IMG_Load: function(filename){
1588
- var rwops = _SDL_RWFromFile(filename);
1589
- var result = _IMG_Load_RW(rwops, 1);
1590
- return result;
1591
- },
1592
-
1593
- // SDL_Audio
1594
-
1595
- SDL_OpenAudio: function(desired, obtained) {
1596
- try {
1597
- SDL.audio = {
1598
- freq: {{{ makeGetValue('desired', C_STRUCTS.SDL_AudioSpec.freq, 'i32', 0, 1) }}},
1599
- format: {{{ makeGetValue('desired', C_STRUCTS.SDL_AudioSpec.format, 'i16', 0, 1) }}},
1600
- channels: {{{ makeGetValue('desired', C_STRUCTS.SDL_AudioSpec.channels, 'i8', 0, 1) }}},
1601
- samples: {{{ makeGetValue('desired', C_STRUCTS.SDL_AudioSpec.samples, 'i16', 0, 1) }}}, // Samples in the CB buffer per single sound channel.
1602
- callback: {{{ makeGetValue('desired', C_STRUCTS.SDL_AudioSpec.callback, 'void*', 0, 1) }}},
1603
- userdata: {{{ makeGetValue('desired', C_STRUCTS.SDL_AudioSpec.userdata, 'void*', 0, 1) }}},
1604
- paused: true,
1605
- timer: null
1606
- };
1607
- // The .silence field tells the constant sample value that corresponds to the safe un-skewed silence value for the wave data.
1608
- if (SDL.audio.format == 0x0008 /*AUDIO_U8*/) {
1609
- SDL.audio.silence = 128; // Audio ranges in [0, 255], so silence is half-way in between.
1610
- } else if (SDL.audio.format == 0x8010 /*AUDIO_S16LSB*/) {
1611
- SDL.audio.silence = 0; // Signed data in range [-32768, 32767], silence is 0.
1612
- } else {
1613
- throw 'Invalid SDL audio format ' + SDL.audio.format + '!';
1614
- }
1615
- // Round the desired audio frequency up to the next 'common' frequency value.
1616
- // Web Audio API spec states 'An implementation must support sample-rates in at least the range 22050 to 96000.'
1617
- if (SDL.audio.freq <= 0) {
1618
- throw 'Unsupported sound frequency ' + SDL.audio.freq + '!';
1619
- } else if (SDL.audio.freq <= 22050) {
1620
- SDL.audio.freq = 22050; // Take it safe and clamp everything lower than 22kHz to that.
1621
- } else if (SDL.audio.freq <= 32000) {
1622
- SDL.audio.freq = 32000;
1623
- } else if (SDL.audio.freq <= 44100) {
1624
- SDL.audio.freq = 44100;
1625
- } else if (SDL.audio.freq <= 48000) {
1626
- SDL.audio.freq = 48000;
1627
- } else if (SDL.audio.freq <= 96000) {
1628
- SDL.audio.freq = 96000;
1629
- } else {
1630
- throw 'Unsupported sound frequency ' + SDL.audio.freq + '!';
1631
- }
1632
- if (SDL.audio.channels == 0) {
1633
- SDL.audio.channels = 1; // In SDL both 0 and 1 mean mono.
1634
- } else if (SDL.audio.channels < 0 || SDL.audio.channels > 32) {
1635
- throw 'Unsupported number of audio channels for SDL audio: ' + SDL.audio.channels + '!';
1636
- } else if (SDL.audio.channels != 1 && SDL.audio.channels != 2) { // Unsure what SDL audio spec supports. Web Audio spec supports up to 32 channels.
1637
- console.log('Warning: Using untested number of audio channels ' + SDL.audio.channels);
1638
- }
1639
- if (SDL.audio.samples < 128 || SDL.audio.samples > 524288 /* arbitrary cap */) {
1640
- throw 'Unsupported audio callback buffer size ' + SDL.audio.samples + '!';
1641
- } else if ((SDL.audio.samples & (SDL.audio.samples-1)) != 0) {
1642
- throw 'Audio callback buffer size ' + SDL.audio.samples + ' must be a power-of-two!';
1643
- }
1644
-
1645
- var totalSamples = SDL.audio.samples*SDL.audio.channels;
1646
- SDL.audio.bytesPerSample = (SDL.audio.format == 0x0008 /*AUDIO_U8*/ || SDL.audio.format == 0x8008 /*AUDIO_S8*/) ? 1 : 2;
1647
- SDL.audio.bufferSize = totalSamples*SDL.audio.bytesPerSample;
1648
- SDL.audio.buffer = _malloc(SDL.audio.bufferSize);
1649
-
1650
- // To account for jittering in frametimes, always have multiple audio buffers queued up for the audio output device.
1651
- // This helps that we won't starve that easily if a frame takes long to complete.
1652
- SDL.audio.numSimultaneouslyQueuedBuffers = Module['SDL_numSimultaneouslyQueuedBuffers'] || 3;
1653
-
1654
- // Create a callback function that will be routinely called to ask more audio data from the user application.
1655
- SDL.audio.caller = function SDL_audio_caller() {
1656
- if (!SDL.audio) {
1657
- return;
1658
- }
1659
- Runtime.dynCall('viii', SDL.audio.callback, [SDL.audio.userdata, SDL.audio.buffer, SDL.audio.bufferSize]);
1660
- SDL.audio.pushAudio(SDL.audio.buffer, SDL.audio.bufferSize);
1661
- };
1662
-
1663
- SDL.audio.audioOutput = new Audio();
1664
- // As a workaround use Mozilla Audio Data API on Firefox until it ships with Web Audio and sound quality issues are fixed.
1665
- if (typeof(SDL.audio.audioOutput['mozSetup'])==='function') {
1666
- SDL.audio.audioOutput['mozSetup'](SDL.audio.channels, SDL.audio.freq); // use string attributes on mozOutput for closure compiler
1667
- SDL.audio.mozBuffer = new Float32Array(totalSamples);
1668
- SDL.audio.nextPlayTime = 0;
1669
- SDL.audio.pushAudio = function SDL_audio_pushAudio(ptr, size) {
1670
- --SDL.audio.numAudioTimersPending;
1671
- var mozBuffer = SDL.audio.mozBuffer;
1672
- // The input audio data for SDL audio is either 8-bit or 16-bit interleaved across channels, output for Mozilla Audio Data API
1673
- // needs to be Float32 interleaved, so perform a sample conversion.
1674
- if (SDL.audio.format == 0x8010 /*AUDIO_S16LSB*/) {
1675
- for (var i = 0; i < totalSamples; i++) {
1676
- mozBuffer[i] = ({{{ makeGetValue('ptr', 'i*2', 'i16', 0, 0) }}}) / 0x8000;
1677
- }
1678
- } else if (SDL.audio.format == 0x0008 /*AUDIO_U8*/) {
1679
- for (var i = 0; i < totalSamples; i++) {
1680
- var v = ({{{ makeGetValue('ptr', 'i', 'i8', 0, 0) }}});
1681
- mozBuffer[i] = ((v >= 0) ? v-128 : v+128) /128;
1682
- }
1683
- }
1684
- // Submit the audio data to audio device.
1685
- SDL.audio.audioOutput['mozWriteAudio'](mozBuffer);
1686
-
1687
- // Compute when the next audio callback should be called.
1688
- var curtime = Date.now() / 1000.0 - SDL.audio.startTime;
1689
- #if ASSERTIONS
1690
- if (curtime > SDL.audio.nextPlayTime && SDL.audio.nextPlayTime != 0) {
1691
- console.log('warning: Audio callback had starved sending audio by ' + (curtime - SDL.audio.nextPlayTime) + ' seconds.');
1692
- }
1693
- #endif
1694
- var playtime = Math.max(curtime, SDL.audio.nextPlayTime);
1695
- var buffer_duration = SDL.audio.samples / SDL.audio.freq;
1696
- SDL.audio.nextPlayTime = playtime + buffer_duration;
1697
- // Schedule the next audio callback call to occur when the current one finishes.
1698
- SDL.audio.timer = Browser.safeSetTimeout(SDL.audio.caller, 1000.0 * (playtime-curtime));
1699
- ++SDL.audio.numAudioTimersPending;
1700
- // And also schedule extra buffers _now_ if we have too few in queue.
1701
- if (SDL.audio.numAudioTimersPending < SDL.audio.numSimultaneouslyQueuedBuffers) {
1702
- ++SDL.audio.numAudioTimersPending;
1703
- Browser.safeSetTimeout(SDL.audio.caller, 1.0);
1704
- }
1705
- }
1706
- } else {
1707
- // Initialize Web Audio API if we haven't done so yet. Note: Only initialize Web Audio context ever once on the web page,
1708
- // since initializing multiple times fails on Chrome saying 'audio resources have been exhausted'.
1709
- if (!SDL.audioContext) {
1710
- if (typeof(AudioContext) === 'function') {
1711
- SDL.audioContext = new AudioContext();
1712
- } else if (typeof(webkitAudioContext) === 'function') {
1713
- SDL.audioContext = new webkitAudioContext();
1714
- } else {
1715
- throw 'Web Audio API is not available!';
1716
- }
1717
- }
1718
- SDL.audio.soundSource = new Array(); // Use an array of sound sources as a ring buffer to queue blocks of synthesized audio to Web Audio API.
1719
- SDL.audio.nextSoundSource = 0; // Index of the next sound buffer in the ring buffer queue to play.
1720
- SDL.audio.nextPlayTime = 0; // Time in seconds when the next audio block is due to start.
1721
-
1722
- // The pushAudio function with a new audio buffer whenever there is new audio data to schedule to be played back on the device.
1723
- SDL.audio.pushAudio=function(ptr,sizeBytes) {
1724
- try {
1725
- --SDL.audio.numAudioTimersPending;
1726
-
1727
- var sizeSamples = sizeBytes / SDL.audio.bytesPerSample; // How many samples fit in the callback buffer?
1728
- var sizeSamplesPerChannel = sizeSamples / SDL.audio.channels; // How many samples per a single channel fit in the cb buffer?
1729
- if (sizeSamplesPerChannel != SDL.audio.samples) {
1730
- throw 'Received mismatching audio buffer size!';
1731
- }
1732
- // Allocate new sound buffer to be played.
1733
- var source = SDL.audioContext['createBufferSource']();
1734
- if (SDL.audio.soundSource[SDL.audio.nextSoundSource]) {
1735
- SDL.audio.soundSource[SDL.audio.nextSoundSource]['disconnect'](); // Explicitly disconnect old source, since we know it shouldn't be running anymore.
1736
- }
1737
- SDL.audio.soundSource[SDL.audio.nextSoundSource] = source;
1738
- var soundBuffer = SDL.audioContext['createBuffer'](SDL.audio.channels,sizeSamplesPerChannel,SDL.audio.freq);
1739
- SDL.audio.soundSource[SDL.audio.nextSoundSource]['connect'](SDL.audioContext['destination']);
1740
-
1741
- // The input audio data is interleaved across the channels, i.e. [L, R, L, R, L, R, ...] and is either 8-bit or 16-bit as
1742
- // supported by the SDL API. The output audio wave data for Web Audio API must be in planar buffers of [-1,1]-normalized Float32 data,
1743
- // so perform a buffer conversion for the data.
1744
- var numChannels = SDL.audio.channels;
1745
- for(var i = 0; i < numChannels; ++i) {
1746
- var channelData = soundBuffer['getChannelData'](i);
1747
- if (channelData.length != sizeSamplesPerChannel) {
1748
- throw 'Web Audio output buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + sizeSamplesPerChannel + ' samples!';
1749
- }
1750
- if (SDL.audio.format == 0x8010 /*AUDIO_S16LSB*/) {
1751
- for(var j = 0; j < sizeSamplesPerChannel; ++j) {
1752
- channelData[j] = ({{{ makeGetValue('ptr', '(j*numChannels + i)*2', 'i16', 0, 0) }}}) / 0x8000;
1753
- }
1754
- } else if (SDL.audio.format == 0x0008 /*AUDIO_U8*/) {
1755
- for(var j = 0; j < sizeSamplesPerChannel; ++j) {
1756
- var v = ({{{ makeGetValue('ptr', 'j*numChannels + i', 'i8', 0, 0) }}});
1757
- channelData[j] = ((v >= 0) ? v-128 : v+128) /128;
1758
- }
1759
- }
1760
- }
1761
- // Workaround https://bugzilla.mozilla.org/show_bug.cgi?id=883675 by setting the buffer only after filling. The order is important here!
1762
- source['buffer'] = soundBuffer;
1763
-
1764
- // Schedule the generated sample buffer to be played out at the correct time right after the previously scheduled
1765
- // sample buffer has finished.
1766
- var curtime = SDL.audioContext['currentTime'];
1767
- #if ASSERTIONS
1768
- if (curtime > SDL.audio.nextPlayTime && SDL.audio.nextPlayTime != 0) {
1769
- console.log('warning: Audio callback had starved sending audio by ' + (curtime - SDL.audio.nextPlayTime) + ' seconds.');
1770
- }
1771
- #endif
1772
- var playtime = Math.max(curtime, SDL.audio.nextPlayTime);
1773
- SDL.audio.soundSource[SDL.audio.nextSoundSource]['start'](playtime);
1774
- var buffer_duration = sizeSamplesPerChannel / SDL.audio.freq;
1775
- SDL.audio.nextPlayTime = playtime + buffer_duration;
1776
- SDL.audio.nextSoundSource = (SDL.audio.nextSoundSource + 1) % 4;
1777
- var secsUntilNextCall = playtime-curtime;
1778
-
1779
- // Queue the next audio frame push to be performed when the previously queued buffer has finished playing.
1780
- if (SDL.audio.numAudioTimersPending == 0) {
1781
- var preemptBufferFeedMSecs = buffer_duration/2.0;
1782
- SDL.audio.timer = Browser.safeSetTimeout(SDL.audio.caller, Math.max(0.0, 1000.0*secsUntilNextCall-preemptBufferFeedMSecs));
1783
- ++SDL.audio.numAudioTimersPending;
1784
- }
1785
-
1786
- // If we are risking starving, immediately queue extra buffers.
1787
- if (secsUntilNextCall <= buffer_duration && SDL.audio.numAudioTimersPending < SDL.audio.numSimultaneouslyQueuedBuffers) {
1788
- ++SDL.audio.numAudioTimersPending;
1789
- Browser.safeSetTimeout(SDL.audio.caller, 1.0);
1790
- }
1791
- } catch(e) {
1792
- console.log('Web Audio API error playing back audio: ' + e.toString());
1793
- }
1794
- }
1795
- }
1796
-
1797
- if (obtained) {
1798
- // Report back the initialized audio parameters.
1799
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.freq, 'SDL.audio.freq', 'i32') }}};
1800
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.format, 'SDL.audio.format', 'i16') }}};
1801
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.channels, 'SDL.audio.channels', 'i8') }}};
1802
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.silence, 'SDL.audio.silence', 'i8') }}};
1803
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.samples, 'SDL.audio.samples', 'i16') }}};
1804
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.callback, 'SDL.audio.callback', '*') }}};
1805
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.userdata, 'SDL.audio.userdata', '*') }}};
1806
- }
1807
- SDL.allocateChannels(32);
1808
-
1809
- } catch(e) {
1810
- console.log('Initializing SDL audio threw an exception: "' + e.toString() + '"! Continuing without audio.');
1811
- SDL.audio = null;
1812
- SDL.allocateChannels(0);
1813
- if (obtained) {
1814
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.freq, 0, 'i32') }}};
1815
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.format, 0, 'i16') }}};
1816
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.channels, 0, 'i8') }}};
1817
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.silence, 0, 'i8') }}};
1818
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.samples, 0, 'i16') }}};
1819
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.callback, 0, '*') }}};
1820
- {{{ makeSetValue('obtained', C_STRUCTS.SDL_AudioSpec.userdata, 0, '*') }}};
1821
- }
1822
- }
1823
- if (!SDL.audio) {
1824
- return -1;
1825
- }
1826
- return 0;
1827
- },
1828
-
1829
- SDL_PauseAudio: function(pauseOn) {
1830
- if (!SDL.audio) {
1831
- return;
1832
- }
1833
- if (pauseOn) {
1834
- if (SDL.audio.timer !== undefined) {
1835
- clearTimeout(SDL.audio.timer);
1836
- SDL.audio.numAudioTimersPending = 0;
1837
- SDL.audio.timer = undefined;
1838
- }
1839
- } else if (!SDL.audio.timer) {
1840
- // Start the audio playback timer callback loop.
1841
- SDL.audio.numAudioTimersPending = 1;
1842
- SDL.audio.timer = Browser.safeSetTimeout(SDL.audio.caller, 1);
1843
- SDL.audio.startTime = Date.now() / 1000.0; // Only used for Mozilla Audio Data API. Not needed for Web Audio API.
1844
- }
1845
- SDL.audio.paused = pauseOn;
1846
- },
1847
-
1848
- SDL_CloseAudio__deps: ['SDL_PauseAudio', 'free'],
1849
- SDL_CloseAudio: function() {
1850
- if (SDL.audio) {
1851
- try{
1852
- for(var i = 0; i < SDL.audio.soundSource.length; ++i) {
1853
- if (!(typeof(SDL.audio.soundSource[i]==='undefined'))) {
1854
- SDL.audio.soundSource[i].stop(0);
1855
- }
1856
- }
1857
- } catch(e) {}
1858
- SDL.audio.soundSource = null;
1859
- _SDL_PauseAudio(1);
1860
- _free(SDL.audio.buffer);
1861
- SDL.audio = null;
1862
- SDL.allocateChannels(0);
1863
- }
1864
- },
1865
-
1866
- SDL_LockAudio: function() {},
1867
- SDL_UnlockAudio: function() {},
1868
-
1869
- SDL_CreateMutex: function() { return 0 },
1870
- SDL_LockMutex: function() {},
1871
- SDL_UnlockMutex: function() {},
1872
- SDL_mutexP: function() { return 0 },
1873
- SDL_mutexV: function() { return 0 },
1874
- SDL_DestroyMutex: function() {},
1875
-
1876
- SDL_CreateCond: function() { return 0 },
1877
- SDL_CondSignal: function() {},
1878
- SDL_CondWait: function() {},
1879
- SDL_DestroyCond: function() {},
1880
-
1881
- SDL_StartTextInput: function() {
1882
- SDL.textInput = true;
1883
- },
1884
- SDL_StopTextInput: function() {
1885
- SDL.textInput = false;
1886
- },
1887
-
1888
- // SDL Mixer
1889
-
1890
- Mix_Init: function(flags) {
1891
- if (!flags) return 0;
1892
- return 8; /* MIX_INIT_OGG */
1893
- },
1894
- Mix_Quit: function(){},
1895
-
1896
- Mix_OpenAudio: function(frequency, format, channels, chunksize) {
1897
- SDL.allocateChannels(32);
1898
- // Just record the values for a later call to Mix_QuickLoad_RAW
1899
- SDL.mixerFrequency = frequency;
1900
- SDL.mixerFormat = format;
1901
- SDL.mixerNumChannels = channels;
1902
- SDL.mixerChunkSize = chunksize;
1903
- return 0;
1904
- },
1905
-
1906
- Mix_CloseAudio: 'SDL_CloseAudio',
1907
-
1908
- Mix_AllocateChannels: function(num) {
1909
- SDL.allocateChannels(num);
1910
- return num;
1911
- },
1912
-
1913
- Mix_ChannelFinished: function(func) {
1914
- SDL.channelFinished = func;
1915
- },
1916
-
1917
- Mix_Volume: function(channel, volume) {
1918
- if (channel == -1) {
1919
- for (var i = 0; i < SDL.numChannels-1; i++) {
1920
- _Mix_Volume(i, volume);
1921
- }
1922
- return _Mix_Volume(SDL.numChannels-1, volume);
1923
- }
1924
- return SDL.setGetVolume(SDL.channels[channel], volume);
1925
- },
1926
-
1927
- Mix_SetPanning: function() {
1928
- return 0; // error
1929
- },
1930
-
1931
- Mix_LoadWAV_RW: function(rwopsID, freesrc) {
1932
- var rwops = SDL.rwops[rwopsID];
1933
-
1934
- if (rwops === undefined)
1935
- return 0;
1936
-
1937
- var filename = '';
1938
- var audio;
1939
- var bytes;
1940
-
1941
- if (rwops.filename !== undefined) {
1942
- filename = PATH.resolve(rwops.filename);
1943
- var raw = Module["preloadedAudios"][filename];
1944
- if (!raw) {
1945
- if (raw === null) Module.printErr('Trying to reuse preloaded audio, but freePreloadedMediaOnUse is set!');
1946
- Runtime.warnOnce('Cannot find preloaded audio ' + filename);
1947
-
1948
- // see if we can read the file-contents from the in-memory FS
1949
- try {
1950
- bytes = FS.readFile(filename);
1951
- } catch (e) {
1952
- Module.printErr('Couldn\'t find file for: ' + filename);
1953
- return 0;
1954
- }
1955
- }
1956
- if (Module['freePreloadedMediaOnUse']) {
1957
- Module["preloadedAudios"][filename] = null;
1958
- }
1959
- audio = raw;
1960
- }
1961
- else if (rwops.bytes !== undefined) {
1962
- bytes = HEAPU8.subarray(rwops.bytes, rwops.bytes + rwops.count);
1963
- }
1964
- else {
1965
- return 0;
1966
- }
1967
-
1968
- // Here, we didn't find a preloaded audio but we either were passed a filepath for
1969
- // which we loaded bytes, or we were passed some bytes
1970
- if (audio === undefined && bytes) {
1971
- var blob = new Blob([bytes], {type: rwops.mimetype});
1972
- var url = URL.createObjectURL(blob);
1973
- audio = new Audio();
1974
- audio.src = url;
1975
- }
1976
-
1977
- var id = SDL.audios.length;
1978
- // Keep the loaded audio in the audio arrays, ready for playback
1979
- SDL.audios.push({
1980
- source: filename,
1981
- audio: audio
1982
- });
1983
- return id;
1984
- },
1985
-
1986
- Mix_QuickLoad_RAW: function(mem, len) {
1987
- var audio = new Audio();
1988
- // Record the number of channels and frequency for later usage
1989
- audio.numChannels = SDL.mixerNumChannels;
1990
- audio.frequency = SDL.mixerFrequency;
1991
- var numSamples = len >> 1; // len is the length in bytes, and the array contains 16-bit PCM values
1992
- var buffer = new Float32Array(numSamples);
1993
- for (var i = 0; i < numSamples; ++i) {
1994
- buffer[i] = ({{{ makeGetValue('mem', 'i*2', 'i16', 0, 0) }}}) / 0x8000; // hardcoded 16-bit audio, signed (TODO: reSign if not ta2?)
1995
- }
1996
- // FIXME: doesn't make sense to keep the audio element in the buffer
1997
- var id = SDL.audios.length;
1998
- SDL.audios.push({
1999
- source: '',
2000
- audio: audio,
2001
- buffer: buffer
2002
- });
2003
- return id;
2004
- },
2005
-
2006
- Mix_FreeChunk: function(id) {
2007
- SDL.audios[id] = null;
2008
- },
2009
- Mix_ReserveChannels: function(num) {
2010
- SDL.channelMinimumNumber = num;
2011
- },
2012
- Mix_PlayChannel: function(channel, id, loops) {
2013
- // TODO: handle loops
2014
-
2015
- // Get the audio element associated with the ID
2016
- var info = SDL.audios[id];
2017
- if (!info) return -1;
2018
- var audio = info.audio;
2019
- if (!audio) return -1;
2020
-
2021
- // If the user asks us to allocate a channel automatically, get the first
2022
- // free one.
2023
- if (channel == -1) {
2024
- for (var i = SDL.channelMinimumNumber; i < SDL.numChannels; i++) {
2025
- if (!SDL.channels[i].audio) {
2026
- channel = i;
2027
- break;
2028
- }
2029
- }
2030
- if (channel == -1) {
2031
- Module.printErr('All ' + SDL.numChannels + ' channels in use!');
2032
- return -1;
2033
- }
2034
- }
2035
- // We clone the audio node to utilize the preloaded audio buffer, since
2036
- // the browser has already preloaded the audio file.
2037
- var channelInfo = SDL.channels[channel];
2038
- channelInfo.audio = audio = audio.cloneNode(true);
2039
- audio.numChannels = info.audio.numChannels;
2040
- audio.frequency = info.audio.frequency;
2041
- // TODO: handle N loops. Behavior matches Mix_PlayMusic
2042
- audio.loop = loops != 0;
2043
- audio['onended'] = function SDL_audio_onended() { // TODO: cache these
2044
- channelInfo.audio = null;
2045
- if (SDL.channelFinished) {
2046
- Runtime.getFuncWrapper(SDL.channelFinished, 'vi')(channel);
2047
- }
2048
- }
2049
- // Either play the element, or load the dynamic data into it
2050
- if (info.buffer) {
2051
- var contextCtor = null;
2052
- if (audio && ('mozSetup' in audio)) { // Audio Data API
2053
- try {
2054
- audio['mozSetup'](audio.numChannels, audio.frequency);
2055
- audio["mozWriteAudio"](info.buffer);
2056
- } catch (e) {
2057
- // Workaround for Firefox bug 783052
2058
- // ignore this exception!
2059
- }
2060
- /*
2061
- } else if (contextCtor = (window.AudioContext || // WebAudio API
2062
- window.webkitAudioContext)) {
2063
- var currentIndex = 0;
2064
- var numChannels = parseInt(audio.numChannels);
2065
- var context = new contextCtor();
2066
- var source = context.createBufferSource();
2067
- source.loop = false;
2068
- source.buffer = context.createBuffer(numChannels, 1, audio.frequency);
2069
- var jsNode = context.createJavaScriptNode(2048, numChannels, numChannels);
2070
- jsNode.onaudioprocess = function jsNode_onaudioprocess(event) {
2071
- var buffers = new Array(numChannels);
2072
- for (var i = 0; i < numChannels; ++i) {
2073
- buffers[i] = event.outputBuffer.getChannelData(i);
2074
- }
2075
- var remaining = info.buffer.length - currentIndex;
2076
- if (remaining > 2048) {
2077
- remaining = 2048;
2078
- }
2079
- for (var i = 0; i < remaining;) {
2080
- for (var j = 0; j < numChannels; ++j) {
2081
- buffers[j][i] = info.buffer[currentIndex + i + j] * audio.volume;
2082
- }
2083
- i += j;
2084
- }
2085
- currentIndex += remaining * numChannels;
2086
- for (var i = remaining; i < 2048;) {
2087
- for (var j = 0; j < numChannels; ++j) {
2088
- buffers[j][i] = 0; // silence
2089
- }
2090
- i += j;
2091
- }
2092
- };
2093
- source.connect(jsNode);
2094
- jsNode.connect(context.destination);
2095
- source.noteOn(0);
2096
- */
2097
- }
2098
- } else {
2099
- audio.play();
2100
- }
2101
- audio.volume = channelInfo.volume;
2102
- return channel;
2103
- },
2104
- Mix_PlayChannelTimed: 'Mix_PlayChannel', // XXX ignore Timing
2105
-
2106
- Mix_FadingChannel: function(channel) {
2107
- return 0; // MIX_NO_FADING, TODO
2108
- },
2109
-
2110
- Mix_HaltChannel: function(channel) {
2111
- function halt(channel) {
2112
- var info = SDL.channels[channel];
2113
- if (info.audio) {
2114
- info.audio.pause();
2115
- info.audio = null;
2116
- }
2117
- if (SDL.channelFinished) {
2118
- Runtime.getFuncWrapper(SDL.channelFinished, 'vi')(channel);
2119
- }
2120
- }
2121
- if (channel != -1) {
2122
- halt(channel);
2123
- } else {
2124
- for (var i = 0; i < SDL.channels.length; ++i) halt(i);
2125
- }
2126
- return 0;
2127
- },
2128
-
2129
- Mix_HookMusicFinished__deps: ['Mix_HaltMusic'],
2130
- Mix_HookMusicFinished: function(func) {
2131
- SDL.hookMusicFinished = func;
2132
- if (SDL.music.audio) { // ensure the callback will be called, if a music is already playing
2133
- SDL.music.audio['onended'] = _Mix_HaltMusic;
2134
- }
2135
- },
2136
-
2137
- Mix_VolumeMusic: function(volume) {
2138
- return SDL.setGetVolume(SDL.music, volume);
2139
- },
2140
-
2141
- Mix_LoadMUS_RW: 'Mix_LoadWAV_RW',
2142
- Mix_LoadMUS__deps: ['Mix_LoadMUS_RW', 'SDL_RWFromFile', 'SDL_FreeRW'],
2143
- Mix_LoadMUS: function(filename) {
2144
- var rwops = _SDL_RWFromFile(filename);
2145
- var result = _Mix_LoadMUS_RW(rwops);
2146
- _SDL_FreeRW(rwops);
2147
- return result;
2148
- },
2149
-
2150
- Mix_FreeMusic: 'Mix_FreeChunk',
2151
-
2152
- Mix_PlayMusic__deps: ['Mix_HaltMusic'],
2153
- Mix_PlayMusic: function(id, loops) {
2154
- loops = Math.max(loops, 1);
2155
- var audio = SDL.audios[id].audio;
2156
- if (!audio) return 0;
2157
- audio.loop = loops != 0; // TODO: handle N loops for finite N
2158
- if (SDL.audios[id].buffer) {
2159
- audio["mozWriteAudio"](SDL.audios[id].buffer);
2160
- } else {
2161
- audio.play();
2162
- }
2163
- audio.volume = SDL.music.volume;
2164
- audio['onended'] = _Mix_HaltMusic; // will send callback
2165
- if (SDL.music.audio) {
2166
- if (!SDL.music.audio.paused) {
2167
- Module.printErr('Music is already playing. ' + SDL.music.source);
2168
- }
2169
- SDL.music.audio.pause();
2170
- }
2171
- SDL.music.audio = audio;
2172
- return 0;
2173
- },
2174
-
2175
- Mix_PauseMusic: function() {
2176
- var audio = SDL.music.audio;
2177
- if (!audio) return 0;
2178
- audio.pause();
2179
- return 0;
2180
- },
2181
-
2182
- Mix_ResumeMusic: function() {
2183
- var audio = SDL.music.audio;
2184
- if (!audio) return 0;
2185
- audio.play();
2186
- return 0;
2187
- },
2188
-
2189
- Mix_HaltMusic: function() {
2190
- var audio = SDL.music.audio;
2191
- if (!audio) return 0;
2192
- audio.src = audio.src; // rewind
2193
- audio.pause();
2194
- SDL.music.audio = null;
2195
- if (SDL.hookMusicFinished) {
2196
- Runtime.dynCall('v', SDL.hookMusicFinished);
2197
- }
2198
- return 0;
2199
- },
2200
-
2201
- Mix_FadeInMusicPos: 'Mix_PlayMusic', // XXX ignore fading in effect
2202
-
2203
- Mix_FadeOutMusic: 'Mix_HaltMusic', // XXX ignore fading out effect
2204
-
2205
- Mix_PlayingMusic: function() {
2206
- return (SDL.music.audio && !SDL.music.audio.paused) ? 1 : 0;
2207
- },
2208
-
2209
- // http://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_38.html#SEC38
2210
- // "Note: Does not check if the channel has been paused."
2211
- Mix_Playing: function(channel) {
2212
- if (channel === -1) {
2213
- var count = 0;
2214
- for (var i = 0; i < SDL.channels.length; i++) {
2215
- count += _Mix_Playing(i);
2216
- }
2217
- return count;
2218
- }
2219
- var info = SDL.channels[channel];
2220
- if (info && info.audio && !info.audio.paused) {
2221
- return 1;
2222
- }
2223
- return 0;
2224
- },
2225
-
2226
- Mix_Pause: function(channel) {
2227
- if (channel === -1) {
2228
- for (var i = 0; i<SDL.channels.length;i++) {
2229
- _Mix_Pause(i);
2230
- }
2231
- return;
2232
- }
2233
- var info = SDL.channels[channel];
2234
- if (info && info.audio) {
2235
- info.audio.pause();
2236
- } else {
2237
- Module.printErr('Mix_Pause: no sound found for channel: ' + channel);
2238
- }
2239
- },
2240
-
2241
- // http://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_39.html#SEC39
2242
- Mix_Paused: function(channel) {
2243
- if (channel === -1) {
2244
- var pausedCount = 0;
2245
- for (var i = 0; i<SDL.channels.length;i++) {
2246
- pausedCount += _Mix_Paused(i);
2247
- }
2248
- return pausedCount;
2249
- }
2250
- var info = SDL.channels[channel];
2251
- if (info && info.audio && info.audio.paused) {
2252
- return 1;
2253
- }
2254
- return 0;
2255
- },
2256
-
2257
- Mix_PausedMusic: function() {
2258
- return (SDL.music.audio && SDL.music.audio.paused) ? 1 : 0;
2259
- },
2260
-
2261
- // http://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_33.html#SEC33
2262
- Mix_Resume: function(channel) {
2263
- if (channel === -1) {
2264
- for (var i = 0; i<SDL.channels.length;i++) {
2265
- _Mix_Resume(i);
2266
- }
2267
- return;
2268
- }
2269
- var info = SDL.channels[channel];
2270
- if (info && info.audio) {
2271
- info.audio.play();
2272
- }
2273
- },
2274
-
2275
- // SDL TTF
2276
-
2277
- TTF_Init: function() {
2278
- var canvas = document.createElement('canvas');
2279
- SDL.ttfContext = canvas.getContext('2d');
2280
- return 0;
2281
- },
2282
-
2283
- TTF_OpenFont: function(filename, size) {
2284
- filename = FS.standardizePath(Pointer_stringify(filename));
2285
- var id = SDL.fonts.length;
2286
- SDL.fonts.push({
2287
- name: filename, // but we don't actually do anything with it..
2288
- size: size
2289
- });
2290
- return id;
2291
- },
2292
-
2293
- TTF_CloseFont: function(font) {
2294
- SDL.fonts[font] = null;
2295
- },
2296
-
2297
- TTF_RenderText_Solid: function(font, text, color) {
2298
- // XXX the font and color are ignored
2299
- text = Pointer_stringify(text) || ' '; // if given an empty string, still return a valid surface
2300
- var fontData = SDL.fonts[font];
2301
- var w = SDL.estimateTextWidth(fontData, text);
2302
- var h = fontData.size;
2303
- var color = SDL.loadColorToCSSRGB(color); // XXX alpha breaks fonts?
2304
- var fontString = h + 'px ' + fontData.name;
2305
- var surf = SDL.makeSurface(w, h, 0, false, 'text:' + text); // bogus numbers..
2306
- var surfData = SDL.surfaces[surf];
2307
- surfData.ctx.save();
2308
- surfData.ctx.fillStyle = color;
2309
- surfData.ctx.font = fontString;
2310
- surfData.ctx.textBaseline = 'top';
2311
- surfData.ctx.fillText(text, 0, 0);
2312
- surfData.ctx.restore();
2313
- return surf;
2314
- },
2315
- TTF_RenderText_Blended: 'TTF_RenderText_Solid', // XXX ignore blending vs. solid
2316
- TTF_RenderText_Shaded: 'TTF_RenderText_Solid', // XXX ignore blending vs. solid
2317
- TTF_RenderUTF8_Solid: 'TTF_RenderText_Solid',
2318
-
2319
- TTF_SizeText: function(font, text, w, h) {
2320
- var fontData = SDL.fonts[font];
2321
- if (w) {
2322
- {{{ makeSetValue('w', '0', 'SDL.estimateTextWidth(fontData, Pointer_stringify(text))', 'i32') }}};
2323
- }
2324
- if (h) {
2325
- {{{ makeSetValue('h', '0', 'fontData.size', 'i32') }}};
2326
- }
2327
- return 0;
2328
- },
2329
-
2330
- TTF_FontAscent: function(font) {
2331
- var fontData = SDL.fonts[font];
2332
- return Math.floor(fontData.size*0.98); // XXX
2333
- },
2334
-
2335
- TTF_FontDescent: function(font) {
2336
- var fontData = SDL.fonts[font];
2337
- return Math.floor(fontData.size*0.02); // XXX
2338
- },
2339
-
2340
- TTF_FontHeight: function(font) {
2341
- var fontData = SDL.fonts[font];
2342
- return fontData.size;
2343
- },
2344
-
2345
- // SDL gfx
2346
-
2347
- $SDL_gfx: {
2348
- drawRectangle: function(surf, x1, y1, x2, y2, action, cssColor) {
2349
- x1 = x1 << 16 >> 16;
2350
- y1 = y1 << 16 >> 16;
2351
- x2 = x2 << 16 >> 16;
2352
- y2 = y2 << 16 >> 16;
2353
- var surfData = SDL.surfaces[surf];
2354
- assert(!surfData.locked); // but we could unlock and re-lock if we must..
2355
- // TODO: if ctx does not change, leave as is, and also do not re-set xStyle etc.
2356
- var x = x1 < x2 ? x1 : x2;
2357
- var y = y1 < y2 ? y1 : y2;
2358
- var w = Math.abs(x2 - x1);
2359
- var h = Math.abs(y2 - y1);
2360
- surfData.ctx.save();
2361
- surfData.ctx[action + 'Style'] = cssColor;
2362
- surfData.ctx[action + 'Rect'](x, y, w, h);
2363
- surfData.ctx.restore();
2364
- },
2365
- drawLine: function(surf, x1, y1, x2, y2, cssColor) {
2366
- x1 = x1 << 16 >> 16;
2367
- y1 = y1 << 16 >> 16;
2368
- x2 = x2 << 16 >> 16;
2369
- y2 = y2 << 16 >> 16;
2370
- var surfData = SDL.surfaces[surf];
2371
- assert(!surfData.locked); // but we could unlock and re-lock if we must..
2372
- surfData.ctx.save();
2373
- surfData.ctx.strokeStyle = cssColor;
2374
- surfData.ctx.beginPath();
2375
- surfData.ctx.moveTo(x1, y1);
2376
- surfData.ctx.lineTo(x2, y2);
2377
- surfData.ctx.stroke();
2378
- surfData.ctx.restore();
2379
- },
2380
- // See http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
2381
- drawEllipse: function(surf, x, y, rx, ry, action, cssColor) {
2382
- x = x << 16 >> 16;
2383
- y = y << 16 >> 16;
2384
- rx = rx << 16 >> 16;
2385
- ry = ry << 16 >> 16;
2386
- var surfData = SDL.surfaces[surf];
2387
- assert(!surfData.locked); // but we could unlock and re-lock if we must..
2388
-
2389
- surfData.ctx.save();
2390
- surfData.ctx.beginPath();
2391
- surfData.ctx.translate(x, y);
2392
- surfData.ctx.scale(rx, ry);
2393
- surfData.ctx.arc(0, 0, 1, 0, 2 * Math.PI);
2394
- surfData.ctx.restore();
2395
-
2396
- surfData.ctx.save();
2397
- surfData.ctx[action + 'Style'] = cssColor;
2398
- surfData.ctx[action]();
2399
- surfData.ctx.restore();
2400
- },
2401
- // the gfx library uses something different from the rest of SDL...
2402
- translateColorToCSSRGBA: function(rgba) {
2403
- return 'rgba(' + (rgba>>>24) + ',' + (rgba>>16 & 0xff) + ',' + (rgba>>8 & 0xff) + ',' + (rgba&0xff) + ')';
2404
- }
2405
- },
2406
-
2407
- boxColor__deps: ['$SDL_gfx'],
2408
- boxColor: function(surf, x1, y1, x2, y2, color) {
2409
- return SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'fill', SDL_gfx.translateColorToCSSRGBA(color));
2410
- },
2411
-
2412
- boxRGBA__deps: ['$SDL_gfx'],
2413
- boxRGBA: function(surf, x1, y1, x2, y2, r, g, b, a) {
2414
- return SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'fill', SDL.translateRGBAToCSSRGBA(r, g, b, a));
2415
- },
2416
-
2417
- rectangleColor__deps: ['$SDL_gfx'],
2418
- rectangleColor: function(surf, x1, y1, x2, y2, color) {
2419
- return SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'stroke', SDL_gfx.translateColorToCSSRGBA(color));
2420
- },
2421
-
2422
- rectangleRGBA__deps: ['$SDL_gfx'],
2423
- rectangleRGBA: function(surf, x1, y1, x2, y2, r, g, b, a) {
2424
- return SDL_gfx.drawRectangle(surf, x1, y1, x2, y2, 'stroke', SDL.translateRGBAToCSSRGBA(r, g, b, a));
2425
- },
2426
-
2427
- ellipseColor__deps: ['$SDL_gfx'],
2428
- ellipseColor: function(surf, x, y, rx, ry, color) {
2429
- return SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'stroke', SDL_gfx.translateColorToCSSRGBA(color));
2430
- },
2431
-
2432
- ellipseRGBA__deps: ['$SDL_gfx'],
2433
- ellipseRGBA: function(surf, x, y, rx, ry, r, g, b, a) {
2434
- return SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'stroke', SDL.translateRGBAToCSSRGBA(r, g, b, a));
2435
- },
2436
-
2437
- filledEllipseColor__deps: ['$SDL_gfx'],
2438
- filledEllipseColor: function(surf, x, y, rx, ry, color) {
2439
- return SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'fill', SDL_gfx.translateColorToCSSRGBA(color));
2440
- },
2441
-
2442
- filledEllipseRGBA__deps: ['$SDL_gfx'],
2443
- filledEllipseRGBA: function(surf, x, y, rx, ry, r, g, b, a) {
2444
- return SDL_gfx.drawEllipse(surf, x, y, rx, ry, 'fill', SDL.translateRGBAToCSSRGBA(r, g, b, a));
2445
- },
2446
-
2447
- lineColor__deps: ['$SDL_gfx'],
2448
- lineColor: function(surf, x1, y1, x2, y2, color) {
2449
- return SDL_gfx.drawLine(surf, x1, y1, x2, y2, SDL_gfx.translateColorToCSSRGBA(color));
2450
- },
2451
-
2452
- lineRGBA__deps: ['$SDL_gfx'],
2453
- lineRGBA: function(surf, x1, y1, x2, y2, r, g, b, a) {
2454
- return SDL_gfx.drawLine(surf, x1, y1, x2, y2, SDL.translateRGBAToCSSRGBA(r, g, b, a));
2455
- },
2456
-
2457
- pixelRGBA__deps: ['boxRGBA'],
2458
- pixelRGBA: function(surf, x1, y1, r, g, b, a) {
2459
- // This cannot be fast, to render many pixels this way!
2460
- _boxRGBA(surf, x1, y1, x1, y1, r, g, b, a);
2461
- },
2462
-
2463
- // GL
2464
-
2465
- SDL_GL_SetAttribute: function(attr, value) {
2466
- if (!(attr in SDL.glAttributes)) {
2467
- abort('Unknown SDL GL attribute (' + attr + '). Please check if your SDL version is supported.');
2468
- }
2469
-
2470
- SDL.glAttributes[attr] = value;
2471
- },
2472
-
2473
- SDL_GL_GetAttribute: function(attr, value) {
2474
- if (!(attr in SDL.glAttributes)) {
2475
- abort('Unknown SDL GL attribute (' + attr + '). Please check if your SDL version is supported.');
2476
- }
2477
-
2478
- if (value) {{{ makeSetValue('value', '0', 'SDL.glAttributes[attr]', 'i32') }}};
2479
-
2480
- return 0;
2481
- },
2482
-
2483
- SDL_GL_GetProcAddress__deps: ['emscripten_GetProcAddress'],
2484
- SDL_GL_GetProcAddress: function(name_) {
2485
- return _emscripten_GetProcAddress(Pointer_stringify(name_));
2486
- },
2487
-
2488
- SDL_GL_SwapBuffers: function() {},
2489
-
2490
- // SDL 2
2491
-
2492
- SDL_GL_ExtensionSupported: function(extension) {
2493
- return Module.ctx.getExtension(extension) | 0;
2494
- },
2495
-
2496
- SDL_DestroyWindow: function(window) {},
2497
-
2498
- SDL_DestroyRenderer: function(renderer) {},
2499
-
2500
- SDL_GetWindowFlags: function(x, y) {
2501
- if (Browser.isFullScreen) {
2502
- return 1;
2503
- }
2504
-
2505
- return 0;
2506
- },
2507
-
2508
- SDL_GL_SwapWindow: function(window) {},
2509
-
2510
- SDL_GL_MakeCurrent: function(window, context) {},
2511
-
2512
- SDL_GL_DeleteContext: function(context) {},
2513
-
2514
- SDL_GL_SetSwapInterval: function(state) {},
2515
-
2516
- SDL_SetWindowTitle: function(window, title) {
2517
- if (title) document.title = Pointer_stringify(title);
2518
- },
2519
-
2520
- SDL_GetWindowSize: function(window, width, height){
2521
- var w = Module['canvas'].width;
2522
- var h = Module['canvas'].height;
2523
- if (width) {{{ makeSetValue('width', '0', 'w', 'i32') }}};
2524
- if (height) {{{ makeSetValue('height', '0', 'h', 'i32') }}};
2525
- },
2526
-
2527
- SDL_LogSetOutputFunction: function(callback, userdata) {},
2528
-
2529
- SDL_SetWindowFullscreen: function(window, fullscreen) {
2530
- if (Browser.isFullScreen) {
2531
- Module['canvas'].cancelFullScreen();
2532
- return 1;
2533
- } else {
2534
- return 0;
2535
- }
2536
- },
2537
-
2538
- SDL_GetWindowFlags: function() {},
2539
-
2540
- SDL_ClearError: function() {},
2541
-
2542
- SDL_getenv: 'getenv',
2543
-
2544
- // TODO
2545
-
2546
- SDL_SetGamma: function(r, g, b) {
2547
- return -1;
2548
- },
2549
-
2550
- SDL_SetGammaRamp: function(redTable, greenTable, blueTable) {
2551
- return -1;
2552
- },
2553
-
2554
- // Joysticks
2555
-
2556
- SDL_NumJoysticks: function() {
2557
- var count = 0;
2558
- var gamepads = SDL.getGamepads();
2559
- // The length is not the number of gamepads; check which ones are defined.
2560
- for (var i = 0; i < gamepads.length; i++) {
2561
- if (gamepads[i] !== undefined) count++;
2562
- }
2563
- return count;
2564
- },
2565
-
2566
- SDL_JoystickName: function(deviceIndex) {
2567
- var gamepad = SDL.getGamepad(deviceIndex);
2568
- if (gamepad) {
2569
- var name = gamepad.id;
2570
- if (SDL.joystickNamePool.hasOwnProperty(name)) {
2571
- return SDL.joystickNamePool[name];
2572
- }
2573
- return SDL.joystickNamePool[name] = allocate(intArrayFromString(name), 'i8', ALLOC_NORMAL);
2574
- }
2575
- return 0;
2576
- },
2577
-
2578
- SDL_JoystickOpen: function(deviceIndex) {
2579
- var gamepad = SDL.getGamepad(deviceIndex);
2580
- if (gamepad) {
2581
- // Use this as a unique 'pointer' for this joystick.
2582
- var joystick = deviceIndex+1;
2583
- SDL.recordJoystickState(joystick, gamepad);
2584
- return joystick;
2585
- }
2586
- return 0;
2587
- },
2588
-
2589
- SDL_JoystickOpened: function(deviceIndex) {
2590
- return SDL.lastJoystickState.hasOwnProperty(deviceIndex+1) ? 1 : 0;
2591
- },
2592
-
2593
- SDL_JoystickIndex: function(joystick) {
2594
- // joystick pointers are simply the deviceIndex+1.
2595
- return joystick - 1;
2596
- },
2597
-
2598
- SDL_JoystickNumAxes: function(joystick) {
2599
- var gamepad = SDL.getGamepad(joystick - 1);
2600
- if (gamepad) {
2601
- return gamepad.axes.length;
2602
- }
2603
- return 0;
2604
- },
2605
-
2606
- SDL_JoystickNumBalls: function(joystick) { return 0; },
2607
-
2608
- SDL_JoystickNumHats: function(joystick) { return 0; },
2609
-
2610
- SDL_JoystickNumButtons: function(joystick) {
2611
- var gamepad = SDL.getGamepad(joystick - 1);
2612
- if (gamepad) {
2613
- return gamepad.buttons.length;
2614
- }
2615
- return 0;
2616
- },
2617
-
2618
- SDL_JoystickUpdate: function() {
2619
- SDL.queryJoysticks();
2620
- },
2621
-
2622
- SDL_JoystickEventState: function(state) {
2623
- if (state < 0) {
2624
- // SDL_QUERY: Return current state.
2625
- return SDL.joystickEventState;
2626
- }
2627
- return SDL.joystickEventState = state;
2628
- },
2629
-
2630
- SDL_JoystickGetAxis: function(joystick, axis) {
2631
- var gamepad = SDL.getGamepad(joystick - 1);
2632
- if (gamepad && gamepad.axes.length > axis) {
2633
- return SDL.joystickAxisValueConversion(gamepad.axes[axis]);
2634
- }
2635
- return 0;
2636
- },
2637
-
2638
- SDL_JoystickGetHat: function(joystick, hat) { return 0; },
2639
-
2640
- SDL_JoystickGetBall: function(joystick, ball, dxptr, dyptr) { return -1; },
2641
-
2642
- SDL_JoystickGetButton: function(joystick, button) {
2643
- var gamepad = SDL.getGamepad(joystick - 1);
2644
- if (gamepad && gamepad.buttons.length > button) {
2645
- return SDL.getJoystickButtonState(gamepad.buttons[button]) ? 1 : 0;
2646
- }
2647
- return 0;
2648
- },
2649
-
2650
- SDL_JoystickClose: function(joystick) {
2651
- delete SDL.lastJoystickState[joystick];
2652
- },
2653
-
2654
- // Misc
2655
-
2656
- SDL_InitSubSystem: function(flags) { return 0 },
2657
-
2658
- SDL_RWFromConstMem: function(mem, size) {
2659
- var id = SDL.rwops.length; // TODO: recycle ids when they are null
2660
- SDL.rwops.push({ bytes: mem, count: size });
2661
- return id;
2662
- },
2663
- SDL_RWFromMem: 'SDL_RWFromConstMem',
2664
-
2665
- SDL_RWFromFile: function(_name, mode) {
2666
- var id = SDL.rwops.length; // TODO: recycle ids when they are null
2667
- var name = Pointer_stringify(_name)
2668
- SDL.rwops.push({ filename: name, mimetype: Browser.getMimetype(name) });
2669
- return id;
2670
- },
2671
-
2672
- SDL_FreeRW: function(rwopsID) {
2673
- SDL.rwops[rwopsID] = null;
2674
- while (SDL.rwops.length > 0 && SDL.rwops[SDL.rwops.length-1] === null) {
2675
- SDL.rwops.pop();
2676
- }
2677
- },
2678
-
2679
- SDL_EnableUNICODE: function(on) {
2680
- var ret = SDL.unicode || 0;
2681
- SDL.unicode = on;
2682
- return ret;
2683
- },
2684
-
2685
- SDL_AddTimer: function(interval, callback, param) {
2686
- return window.setTimeout(function() {
2687
- Runtime.dynCall('iii', callback, [interval, param]);
2688
- }, interval);
2689
- },
2690
- SDL_RemoveTimer: function(id) {
2691
- window.clearTimeout(id);
2692
- return true;
2693
- },
2694
-
2695
- SDL_CreateThread: function() {
2696
- throw 'SDL threads cannot be supported in the web platform because they assume shared state. See emscripten_create_worker etc. for a message-passing concurrency model that does let you run code in another thread.'
2697
- },
2698
-
2699
- SDL_WaitThread: function() { throw 'SDL_WaitThread' },
2700
- SDL_GetThreadID: function() { throw 'SDL_GetThreadID' },
2701
- SDL_ThreadID: function() { return 0; },
2702
- SDL_AllocRW: function() { throw 'SDL_AllocRW: TODO' },
2703
- SDL_CondBroadcast: function() { throw 'SDL_CondBroadcast: TODO' },
2704
- SDL_CondWaitTimeout: function() { throw 'SDL_CondWaitTimeout: TODO' },
2705
- SDL_WM_IconifyWindow: function() { throw 'SDL_WM_IconifyWindow TODO' },
2706
-
2707
- Mix_SetPostMix: function() { Runtime.warnOnce('Mix_SetPostMix: TODO') },
2708
- Mix_QuerySpec: function() { throw 'Mix_QuerySpec: TODO' },
2709
- Mix_FadeInChannelTimed: function() { throw 'Mix_FadeInChannelTimed' },
2710
- Mix_FadeOutChannel: function() { throw 'Mix_FadeOutChannel' },
2711
-
2712
- Mix_Linked_Version: function() { throw 'Mix_Linked_Version: TODO' },
2713
- SDL_SaveBMP_RW: function() { throw 'SDL_SaveBMP_RW: TODO' },
2714
-
2715
- SDL_WM_SetIcon: function() { /* This function would set the application window icon surface, which doesn't apply for web canvases, so a no-op. */ },
2716
- SDL_HasRDTSC: function() { return 0; },
2717
- SDL_HasMMX: function() { return 0; },
2718
- SDL_HasMMXExt: function() { return 0; },
2719
- SDL_Has3DNow: function() { return 0; },
2720
- SDL_Has3DNowExt: function() { return 0; },
2721
- SDL_HasSSE: function() { return 0; },
2722
- SDL_HasSSE2: function() { return 0; },
2723
- SDL_HasAltiVec: function() { return 0; }
2724
- };
2725
-
2726
- autoAddDeps(LibrarySDL, '$SDL');
2727
- mergeInto(LibraryManager.library, LibrarySDL);
2728
-