aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library_browser.js9
-rw-r--r--src/library_sdl.js7
-rw-r--r--src/shell.html5
3 files changed, 12 insertions, 9 deletions
diff --git a/src/library_browser.js b/src/library_browser.js
index 9c3057b8..b733bfbd 100644
--- a/src/library_browser.js
+++ b/src/library_browser.js
@@ -31,11 +31,14 @@ mergeInto(LibraryManager.library, {
}
return ret;
}
- var img = new Image();
+ var image = new Image();
+ image.src = 'data:image/' + format + ';base64,' + encodeBase64(pixels);
+ assert(image.complete, 'Image could not be decoded'); // page reload might fix it, decoding is async...
var canvas = document.createElement('canvas');
- img.src = 'data:image/' + format + ';base64,' + encodeBase64(pixels);
+ canvas.width = image.width;
+ canvas.height = image.height;
var ctx = canvas.getContext('2d');
- ctx.drawImage(img, 0, 0);
+ ctx.drawImage(image, 0, 0);
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
return imageData;
},
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 7b413c13..e741faeb 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -479,7 +479,12 @@ mergeInto(LibraryManager.library, {
IMG_Load: function(filename) {
filename = Pointer_stringify(filename);
var format = filename.split('.').slice(-1)[0];
- var data = readBinary(filename);
+ var file = FS.analyzePath(filename);
+ if (!file || !file.object) {
+ console.log('Cannot find file: ' + filename);
+ return 0;
+ }
+ var data = file.object.contents;
var raw = Browser.decodeImage(data, format);
var surf = SDL.makeSurface(raw.width, raw.height, 0);
// XXX Extremely inefficient!
diff --git a/src/shell.html b/src/shell.html
index 2f34ace3..11970241 100644
--- a/src/shell.html
+++ b/src/shell.html
@@ -9,11 +9,6 @@
<div id='output'></div>
<hr>
<script type='text/javascript'>
- /**
- * TODO: Encapsulate this part in a reusable token such as
- * EMSCRIPTEN_ENVIRONMENT so that we can share code
- * between the default shell and custom ones.
- */
// connect to canvas
var Module = {
print: (function() {