aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-15 18:15:12 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-03-15 18:15:12 -0700
commit3fc8b5c9b7fd5393d936caad6a9ceb1923509fe6 (patch)
treee4ea021dc7a2bd88bc2b19223800e3ba9a2687e0 /src
parent7e78583ff2d44d669d969054e46167a0fb865b21 (diff)
preload images for SDL
Diffstat (limited to 'src')
-rw-r--r--src/library_sdl.js10
-rw-r--r--src/preamble.js4
2 files changed, 6 insertions, 8 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index e741faeb..3f5a8a87 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -478,14 +478,8 @@ mergeInto(LibraryManager.library, {
IMG_Load: function(filename) {
filename = Pointer_stringify(filename);
- var format = filename.split('.').slice(-1)[0];
- 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 raw = preloadedImages[filename];
+ assert(raw, 'Cannot find preloaded image ' + filename);
var surf = SDL.makeSurface(raw.width, raw.height, 0);
// XXX Extremely inefficient!
for (var i = 0; i < raw.width*raw.height*4; i++) {
diff --git a/src/preamble.js b/src/preamble.js
index 1e68295f..1c599836 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -892,5 +892,9 @@ function removeRunDependency() {
if (runDependencies == 0) run();
}
+// Preloading
+
+var preloadedImages = {}; // maps url to image data
+
// === Body ===