From bab7878ca6f170fbc474d686558b8391c88cf424 Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Wed, 26 Mar 2025 09:12:06 +0000 Subject: [PATCH] give named target a fallback we need to give named target a fallback image so references are kept when a named target is not ready. --- Engine/source/T3D/assets/ImageAsset.cpp | 23 +++++++++++++++--- Engine/source/T3D/assets/ImageAsset.h | 1 + .../core/rendering/Core_Rendering.tscript | 1 + .../core/rendering/images/namedTarget.png | Bin 0 -> 11733 bytes .../images/namedTarget_image.asset.taml | 3 +++ 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 Templates/BaseGame/game/core/rendering/images/namedTarget.png create mode 100644 Templates/BaseGame/game/core/rendering/images/namedTarget_image.asset.taml diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index d9e309f7c..093fde0b8 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -53,6 +53,7 @@ //----------------------------------------------------------------------------- StringTableEntry ImageAsset::smNoImageAssetFallback = NULL; +StringTableEntry ImageAsset::smNamedTargetAssetFallback = NULL; //----------------------------------------------------------------------------- @@ -139,7 +140,6 @@ ConsoleSetType(TypeImageAssetPtrRefactor) // Is the asset pointer the correct type? if (pAssetPtr == NULL) { - // No, so fail. Con::warnf("(TypeImageAssetPtr) - Failed to set asset Id '%d'.", pFieldValue); return; } @@ -207,7 +207,12 @@ void ImageAsset::consoleInit() "The assetId of the texture to display when the requested image asset is missing.\n" "@ingroup GFX\n"); + Con::addVariable("$Core::NamedTargetFallback", TypeString, &smNamedTargetAssetFallback, + "The assetId of the texture to display when the requested image asset is named target.\n" + "@ingroup GFX\n"); + smNoImageAssetFallback = StringTable->insert(Con::getVariable("$Core::NoImageAssetFallback")); + smNamedTargetAssetFallback = StringTable->insert(Con::getVariable("$Core::NamedTargetFallback")); } //----------------------------------------------------------------------------- @@ -447,7 +452,19 @@ GFXTexHandle ImageAsset::getTexture(GFXTextureProfile* requestedProfile) load(); if (isNamedTarget()) - return getNamedTarget()->getTexture(); + { + GFXTexHandle tex = getNamedTarget()->getTexture(); + if(tex.isNull()) + { + AssetPtr fallbackAsset; + ImageAsset::getAssetById(smNamedTargetAssetFallback, &fallbackAsset); + return fallbackAsset->getTexture(); + } + else + { + return tex; + } + } if (mLoadedState == Ok) { @@ -460,7 +477,7 @@ GFXTexHandle ImageAsset::getTexture(GFXTextureProfile* requestedProfile) //If we don't have an existing map case to the requested format, we'll just create it and insert it in GFXTexHandle newTex; - newTex.set(mImageFile, requestedProfile, avar("%s() - mTextureObject (line %d)", __FUNCTION__, __LINE__)); + newTex.set(mImageFile, requestedProfile, avar("%s %s() - mTextureObject (line %d)", mImageFile, __FUNCTION__, __LINE__)); if (newTex) { mLoadedState = AssetErrCode::Ok; diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index d6a6aa1ab..02ec29c5b 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -113,6 +113,7 @@ public: }; static StringTableEntry smNoImageAssetFallback; + static StringTableEntry smNamedTargetAssetFallback; enum ImageAssetErrCode { diff --git a/Templates/BaseGame/game/core/rendering/Core_Rendering.tscript b/Templates/BaseGame/game/core/rendering/Core_Rendering.tscript index 1051ee621..8675e3168 100644 --- a/Templates/BaseGame/game/core/rendering/Core_Rendering.tscript +++ b/Templates/BaseGame/game/core/rendering/Core_Rendering.tscript @@ -9,6 +9,7 @@ function Core_Rendering::onCreate(%this) $Core::WetnessTexture = "core/rendering/images/wetMap.png"; $Core::NoImageAssetFallback = "Core_Rendering:missingTexture_image"; + $Core::NamedTargetFallback = "Core_Rendering:namedTarget_image"; $Core::NoMaterialAssetFallback = "Core_Rendering:noMaterial"; $Core::NoShapeAssetFallback = "Core_Rendering:noShape"; diff --git a/Templates/BaseGame/game/core/rendering/images/namedTarget.png b/Templates/BaseGame/game/core/rendering/images/namedTarget.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2656a5fffa2d15d5063f25f4ee67dc10fd1caa GIT binary patch literal 11733 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 literal 0 HcmV?d00001 diff --git a/Templates/BaseGame/game/core/rendering/images/namedTarget_image.asset.taml b/Templates/BaseGame/game/core/rendering/images/namedTarget_image.asset.taml new file mode 100644 index 000000000..7cd23509a --- /dev/null +++ b/Templates/BaseGame/game/core/rendering/images/namedTarget_image.asset.taml @@ -0,0 +1,3 @@ +