diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-06-06 10:06:15 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-06-06 10:06:15 -0700 |
commit | a0b5fa6be83e76bc1ba418495df0307378985572 (patch) | |
tree | fe4448cd713ec85f9ae855babd575534d84ce577 /src/library_browser.js | |
parent | 85c15a40f96d3e14416bcbef1fd76537080798b5 (diff) | |
parent | ab37a004d25744d4c48353ed4fd215173650e099 (diff) |
Merge pull request #2409 from Daft-Freak/preloaded_image_data
Add emscripten_get_preloaded_image_data
Diffstat (limited to 'src/library_browser.js')
-rw-r--r-- | src/library_browser.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index 4ef7c577..57ca5a24 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -1175,6 +1175,39 @@ mergeInto(LibraryManager.library, { var info = Browser.workers[id]; if (!info) return -1; return info.awaited; + }, + + emscripten_get_preloaded_image_data: function(path, w, h) { + if (typeof path === "number") { + path = Pointer_stringify(path); + } + + path = PATH.resolve(path); + + var canvas = Module["preloadedImages"][path]; + if (canvas) { + var ctx = canvas.getContext("2d"); + var image = ctx.getImageData(0, 0, canvas.width, canvas.height); + var buf = _malloc(canvas.width * canvas.height * 4); + + HEAPU8.set(image.data, buf); + + {{{ makeSetValue('w', '0', 'canvas.width', 'i32') }}}; + {{{ makeSetValue('h', '0', 'canvas.height', 'i32') }}}; + return buf; + } + + return 0; + }, + + emscripten_get_preloaded_image_data_from_FILE__deps: ['emscripten_get_preloaded_image_data'], + emscripten_get_preloaded_image_data_from_FILE: function(file, w, h) { + var stream = FS.getStreamFromPtr(file); + if (stream) { + return _emscripten_get_preloaded_image_data(stream.path, w, h); + } + + return 0; } }); |