From 8ed3bab44cb2c30ef48f85bcbdd4cdddd3ac0886 Mon Sep 17 00:00:00 2001 From: JeffR Date: Wed, 28 May 2025 17:47:23 -0500 Subject: [PATCH] Re-added prefix handling for named texture lookups for image asset fields Changed render-out of shape preview images to use png Added filter against previewCache folder --- Engine/source/T3D/assets/ImageAsset.h | 2 +- Engine/source/T3D/assets/ShapeAsset.cpp | 19 ++----------------- .../assetBrowser/scripts/assetBrowser.tscript | 2 +- .../scripts/assetTypes/image.tscript | 1 + .../scripts/assetTypes/material.tscript | 1 + .../scripts/assetTypes/shape.tscript | 2 +- .../scripts/directoryHandling.tscript | 3 +++ 7 files changed, 10 insertions(+), 20 deletions(-) diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index 0021b4e0d..99230fb76 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -264,7 +264,7 @@ public: { \ imageAssetId = query.mAssetList[0]; \ } \ - else if(Torque::FS::IsFile(_in)) \ + else if(Torque::FS::IsFile(_in) || (_in[0] == '$' || _in[0] == '#')) \ { \ imageAssetId = ImageAsset::getAssetIdByFilename(_in); \ if (imageAssetId == ImageAsset::smNoImageAssetFallback) \ diff --git a/Engine/source/T3D/assets/ShapeAsset.cpp b/Engine/source/T3D/assets/ShapeAsset.cpp index 8945335a7..ff27573cc 100644 --- a/Engine/source/T3D/assets/ShapeAsset.cpp +++ b/Engine/source/T3D/assets/ShapeAsset.cpp @@ -626,28 +626,13 @@ const char* ShapeAsset::generateCachedPreviewImage(S32 resolution, String overri delete imposterCap; delete shape; - String dumpPath = String(mFilePath) + "_Preview.dds"; + String dumpPath = String(mFilePath) + ".png"; char* returnBuffer = Con::getReturnBuffer(128); dSprintf(returnBuffer, 128, "%s", dumpPath.c_str()); - /*FileStream stream; - if (stream.open(dumpPath, Torque::FS::File::Write)) - destBmp.writeBitmap("png", stream); - stream.close();*/ + imposter->writeBitmap("png", dumpPath); - DDSFile* ddsDest = DDSFile::createDDSFileFromGBitmap(imposter); - ImageUtil::ddsCompress(ddsDest, GFXFormatBC2); - - // Finally save the imposters to disk. - FileStream fs; - if (fs.open(returnBuffer, Torque::FS::File::Write)) - { - ddsDest->write(fs); - fs.close(); - } - - delete ddsDest; delete imposter; delete imposterNrml; diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript index a1e95cfcf..78a17d041 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript @@ -2778,7 +2778,7 @@ function getAssetPreviewImage(%asset) if(%previewPath $= "") %previewPath = "ToolsModule:unknownImage_image"; - + return %previewPath; } diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript index cce914b8e..0a9350d50 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript @@ -50,6 +50,7 @@ function ImageAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat } %previewFilePath = %previewPath @ %this.assetName @ ".png"; + if(!isFile(%previewFilePath) || (compareFileTimes(%this.getImagePath(), %previewFilePath) == 1)) { %generatePreview = true; diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript index 420ca2b1b..bd88e1274 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript @@ -67,6 +67,7 @@ function MaterialAsset::buildBrowserElement(%this, %previewData) %previewImage = getAssetPreviewImage(%this.getAssetId()); %previewData.previewImage = isFile(%previewImage) ? %previewImage : "ToolsModule:genericAssetIcon_image"; + %previewData.previewLoaded = false; //this marks it for loading progressively later %previewData.assetName = %this.assetName; diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript index dd337ecb6..c4fad9a5d 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript @@ -28,7 +28,7 @@ function ShapeAsset::onDelete(%this) { //Special handle the cache preview image %module = $CurrentAssetBrowser.dirHandler.getModuleFromAddress(makeRelativePath(filePath(%this.getShapePath()))); - %previewPath = "tools/resources/previewCache/" @ %module.moduleId @ "/" @ %this.assetName @ ".png"; + %previewPath = "tools/resources/previewCache/" @ %module.moduleId @ "/" @ %this.assetName @ ".dds"; if(isFile(%previewPath)) { diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/directoryHandling.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/directoryHandling.tscript index 92ecd22e8..4f7a12b6d 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/directoryHandling.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/directoryHandling.tscript @@ -40,6 +40,9 @@ function directoryHandler::loadFolders(%this, %path, %parentId) if(%parentName $= "Data" && (%folderName $= "shaderCache" || %folderName $= "cache")) continue; + if(%folderName $= "previewCache") + continue; + if(%folderName $= ".git") continue;