From 0ecf27d2d67f8dae7a006516e3f24818d86cfa3c Mon Sep 17 00:00:00 2001 From: Josh Tynjala Date: Thu, 18 Nov 2021 10:46:07 -0800 Subject: [PATCH] disable_preloader_assets haxedef When the project contains no assets, excludes asset-related classes for big file size savings --- src/lime/tools/AssetHelper.hx | 4 ++++ src/lime/utils/Preloader.hx | 20 +++++++++++++++++++- templates/haxe/ApplicationMain.hx | 4 ++++ templates/haxe/ManifestResources.hx | 3 +++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/lime/tools/AssetHelper.hx b/src/lime/tools/AssetHelper.hx index d913210e7..39c9c7fb2 100644 --- a/src/lime/tools/AssetHelper.hx +++ b/src/lime/tools/AssetHelper.hx @@ -432,6 +432,10 @@ class AssetHelper library = new Library(null, DEFAULT_LIBRARY_NAME); project.libraries.push(library); } + if(project.assets.length == 0) + { + project.haxedefs.set("disable_preloader_assets", "1"); + } var handlers = new Array(); var hasPackedLibraries = false; diff --git a/src/lime/utils/Preloader.hx b/src/lime/utils/Preloader.hx index b09becaae..78cde7d37 100644 --- a/src/lime/utils/Preloader.hx +++ b/src/lime/utils/Preloader.hx @@ -35,14 +35,18 @@ class Preloader #if flash extends Sprite #end public var onProgress = new EventInt->Void>(); @:noCompletion private var bytesLoaded:Int; + #if !disable_preloader_assets @:noCompletion private var bytesLoadedCache = new Map(); + #end @:noCompletion private var bytesLoadedCache2 = new Map(); @:noCompletion private var bytesTotal:Int; @:noCompletion private var bytesTotalCache = new Map(); @:noCompletion private var initLibraryNames:Bool; + #if !disable_preloader_assets @:noCompletion private var libraries:Array; @:noCompletion private var libraryNames:Array; @:noCompletion private var loadedLibraries:Int; + #end @:noCompletion private var loadedStage:Bool; @:noCompletion private var preloadComplete:Bool; @:noCompletion private var preloadStarted:Bool; @@ -58,8 +62,11 @@ class Preloader #if flash extends Sprite #end bytesLoaded = 0; bytesTotal = 0; + + #if !disable_preloader_assets libraries = new Array(); libraryNames = new Array(); + #end onProgress.add(update); @@ -104,6 +111,7 @@ class Preloader #if flash extends Sprite #end #end } + #if !disable_preloader_assets public function addLibrary(library:AssetLibrary):Void { libraries.push(library); @@ -116,17 +124,21 @@ class Preloader #if flash extends Sprite #end libraryNames.push(name); } } + #end public function load():Void { + #if !disable_preloader_assets for (library in libraries) { bytesTotal += library.bytesTotal; } loadedLibraries = -1; + #end preloadStarted = false; + #if !disable_preloader_assets for (library in libraries) { Log.verbose("Preloading asset library"); @@ -177,10 +189,12 @@ class Preloader #if flash extends Sprite #end } loadedLibraries++; + #end preloadStarted = true; updateProgress(); } + #if !disable_preloader_assets @:noCompletion private function loadedAssetLibrary(name:String = null):Void { loadedLibraries++; @@ -201,6 +215,7 @@ class Preloader #if flash extends Sprite #end updateProgress(); } + #end @:noCompletion private function start():Void { @@ -227,6 +242,7 @@ class Preloader #if flash extends Sprite #end onProgress.dispatch(bytesLoaded, bytesTotal); } + #if !disable_preloader_assets if (#if flash loadedStage && #end loadedLibraries == libraries.length && !initLibraryNames) { initLibraryNames = true; @@ -291,8 +307,10 @@ class Preloader #if flash extends Sprite #end }); } } + #end - if (!simulateProgress && #if flash loadedStage && #end loadedLibraries == (libraries.length + libraryNames.length)) + if (!simulateProgress #if flash && loadedStage #end + #if !disable_preloader_assets && loadedLibraries == (libraries.length + libraryNames.length) #end) { if (!preloadComplete) { diff --git a/templates/haxe/ApplicationMain.hx b/templates/haxe/ApplicationMain.hx index f75d68b62..120961ac3 100644 --- a/templates/haxe/ApplicationMain.hx +++ b/templates/haxe/ApplicationMain.hx @@ -18,7 +18,9 @@ import ::APP_MAIN::; public static function create(config:Dynamic):Void { + #if !disable_preloader_assets ManifestResources.init(config); + #end #if !munit var app = new ::APP_MAIN::(); @@ -98,6 +100,7 @@ import ::APP_MAIN::; // preloader.create (); + #if !disable_preloader_assets for (library in ManifestResources.preloadLibraries) { app.preloader.addLibrary(library); @@ -107,6 +110,7 @@ import ::APP_MAIN::; { app.preloader.addLibraryName(name); } + #end app.preloader.load(); diff --git a/templates/haxe/ManifestResources.hx b/templates/haxe/ManifestResources.hx index ca5a3583b..a49c845f6 100644 --- a/templates/haxe/ManifestResources.hx +++ b/templates/haxe/ManifestResources.hx @@ -1,3 +1,4 @@ +#if !disable_preloader_assets package; @@ -136,3 +137,5 @@ import sys.FileSystem; #end #end + +#end \ No newline at end of file