mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-04-26 14:55:39 +00:00
Reimplements ability to utilize direct file load alongside ImageAsset fields when utilizing the ImageAsset macros
Updates Asset Browser generated preview images to not utilize full assets, but just the preview image files themselves
This commit is contained in:
parent
a43458677a
commit
0fa8b97f91
7 changed files with 56 additions and 130 deletions
|
|
@ -740,7 +740,7 @@ function AssetBrowser::buildAssetPreview( %this, %asset, %moduleName )
|
|||
%previewButton.assetType = %assetType;
|
||||
%previewButton.assetBrowser = %this;
|
||||
|
||||
%previewButton.bitmapAsset = %this.previewData.previewImage;
|
||||
%previewButton.setBitmap(%this.previewData.previewImage);
|
||||
|
||||
%previewButton.profile = "AssetBrowserPreview" @ %previewButton.assetType;
|
||||
%previewButton.tooltip = %this.previewData.tooltip;
|
||||
|
|
@ -789,21 +789,15 @@ function AssetBrowser::doRefresh(%this)
|
|||
|
||||
function AssetBrowser::populatePreviewImages(%this)
|
||||
{
|
||||
if (AssetPreviewArray.count()>0)
|
||||
echo("AssetBrowser::populatePreviewImages() - Previews to generate: " @ AssetPreviewArray.count());
|
||||
|
||||
for(%i=0; %i < AssetPreviewArray.count(); %i++)
|
||||
{
|
||||
%previewButton = AssetPreviewArray.getKey(%i);
|
||||
%assetType = %previewButton.assetType;
|
||||
|
||||
echo(" - Generating preview for asset: " @ %previewButton.moduleName @ ":" @ %previewButton.assetName);
|
||||
|
||||
%this.callAssetTypeFunc(%assetType, "generatePreviewImage", %previewButton.moduleName, %previewButton.assetName, %previewButton);
|
||||
|
||||
AssetPreviewArray.erase(%i);
|
||||
|
||||
echo(" - done, scheduling another pass");
|
||||
|
||||
%this.schedule(32, "populatePreviewImages");
|
||||
return;
|
||||
}
|
||||
|
|
@ -2764,12 +2758,13 @@ function getAssetPreviewImage(%asset)
|
|||
{
|
||||
%moduleName = AssetDatabase.getAssetModule(%asset).ModuleId;
|
||||
%assetName = AssetDatabase.getAssetName(%asset);
|
||||
%previewAssetName = "ToolsModule:" @ %moduleName @ "_" @ %assetName @ "_PreviewImage";
|
||||
if(AssetDatabase.isDeclaredAsset(%previewAssetName))
|
||||
|
||||
%previewPath = "tools/resources/previewCache/" @ %moduleName @ "/";
|
||||
%previewFilePath = %previewPath @ %assetName @ ".png";
|
||||
|
||||
if(isFile(%previewFilePath))
|
||||
{
|
||||
%previewDef = AssetDatabase.acquireAsset(%previewAssetName);
|
||||
%previewPath = %previewDef.getImagePath();
|
||||
AssetDatabase.releaseAsset(%previewAssetName);
|
||||
%previewPath = %previewFilePath;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,17 @@ function ImageAsset::buildBrowserElement(%this, %previewData)
|
|||
{
|
||||
//%module = %this.dirHandler.getModuleFromAddress(makeRelativePath(filePath(%assetDef.getImagePath())));
|
||||
|
||||
%previewData.previewImage = %this.isNamedTarget() ? "Core_Rendering:namedTarget_image" : "ToolsModule:genericAssetIcon_image";
|
||||
if( %this.isNamedTarget())
|
||||
%previewImage = "Core_Rendering:namedTarget_image";
|
||||
else
|
||||
{
|
||||
%previewImage = getAssetPreviewImage(%this.getAssetId());
|
||||
if(!isFile(%previewImage))
|
||||
%previewImage = "ToolsModule:genericAssetIcon_image";
|
||||
}
|
||||
|
||||
%previewData.previewImage = %previewImage;
|
||||
|
||||
%previewData.previewLoaded = %this.isNamedTarget() ? true : false;//this marks it for loading progressively later
|
||||
|
||||
%previewData.assetName = %this.assetName;
|
||||
|
|
@ -39,55 +49,20 @@ function ImageAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
|
|||
$CurrentAssetBrowser.dirHandler.createFolder(%previewPath);
|
||||
}
|
||||
|
||||
%previewFilePath = %previewPath @ %this.assetName @ "_Preview.png";
|
||||
%previewFilePath = %previewPath @ %this.assetName @ ".png";
|
||||
if(!isFile(%previewFilePath) || (compareFileTimes(%this.getImagePath(), %previewFilePath) == 1))
|
||||
{
|
||||
%generatePreview = true;
|
||||
}
|
||||
|
||||
%previewAssetName = %previewButton.moduleName @ "_" @ %this.assetName @ "_PreviewImage";
|
||||
|
||||
|
||||
if(%generatePreview || %forceRegenerate)
|
||||
{
|
||||
%success = saveScaledImage(%this.getImagePath(), %previewFilePath, EditorSettings.value("Assets/Browser/PreviewImageSize"));
|
||||
|
||||
if(%success)
|
||||
{
|
||||
if(!AssetDatabase.isDeclaredAsset("ToolsModule:" @ %previewAssetName))
|
||||
{
|
||||
%previewAsset = new ImageAsset()
|
||||
{
|
||||
assetName = %previewAssetName;
|
||||
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);
|
||||
|
||||
if(!%success)
|
||||
{
|
||||
return false; //failed to register the preview image for some reason?
|
||||
}
|
||||
}
|
||||
|
||||
%previewButton.bitmapAsset = %previewAssetName;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//just map the existing one then
|
||||
if(AssetDatabase.isDeclaredAsset("ToolsModule:" @ %previewAssetName))
|
||||
{
|
||||
%previewButton.bitmapAsset = "ToolsModule:" @ %previewAssetName;
|
||||
return true;
|
||||
}
|
||||
%previewButton.setBitmap(%previewFilePath);
|
||||
|
||||
return %success;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -64,7 +64,9 @@ function AssetBrowser::renameMaterialAsset(%this, %assetDef, %newAssetName)
|
|||
|
||||
function MaterialAsset::buildBrowserElement(%this, %previewData)
|
||||
{
|
||||
%previewData.previewImage = "ToolsModule:genericAssetIcon_image";
|
||||
%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;
|
||||
|
|
@ -108,7 +110,7 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
|
|||
|
||||
%generatePreview = false;
|
||||
|
||||
%previewFilePath = %previewPath @ %this.assetName @ "_Preview.dds";
|
||||
%previewFilePath = %previewPath @ %this.assetName @ ".png";
|
||||
if(!isFile(%previewFilePath))
|
||||
{
|
||||
%generatePreview = true;
|
||||
|
|
@ -123,8 +125,6 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
|
|||
}
|
||||
}
|
||||
|
||||
%previewAssetName = %module.moduleId @ "_" @ %this.assetName @ "_PreviewImage";
|
||||
|
||||
if(%generatePreview || %forceRegenerate)
|
||||
{
|
||||
if(isObject(%this.materialDefinitionName))
|
||||
|
|
@ -142,39 +142,13 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
|
|||
pathCopy(%generatedFilePath, %previewFilePath, false);
|
||||
fileDelete(%generatedFilePath);
|
||||
|
||||
if(!AssetDatabase.isDeclaredAsset("ToolsModule:" @ %previewAssetName))
|
||||
if(isFile(%previewFilePath))
|
||||
{
|
||||
%previewAsset = new ImageAsset()
|
||||
{
|
||||
assetName = %previewAssetName;
|
||||
versionId = 1;
|
||||
imageFile = makeFullPath(%previewFilePath);
|
||||
};
|
||||
|
||||
%previewImgAssetPath = %previewPath @ %previewAsset.assetName @ ".asset.taml";
|
||||
|
||||
%assetImportSuccessful = TAMLWrite(%previewAsset, %previewImgAssetPath);
|
||||
%toolsModuleDef = ModuleDatabase.findModule("ToolsModule",1);
|
||||
|
||||
%success = AssetDatabase.addDeclaredAsset(%toolsModuleDef, %previewImgAssetPath);
|
||||
|
||||
if(!%success)
|
||||
{
|
||||
return false; //failed to register the preview image for some reason?
|
||||
}
|
||||
%previewButton.setBitmap(%previewFilePath);
|
||||
return true;
|
||||
}
|
||||
|
||||
%previewButton.bitmapAsset = "ToolsModule:" @ %previewAssetName;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//just map the existing one then
|
||||
if(AssetDatabase.isDeclaredAsset("ToolsModule:" @ %previewAssetName))
|
||||
{
|
||||
%previewButton.bitmapAsset = "ToolsModule:" @ %previewAssetName;
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 @ "_Preview.dds";
|
||||
%previewPath = "tools/resources/previewCache/" @ %module.moduleId @ "/" @ %this.assetName @ ".png";
|
||||
|
||||
if(isFile(%previewPath))
|
||||
{
|
||||
|
|
@ -41,7 +41,9 @@ function ShapeAsset::onDelete(%this)
|
|||
|
||||
function ShapeAsset::buildBrowserElement(%this, %previewData)
|
||||
{
|
||||
%previewData.previewImage = "ToolsModule:genericAssetIcon_image";
|
||||
%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;
|
||||
|
|
@ -88,18 +90,15 @@ function ShapeAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
|
|||
|
||||
%generatePreview = false;
|
||||
|
||||
%previewFilePath = %previewPath @ %this.assetName @ "_Preview.dds";
|
||||
%previewFilePath = %previewPath @ %this.assetName @ ".png";
|
||||
if(!isFile(%previewFilePath) || (compareFileTimes(%this.getShapePath(), %previewFilePath) == 1))
|
||||
{
|
||||
%generatePreview = true;
|
||||
}
|
||||
|
||||
%previewAssetName = %module.moduleId @ "_" @ %this.assetName @ "_PreviewImage";
|
||||
|
||||
if(%generatePreview || %forceRegenerate)
|
||||
{
|
||||
//real fast, we'll be 100% sure that the image resource we need is loaded
|
||||
|
||||
%matSlot0AssetId = %this.materialSlot0;
|
||||
if(AssetDatabase.isDeclaredAsset(%matSlot0AssetId))
|
||||
{
|
||||
|
|
@ -115,39 +114,13 @@ function ShapeAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
|
|||
pathCopy(%filePath, %previewFilePath, false);
|
||||
fileDelete(%filePath); //cleanup
|
||||
|
||||
if(!AssetDatabase.isDeclaredAsset("ToolsModule:" @ %previewAssetName))
|
||||
if(isFile(%previewFilePath))
|
||||
{
|
||||
%previewAsset = new ImageAsset()
|
||||
{
|
||||
assetName = %previewAssetName;
|
||||
versionId = 1;
|
||||
imageFile = makeFullPath(%previewFilePath);
|
||||
};
|
||||
|
||||
%previewImgAssetPath = %previewPath @ %previewAsset.assetName @ ".asset.taml";
|
||||
|
||||
%assetImportSuccessful = TAMLWrite(%previewAsset, %previewImgAssetPath);
|
||||
%toolsModuleDef = ModuleDatabase.findModule("ToolsModule",1);
|
||||
|
||||
%success = AssetDatabase.addDeclaredAsset(%toolsModuleDef, %previewImgAssetPath);
|
||||
|
||||
if(!%success)
|
||||
{
|
||||
return false; //failed to register the preview image for some reason?
|
||||
}
|
||||
}
|
||||
|
||||
%previewButton.bitmapAsset = "ToolsModule:" @ %previewAssetName;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//just map the existing one then
|
||||
if(AssetDatabase.isDeclaredAsset("ToolsModule:" @ %previewAssetName))
|
||||
{
|
||||
%previewButton.bitmapAsset = "ToolsModule:" @ %previewAssetName;
|
||||
%previewButton.setBitmap(%previewFilePath);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue