Make Assets.load* use a background thread on native
This commit is contained in:
@@ -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
|
||||
@@ -528,9 +534,10 @@ class DefaultAssetLibrary extends AssetLibrary {
|
||||
loader.dataFormat = BINARY;
|
||||
loader.onComplete.add (function (_):Void {
|
||||
|
||||
handler(loader.data);
|
||||
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
|
||||
|
||||
@@ -700,9 +723,10 @@ class DefaultAssetLibrary extends AssetLibrary {
|
||||
var loader = new URLLoader ();
|
||||
loader.onComplete.add (function (_):Void {
|
||||
|
||||
handler(loader.data);
|
||||
handler (loader.data);
|
||||
|
||||
});
|
||||
|
||||
loader.load (new URLRequest (path.get (id)));
|
||||
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user