diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index 5f234fc0b..5bf4bdc3e 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -163,6 +163,13 @@ ImageAsset::ImageAsset() : ImageAsset::~ImageAsset() { + ImageTextureMap::iterator resIter = mResourceMap.begin(); + for (; resIter != mResourceMap.end(); ++resIter) + { + resIter->value.free(); + } + + mResourceMap.clear(); } diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index 6dc97f933..ddcdefa0a 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -62,6 +62,7 @@ class ImageAsset : public AssetBase typedef AssetPtr ConcreteAssetPtr; public: + typedef HashMap ImageTextureMap; /// The different types of image use cases enum ImageTypes { @@ -137,7 +138,7 @@ private: bool mIsHDRImage; GFXTexHandle mTextureHandle; ImageTypes mImageType; - HashMap mResourceMap; + ImageTextureMap mResourceMap; bool mIsNamedTarget; S32 mImageWidth; S32 mImageHeight; diff --git a/Engine/source/assets/assetManager.cpp b/Engine/source/assets/assetManager.cpp index eef113ae5..0b166a238 100644 --- a/Engine/source/assets/assetManager.cpp +++ b/Engine/source/assets/assetManager.cpp @@ -119,18 +119,6 @@ void AssetManager::onRemove() mAssetTagsManifest->deleteObject(); } - purgeAssets(); - - for (auto itr = mDeclaredAssets.begin(); itr != mDeclaredAssets.end(); ++itr) - { - delete itr->value; - } - mDeclaredAssets.clear(); - - // Clear dependency graphs - mAssetDependsOn.clear(); - mAssetIsDependedOn.clear(); - // Call parent. Parent::onRemove(); } diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript index 26f093dd0..3f938f78b 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript @@ -4,8 +4,8 @@ function ImageAsset::buildBrowserElement(%this, %previewData) { //%module = %this.dirHandler.getModuleFromAddress(makeRelativePath(filePath(%assetDef.getImagePath()))); - %previewData.previewImage = %assetDef.isNamedTarget() ? "Core_Rendering:namedTarget_image" : "ToolsModule:genericAssetIcon_image"; - %previewData.previewLoaded = %assetDef.isNamedTarget() ? true : false; //if image target we are loaded, else mark for loading later. + %previewData.previewImage = %this.isNamedTarget() ? "Core_Rendering:namedTarget_image" : "ToolsModule:genericAssetIcon_image"; + %previewData.previewLoaded = %this.isNamedTarget() ? true : false;//this marks it for loading progressively later %previewData.assetName = %this.assetName; %previewData.assetPath = %this.scriptFile; @@ -61,11 +61,11 @@ function ImageAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat versionId = 1; imageFile = makeFullPath(%previewFilePath); }; - + %previewAssetName = "ToolsModule:" @ %previewAssetName; %previewImgAssetPath = %previewPath @ %previewAsset.assetName @ ".asset.taml"; - %assetImportSuccessful = TAMLWrite(%previewAsset, %previewImgAssetPath); + %toolsModuleDef = ModuleDatabase.findModule("ToolsModule",1); %success = AssetDatabase.addDeclaredAsset(%toolsModuleDef, %previewImgAssetPath);