summaryrefslogtreecommitdiff
path: root/src/library_browser.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-06-06 10:06:15 -0700
committerAlon Zakai <alonzakai@gmail.com>2014-06-06 10:06:15 -0700
commita0b5fa6be83e76bc1ba418495df0307378985572 (patch)
treefe4448cd713ec85f9ae855babd575534d84ce577 /src/library_browser.js
parent85c15a40f96d3e14416bcbef1fd76537080798b5 (diff)
parentab37a004d25744d4c48353ed4fd215173650e099 (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.js33
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;
}
});