Make Assets.load* use a background thread on native

This commit is contained in:
Joshua Granick
2015-07-03 12:08:50 -07:00
parent c6ba6b0de5
commit 7f4f91bc53

View File

@@ -8,6 +8,7 @@ import lime.audio.AudioSource;
import lime.audio.openal.AL;
import lime.audio.AudioBuffer;
import lime.graphics.Image;
import lime.system.WorkerThread;
import lime.text.Font;
import lime.utils.ByteArray;
import lime.utils.UInt8Array;
@@ -472,6 +473,7 @@ class DefaultAssetLibrary extends AssetLibrary {
public override function loadAudioBuffer (id:String, handler:AudioBuffer -> Void):Void {
#if (flash)
if (path.exists (id)) {
var soundLoader = new Sound ();
@@ -482,13 +484,17 @@ class DefaultAssetLibrary extends AssetLibrary {
handler (audioBuffer);
});
soundLoader.load (new URLRequest (path.get (id)));
} else {
handler (getAudioBuffer (id));
}
#else
handler (getAudioBuffer (id));
#end
@@ -531,6 +537,7 @@ class DefaultAssetLibrary extends AssetLibrary {
handler (loader.data);
});
loader.load (new URLRequest (path.get (id)));
} else {
@@ -541,7 +548,15 @@ class DefaultAssetLibrary extends AssetLibrary {
#else
handler (getBytes (id));
var worker = new WorkerThread ();
worker.doWork = function () {
var bytes = getBytes (id);
worker.sendUpdate (bytes);
}
worker.onUpdate.add (function (msg) handler (msg));
worker.run ();
#end
@@ -589,7 +604,15 @@ class DefaultAssetLibrary extends AssetLibrary {
#else
handler (getImage (id));
var worker = new WorkerThread ();
worker.doWork = function () {
var image = getImage (id);
worker.sendUpdate (image);
}
worker.onUpdate.add (function (msg) handler (msg));
worker.run ();
#end
@@ -703,6 +726,7 @@ class DefaultAssetLibrary extends AssetLibrary {
handler (loader.data);
});
loader.load (new URLRequest (path.get (id)));
} else {