webruby 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webruby/rake/mruby.rake +1 -0
- data/modules/emscripten/AUTHORS +7 -0
- data/modules/emscripten/LICENSE +26 -0
- data/modules/emscripten/emcc +58 -20
- data/modules/emscripten/emlink.py +2 -265
- data/modules/emscripten/emscripten.py +38 -18
- data/modules/emscripten/scons-tools/emscripten.py +11 -6
- data/modules/emscripten/scons-tools/llvm.py +4 -3
- data/modules/emscripten/src/analyzer.js +32 -13
- data/modules/emscripten/src/embind/embind.js +13 -13
- data/modules/emscripten/src/embind/emval.js +8 -7
- data/modules/emscripten/src/intertyper.js +10 -0
- data/modules/emscripten/src/jsifier.js +28 -6
- data/modules/emscripten/src/library.js +2949 -1322
- data/modules/emscripten/src/library_browser.js +27 -23
- data/modules/emscripten/src/library_egl.js +7 -2
- data/modules/emscripten/src/library_gl.js +15 -2
- data/modules/emscripten/src/library_glut.js +1 -1
- data/modules/emscripten/src/library_jansson.js +1 -1
- data/modules/emscripten/src/library_openal.js +464 -132
- data/modules/emscripten/src/library_path.js +134 -0
- data/modules/emscripten/src/library_sdl.js +222 -50
- data/modules/emscripten/src/modules.js +22 -5
- data/modules/emscripten/src/parseTools.js +13 -2
- data/modules/emscripten/src/postamble.js +60 -34
- data/modules/emscripten/src/preamble.js +67 -18
- data/modules/emscripten/src/relooper/Relooper.cpp +1 -1
- data/modules/emscripten/src/runtime.js +12 -2
- data/modules/emscripten/src/settings.js +869 -826
- data/modules/emscripten/src/shell.js +63 -51
- data/modules/emscripten/src/utility.js +6 -0
- data/modules/emscripten/system/include/bsd/sys/mman.h +1 -1
- data/modules/emscripten/system/include/emscripten/bind.h +28 -28
- data/modules/emscripten/system/include/libc/math.h +8 -0
- data/modules/emscripten/system/include/libc/sys/signal.h +3 -1
- data/modules/emscripten/system/include/libc/sys/stat.h +2 -1
- data/modules/emscripten/system/include/libc/sys/types.h +4 -0
- data/modules/emscripten/system/include/libcxx/CREDITS.TXT +24 -0
- data/modules/emscripten/system/include/libcxx/__bit_reference +27 -8
- data/modules/emscripten/system/include/libcxx/__config +62 -15
- data/modules/emscripten/system/include/libcxx/__debug +5 -1
- data/modules/emscripten/system/include/libcxx/__functional_03 +24 -24
- data/modules/emscripten/system/include/libcxx/__functional_base +22 -4
- data/modules/emscripten/system/include/libcxx/__hash_table +566 -54
- data/modules/emscripten/system/include/libcxx/__locale +11 -3
- data/modules/emscripten/system/include/libcxx/__split_buffer +6 -6
- data/modules/emscripten/system/include/libcxx/__std_stream +58 -30
- data/modules/emscripten/system/include/libcxx/__tree +58 -51
- data/modules/emscripten/system/include/libcxx/__tuple +9 -9
- data/modules/emscripten/system/include/libcxx/algorithm +223 -13
- data/modules/emscripten/system/include/libcxx/array +18 -17
- data/modules/emscripten/system/include/libcxx/atomic +15 -5
- data/modules/emscripten/system/include/libcxx/cctype +2 -2
- data/modules/emscripten/system/include/libcxx/chrono +131 -36
- data/modules/emscripten/system/include/libcxx/cmath +41 -36
- data/modules/emscripten/system/include/libcxx/complex +49 -49
- data/modules/emscripten/system/include/libcxx/cstdio +2 -2
- data/modules/emscripten/system/include/libcxx/cstdlib +5 -5
- data/modules/emscripten/system/include/libcxx/cstring +2 -2
- data/modules/emscripten/system/include/libcxx/cwchar +22 -13
- data/modules/emscripten/system/include/libcxx/deque +27 -14
- data/modules/emscripten/system/include/libcxx/forward_list +36 -35
- data/modules/emscripten/system/include/libcxx/fstream +16 -0
- data/modules/emscripten/system/include/libcxx/functional +348 -23
- data/modules/emscripten/system/include/libcxx/future +66 -0
- data/modules/emscripten/system/include/libcxx/ios +27 -0
- data/modules/emscripten/system/include/libcxx/istream +2 -4
- data/modules/emscripten/system/include/libcxx/iterator +17 -9
- data/modules/emscripten/system/include/libcxx/limits +2 -2
- data/modules/emscripten/system/include/libcxx/list +165 -105
- data/modules/emscripten/system/include/libcxx/locale +154 -43
- data/modules/emscripten/system/include/libcxx/map +165 -224
- data/modules/emscripten/system/include/libcxx/memory +113 -54
- data/modules/emscripten/system/include/libcxx/random +2 -29
- data/modules/emscripten/system/include/libcxx/readme.txt +1 -1
- data/modules/emscripten/system/include/libcxx/regex +60 -15
- data/modules/emscripten/system/include/libcxx/sstream +124 -40
- data/modules/emscripten/system/include/libcxx/string +345 -182
- data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +3 -3
- data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +15 -2
- data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +3 -3
- data/modules/emscripten/system/include/libcxx/support/win32/support.h +10 -11
- data/modules/emscripten/system/include/libcxx/thread +2 -2
- data/modules/emscripten/system/include/libcxx/tuple +134 -65
- data/modules/emscripten/system/include/libcxx/type_traits +232 -24
- data/modules/emscripten/system/include/libcxx/unordered_map +314 -161
- data/modules/emscripten/system/include/libcxx/unordered_set +160 -2
- data/modules/emscripten/system/include/libcxx/utility +225 -40
- data/modules/emscripten/system/include/libcxx/vector +52 -57
- data/modules/emscripten/system/include/net/if.h +20 -1
- data/modules/emscripten/system/include/net/netinet/in.h +69 -5
- data/modules/emscripten/system/include/netdb.h +36 -0
- data/modules/emscripten/system/include/sys/ioctl.h +55 -3
- data/modules/emscripten/system/include/sys/select.h +2 -0
- data/modules/emscripten/system/include/sys/sendfile.h +16 -0
- data/modules/emscripten/system/include/sys/socket.h +181 -35
- data/modules/emscripten/system/lib/dlmalloc.c +10 -12
- data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +19 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +25 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +8 -0
- data/modules/emscripten/system/lib/libcextra.symbols +3 -0
- data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +24 -0
- data/modules/emscripten/system/lib/libcxx/debug.cpp +11 -9
- data/modules/emscripten/system/lib/libcxx/exception.cpp +9 -0
- data/modules/emscripten/system/lib/libcxx/hash.cpp +6 -0
- data/modules/emscripten/system/lib/libcxx/iostream.cpp +4 -4
- data/modules/emscripten/system/lib/libcxx/locale.cpp +91 -42
- data/modules/emscripten/system/lib/libcxx/readme.txt +1 -1
- data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +1 -1
- data/modules/emscripten/system/lib/libcxx/string.cpp +332 -491
- data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +4 -2
- data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +140 -41
- data/modules/emscripten/system/lib/libcxx/symbols +9 -256
- data/modules/emscripten/system/lib/libcxx/system_error.cpp +3 -0
- data/modules/emscripten/system/lib/libcxx/thread.cpp +16 -3
- data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +12 -2
- data/modules/emscripten/third_party/stb_image.c +4673 -0
- data/modules/emscripten/tools/asm_module.py +273 -0
- data/modules/emscripten/tools/exec_llvm.py +2 -2
- data/modules/emscripten/tools/file_packager.py +36 -16
- data/modules/emscripten/tools/find_bigfuncs.py +9 -9
- data/modules/emscripten/tools/js-optimizer.js +485 -131
- data/modules/emscripten/tools/js_optimizer.py +22 -15
- data/modules/emscripten/tools/merge_asm.py +26 -0
- data/modules/emscripten/tools/nativize_llvm.py +2 -2
- data/modules/emscripten/tools/settings_template_readonly.py +1 -1
- data/modules/emscripten/tools/shared.py +63 -20
- data/modules/emscripten/tools/split_asm.py +30 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +686 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +263 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +747 -0
- data/modules/emscripten/tools/{test-js-optimizer-asm-outline.js → test-js-optimizer-asm-outline2.js} +1 -1
- data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +28 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +30 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +4 -4
- data/modules/mruby/AUTHORS +1 -0
- data/modules/mruby/README.md +4 -2
- data/modules/mruby/build_config.rb +6 -6
- data/modules/mruby/doc/mrbgems/README.md +4 -4
- data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
- data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
- data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
- data/modules/mruby/include/mrbconf.h +3 -0
- data/modules/mruby/include/mruby/array.h +2 -2
- data/modules/mruby/include/mruby/class.h +4 -4
- data/modules/mruby/include/mruby/compile.h +1 -0
- data/modules/mruby/include/mruby/data.h +1 -1
- data/modules/mruby/include/mruby/hash.h +2 -2
- data/modules/mruby/include/mruby/irep.h +3 -2
- data/modules/mruby/include/mruby/proc.h +1 -1
- data/modules/mruby/include/mruby/range.h +1 -1
- data/modules/mruby/include/mruby/string.h +2 -2
- data/modules/mruby/include/mruby/value.h +43 -26
- data/modules/mruby/include/mruby.h +10 -2
- data/modules/mruby/minirake +2 -2
- data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +4 -1
- data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +32 -0
- data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +13 -5
- data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +10 -11
- data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +4 -0
- data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +24 -0
- data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +4 -2
- data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +5 -7
- data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +2 -2
- data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +3 -3
- data/modules/mruby/mrbgems/mruby-object-ext/test/nil.rb +3 -3
- data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +1 -1
- data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +36 -37
- data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +8 -8
- data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +6 -6
- data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +6 -6
- data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +2 -2
- data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-time/src/time.c +2 -8
- data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -1
- data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +10 -10
- data/modules/mruby/mrblib/class.rb +15 -9
- data/modules/mruby/mrblib/string.rb +12 -0
- data/modules/mruby/src/array.c +4 -3
- data/modules/mruby/src/class.c +13 -8
- data/modules/mruby/src/codegen.c +9 -8
- data/modules/mruby/src/error.c +7 -5
- data/modules/mruby/src/error.h +1 -0
- data/modules/mruby/src/etc.c +1 -1
- data/modules/mruby/src/gc.c +163 -128
- data/modules/mruby/src/kernel.c +43 -15
- data/modules/mruby/src/numeric.c +9 -7
- data/modules/mruby/src/object.c +1 -1
- data/modules/mruby/src/parse.y +37 -19
- data/modules/mruby/src/range.c +10 -24
- data/modules/mruby/src/state.c +2 -6
- data/modules/mruby/src/string.c +0 -9
- data/modules/mruby/src/variable.c +2 -2
- data/modules/mruby/src/vm.c +12 -6
- data/modules/mruby/tasks/mrbgem_spec.rake +7 -0
- data/modules/mruby/tasks/mrbgems.rake +2 -1
- data/modules/mruby/tasks/mrbgems_test.rake +1 -1
- data/modules/mruby/tasks/mruby_build.rake +4 -3
- data/modules/mruby/tasks/mruby_build_commands.rake +6 -1
- data/modules/mruby/tasks/mruby_build_gem.rake +2 -2
- data/modules/mruby/tasks/toolchains/androideabi.rake +2 -0
- data/modules/mruby/test/assert.rb +2 -2
- data/modules/mruby/test/t/argumenterror.rb +3 -3
- data/modules/mruby/test/t/array.rb +55 -55
- data/modules/mruby/test/t/basicobject.rb +1 -1
- data/modules/mruby/test/t/bs_block.rb +12 -12
- data/modules/mruby/test/t/class.rb +21 -21
- data/modules/mruby/test/t/enumerable.rb +18 -18
- data/modules/mruby/test/t/exception.rb +20 -20
- data/modules/mruby/test/t/false.rb +3 -3
- data/modules/mruby/test/t/float.rb +40 -40
- data/modules/mruby/test/t/gc.rb +10 -10
- data/modules/mruby/test/t/hash.rb +41 -41
- data/modules/mruby/test/t/indexerror.rb +2 -2
- data/modules/mruby/test/t/integer.rb +41 -41
- data/modules/mruby/test/t/kernel.rb +33 -33
- data/modules/mruby/test/t/literals.rb +82 -82
- data/modules/mruby/test/t/localjumperror.rb +1 -1
- data/modules/mruby/test/t/module.rb +170 -31
- data/modules/mruby/test/t/nameerror.rb +5 -5
- data/modules/mruby/test/t/nil.rb +2 -2
- data/modules/mruby/test/t/nomethoderror.rb +1 -1
- data/modules/mruby/test/t/numeric.rb +5 -5
- data/modules/mruby/test/t/object.rb +2 -2
- data/modules/mruby/test/t/proc.rb +8 -8
- data/modules/mruby/test/t/range.rb +9 -9
- data/modules/mruby/test/t/rangeerror.rb +2 -2
- data/modules/mruby/test/t/runtimeerror.rb +1 -1
- data/modules/mruby/test/t/standarderror.rb +2 -2
- data/modules/mruby/test/t/string.rb +100 -100
- data/modules/mruby/test/t/symbol.rb +5 -5
- data/modules/mruby/test/t/syntax.rb +15 -6
- data/modules/mruby/test/t/true.rb +3 -3
- data/modules/mruby/test/t/typeerror.rb +2 -2
- data/modules/mruby/tools/mrbc/mrbc.c +10 -4
- data/modules/mruby/travis_config.rb +1 -0
- data/scripts/gen_gems_config.rb +5 -1
- metadata +19 -4
- data/modules/emscripten/tools/test-js-optimizer-asm-outline-output.js +0 -570
@@ -3,6 +3,7 @@
|
|
3
3
|
// Utilities for browser environments
|
4
4
|
|
5
5
|
mergeInto(LibraryManager.library, {
|
6
|
+
$Browser__deps: ['$PATH'],
|
6
7
|
$Browser__postset: 'Module["requestFullScreen"] = function(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };\n' + // exports
|
7
8
|
'Module["requestAnimationFrame"] = function(func) { Browser.requestAnimationFrame(func) };\n' +
|
8
9
|
'Module["pauseMainLoop"] = function() { Browser.mainLoop.pause() };\n' +
|
@@ -60,7 +61,11 @@ mergeInto(LibraryManager.library, {
|
|
60
61
|
console.log("warning: no blob constructor, cannot create blobs with mimetypes");
|
61
62
|
}
|
62
63
|
Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
|
63
|
-
Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) :
|
64
|
+
Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
|
65
|
+
if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
|
66
|
+
console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
|
67
|
+
Module.noImageDecoding = true;
|
68
|
+
}
|
64
69
|
|
65
70
|
// Support for plugins that can process preloaded files. You can add more of these to
|
66
71
|
// your app by creating and appending to Module.preloadPlugins.
|
@@ -70,18 +75,6 @@ mergeInto(LibraryManager.library, {
|
|
70
75
|
// (possibly modified) data. For example, a plugin might decompress a file, or it
|
71
76
|
// might create some side data structure for use later (like an Image element, etc.).
|
72
77
|
|
73
|
-
function getMimetype(name) {
|
74
|
-
return {
|
75
|
-
'jpg': 'image/jpeg',
|
76
|
-
'jpeg': 'image/jpeg',
|
77
|
-
'png': 'image/png',
|
78
|
-
'bmp': 'image/bmp',
|
79
|
-
'ogg': 'audio/ogg',
|
80
|
-
'wav': 'audio/wav',
|
81
|
-
'mp3': 'audio/mpeg'
|
82
|
-
}[name.substr(name.lastIndexOf('.')+1)];
|
83
|
-
}
|
84
|
-
|
85
78
|
var imagePlugin = {};
|
86
79
|
imagePlugin['canHandle'] = function(name) {
|
87
80
|
return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
|
@@ -90,10 +83,10 @@ mergeInto(LibraryManager.library, {
|
|
90
83
|
var b = null;
|
91
84
|
if (Browser.hasBlobConstructor) {
|
92
85
|
try {
|
93
|
-
b = new Blob([byteArray], { type: getMimetype(name) });
|
86
|
+
b = new Blob([byteArray], { type: Browser.getMimetype(name) });
|
94
87
|
if (b.size !== byteArray.length) { // Safari bug #118630
|
95
88
|
// Safari's Blob can only take an ArrayBuffer
|
96
|
-
b = new Blob([(new Uint8Array(byteArray)).buffer], { type: getMimetype(name) });
|
89
|
+
b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
|
97
90
|
}
|
98
91
|
} catch(e) {
|
99
92
|
Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
|
@@ -148,7 +141,7 @@ mergeInto(LibraryManager.library, {
|
|
148
141
|
}
|
149
142
|
if (Browser.hasBlobConstructor) {
|
150
143
|
try {
|
151
|
-
var b = new Blob([byteArray], { type: getMimetype(name) });
|
144
|
+
var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
|
152
145
|
} catch(e) {
|
153
146
|
return fail();
|
154
147
|
}
|
@@ -391,6 +384,18 @@ mergeInto(LibraryManager.library, {
|
|
391
384
|
}, timeout);
|
392
385
|
},
|
393
386
|
|
387
|
+
getMimetype: function(name) {
|
388
|
+
return {
|
389
|
+
'jpg': 'image/jpeg',
|
390
|
+
'jpeg': 'image/jpeg',
|
391
|
+
'png': 'image/png',
|
392
|
+
'bmp': 'image/bmp',
|
393
|
+
'ogg': 'audio/ogg',
|
394
|
+
'wav': 'audio/wav',
|
395
|
+
'mp3': 'audio/mpeg'
|
396
|
+
}[name.substr(name.lastIndexOf('.')+1)];
|
397
|
+
},
|
398
|
+
|
394
399
|
getUserMedia: function(func) {
|
395
400
|
if(!window.getUserMedia) {
|
396
401
|
window.getUserMedia = navigator['getUserMedia'] ||
|
@@ -399,6 +404,7 @@ mergeInto(LibraryManager.library, {
|
|
399
404
|
window.getUserMedia(func);
|
400
405
|
},
|
401
406
|
|
407
|
+
|
402
408
|
getMovementX: function(event) {
|
403
409
|
return event['movementX'] ||
|
404
410
|
event['mozMovementX'] ||
|
@@ -544,10 +550,9 @@ mergeInto(LibraryManager.library, {
|
|
544
550
|
emscripten_async_wget: function(url, file, onload, onerror) {
|
545
551
|
var _url = Pointer_stringify(url);
|
546
552
|
var _file = Pointer_stringify(file);
|
547
|
-
var index = _file.lastIndexOf('/');
|
548
553
|
FS.createPreloadedFile(
|
549
|
-
|
550
|
-
|
554
|
+
PATH.dirname(_file),
|
555
|
+
PATH.basename(_file),
|
551
556
|
_url, true, true,
|
552
557
|
function() {
|
553
558
|
if (onload) Runtime.dynCall('vi', onload, [file]);
|
@@ -622,10 +627,9 @@ mergeInto(LibraryManager.library, {
|
|
622
627
|
var _file = Pointer_stringify(file);
|
623
628
|
var data = FS.analyzePath(_file);
|
624
629
|
if (!data.exists) return -1;
|
625
|
-
var index = _file.lastIndexOf('/');
|
626
630
|
FS.createPreloadedFile(
|
627
|
-
|
628
|
-
|
631
|
+
PATH.dirname(_file),
|
632
|
+
PATH.basename(_file),
|
629
633
|
new Uint8Array(data.object.contents), true, true,
|
630
634
|
function() {
|
631
635
|
if (onload) Runtime.dynCall('vi', onload, [file]);
|
@@ -645,7 +649,7 @@ mergeInto(LibraryManager.library, {
|
|
645
649
|
var cname = _malloc(name.length+1);
|
646
650
|
writeStringToMemory(name, cname);
|
647
651
|
FS.createPreloadedFile(
|
648
|
-
'',
|
652
|
+
'/',
|
649
653
|
name,
|
650
654
|
{{{ makeHEAPView('U8', 'data', 'data + size') }}},
|
651
655
|
true, true,
|
@@ -260,8 +260,13 @@ var LibraryEGL = {
|
|
260
260
|
}
|
261
261
|
|
262
262
|
EGL.windowID = _glutCreateWindow();
|
263
|
-
EGL.
|
264
|
-
|
263
|
+
if (EGL.windowID != 0) {
|
264
|
+
EGL.setErrorCode(0x3000 /* EGL_SUCCESS */);
|
265
|
+
return 62004; // Magic ID for Emscripten EGLContext
|
266
|
+
} else {
|
267
|
+
EGL.setErrorCode(0x3009 /* EGL_BAD_MATCH */); // By the EGL 1.4 spec, an implementation that does not support GLES2 (WebGL in this case), this error code is set.
|
268
|
+
return 0; /* EGL_NO_CONTEXT */
|
269
|
+
}
|
265
270
|
},
|
266
271
|
|
267
272
|
eglDestroyContext__deps: ['glutDestroyWindow', '$GL'],
|
@@ -372,6 +372,12 @@ var LibraryGL = {
|
|
372
372
|
case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS
|
373
373
|
{{{ makeSetValue('p', '0', '0', 'i32') }}};
|
374
374
|
return;
|
375
|
+
case 0x86A2: // GL_NUM_COMPRESSED_TEXTURE_FORMATS
|
376
|
+
// WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be queried for length),
|
377
|
+
// so implement it ourselves to allow C++ GLES2 code get the length.
|
378
|
+
var formats = Module.ctx.getParameter(0x86A3 /*GL_COMPRESSED_TEXTURE_FORMATS*/);
|
379
|
+
{{{ makeSetValue('p', '0', 'formats.length', 'i32') }}};
|
380
|
+
return;
|
375
381
|
}
|
376
382
|
var result = Module.ctx.getParameter(name_);
|
377
383
|
switch (typeof(result)) {
|
@@ -630,6 +636,11 @@ var LibraryGL = {
|
|
630
636
|
for (var i = 0; i < n; i++) {
|
631
637
|
var id = {{{ makeGetValue('buffers', 'i*4', 'i32') }}};
|
632
638
|
var buffer = GL.buffers[id];
|
639
|
+
|
640
|
+
// From spec: "glDeleteBuffers silently ignores 0's and names that do not
|
641
|
+
// correspond to existing buffer objects."
|
642
|
+
if (!buffer) continue;
|
643
|
+
|
633
644
|
Module.ctx.deleteBuffer(buffer);
|
634
645
|
buffer.name = 0;
|
635
646
|
GL.buffers[id] = null;
|
@@ -1076,7 +1087,9 @@ var LibraryGL = {
|
|
1076
1087
|
}
|
1077
1088
|
{{{ makeSetValue('count', '0', 'len', 'i32') }}};
|
1078
1089
|
for (var i = 0; i < len; ++i) {
|
1079
|
-
|
1090
|
+
var id = GL.shaders.indexOf(result[i]);
|
1091
|
+
assert(id !== -1, 'shader not bound to local id');
|
1092
|
+
{{{ makeSetValue('shaders', 'i*4', 'id', 'i32') }}};
|
1080
1093
|
}
|
1081
1094
|
},
|
1082
1095
|
|
@@ -1310,7 +1323,7 @@ var LibraryGL = {
|
|
1310
1323
|
GLEmulation.fogColor = new Float32Array(4);
|
1311
1324
|
|
1312
1325
|
// Add some emulation workarounds
|
1313
|
-
Module.printErr('WARNING: using emscripten GL emulation. This is a collection of limited workarounds, do not expect it to work');
|
1326
|
+
Module.printErr('WARNING: using emscripten GL emulation. This is a collection of limited workarounds, do not expect it to work. (If you do not want this, build with -s DISABLE_GL_EMULATION=1)');
|
1314
1327
|
#if GL_UNSAFE_OPTS == 0
|
1315
1328
|
Module.printErr('WARNING: using emscripten GL emulation unsafe opts. If weirdness happens, try -s GL_UNSAFE_OPTS=0');
|
1316
1329
|
#endif
|
@@ -385,7 +385,7 @@ var LibraryGLUT = {
|
|
385
385
|
glutCreateWindow__deps: ['$Browser'],
|
386
386
|
glutCreateWindow: function(name) {
|
387
387
|
Module.ctx = Browser.createContext(Module['canvas'], true, true);
|
388
|
-
return 1
|
388
|
+
return Module.ctx ? 1 /* a new GLUT window ID for the created context */ : 0 /* failure */;
|
389
389
|
},
|
390
390
|
|
391
391
|
glutDestroyWindow__deps: ['$Browser'],
|
@@ -79,7 +79,7 @@ var LibraryJansson = {
|
|
79
79
|
load: function(string, flags, error) {
|
80
80
|
// This is potentially a security problem.
|
81
81
|
// TODO: Make sure everything is properly escaped
|
82
|
-
var json_obj =
|
82
|
+
var json_obj = JSON.parse(string);
|
83
83
|
|
84
84
|
if (json_obj != null) {
|
85
85
|
// The context is an array storing all child nodes.
|