diff --git a/data/shapes/pads/abyss.png b/data/shapes/pads/abyss.png index 924425fb..cc295493 100644 Binary files a/data/shapes/pads/abyss.png and b/data/shapes/pads/abyss.png differ diff --git a/src/ResourceLoader.hx b/src/ResourceLoader.hx index 0e114838..bf8f9c4e 100644 --- a/src/ResourceLoader.hx +++ b/src/ResourceLoader.hx @@ -151,7 +151,17 @@ class ResourceLoader { } var worker = new ResourceLoaderWorker(onFinish); for (file in toloadfiles) { - worker.addTaskParallel((fwd) -> file.load(fwd)); + worker.addTaskParallel((fwd) -> { + // if its a jpg, png or gif, load it as bitmap else load as file + var fileExtension = file.extension.toLowerCase(); + if (fileExtension == "jpg" || fileExtension == "png" || fileExtension == "bmp") { + file.loadBitmap(v -> { + fwd(); + }); + } else { + file.load(fwd); + } + }); } worker.run(); } diff --git a/src/ResourceLoaderWorker.hx b/src/ResourceLoaderWorker.hx index 5bdec093..55133a8b 100644 --- a/src/ResourceLoaderWorker.hx +++ b/src/ResourceLoaderWorker.hx @@ -56,6 +56,22 @@ class ResourceLoaderWorker { public function loadFile(path:String) { if (ResourceLoader.loadedFiles.exists(path)) return; - paralleltasks.push(fwd -> ResourceLoader.load(path).entry.load(fwd)); + // if its a jpg, png or gif, load it as bitmap else load as file + var fileExtension = path.split('.').pop(); + if (fileExtension != null) { + fileExtension = fileExtension.toLowerCase(); + if (fileExtension == "jpg" || fileExtension == "png" || fileExtension == "bmp") { + paralleltasks.push(fwd -> { + var file = ResourceLoader.load(path); + file.entry.loadBitmap(v -> { + fwd(); + }); + }); + } else if (fileExtension != "") { + paralleltasks.push(fwd -> ResourceLoader.load(path).entry.load(fwd)); + } + } else { + paralleltasks.push(fwd -> ResourceLoader.load(path).entry.load(fwd)); + } } } diff --git a/src/fs/ManifestFileSystem.hx b/src/fs/ManifestFileSystem.hx index a57829d2..4d8c3801 100644 --- a/src/fs/ManifestFileSystem.hx +++ b/src/fs/ManifestFileSystem.hx @@ -48,6 +48,7 @@ class ManifestEntry extends FileEntry { private var bytes:Bytes; private var readPos:Int; private var loaded:Bool; + var loadedBmp:LoadedBitmap; #end public function new(fs:ManifestFileSystem, name:String, relPath:String, file:String, ?originalFile:String) { @@ -170,9 +171,16 @@ class ManifestEntry extends FileEntry { var bmp = new hxd.res.Image(this).toBitmap(); onLoaded(new hxd.fs.LoadedBitmap(bmp)); #elseif js + if (loadedBmp != null) { + onLoaded(loadedBmp); + return; + } load(() -> { var img:js.html.Image = new js.html.Image(); - img.onload = (_) -> onLoaded(new LoadedBitmap(img)); + img.onload = (_) -> { + loadedBmp = new LoadedBitmap(img); + onLoaded(loadedBmp); + }; img.src = file; }); #else diff --git a/src/gui/PresentsGui.hx b/src/gui/PresentsGui.hx index cd20573a..b831d2e1 100644 --- a/src/gui/PresentsGui.hx +++ b/src/gui/PresentsGui.hx @@ -14,7 +14,7 @@ class PresentsGui extends GuiImage { this.position = new Vector(); this.extent = new Vector(640, 480); - var ggLogo = new GuiImage(ResourceLoader.getResource('data/ui/GG_logo.png', ResourceLoader.getImage, this.imageResources).toTile()); + var ggLogo = new GuiImage(ResourceLoader.getResource('data/ui/GG_Logo.png', ResourceLoader.getImage, this.imageResources).toTile()); ggLogo.horizSizing = Center; ggLogo.vertSizing = Center; ggLogo.position = new Vector(69, 99);