@ -241,8 +241,7 @@ namespace ImageProcessingAtom
// Reload preset if it was changed
ImageProcessingAtom : : BuilderSettingManager : : Instance ( ) - > ReloadPreset ( presetName ) ;
AZStd : : string_view filePath ;
auto presetSettings = BuilderSettingManager : : Instance ( ) - > GetPreset ( presetName , /*default platform*/ " " , & filePath ) ;
auto presetSettings = BuilderSettingManager : : Instance ( ) - > GetPreset ( presetName , /*default platform*/ " " ) ;
AssetBuilderSDK : : SourceFileDependency sourceFileDependency ;
sourceFileDependency . m_sourceDependencyType = AssetBuilderSDK : : SourceFileDependency : : SourceFileDependencyType : : Absolute ;
@ -274,6 +273,32 @@ namespace ImageProcessingAtom
}
}
void ReloadPresetIfNeeded ( PresetName presetName )
{
// Reload preset if it was changed
ImageProcessingAtom : : BuilderSettingManager : : Instance ( ) - > ReloadPreset ( presetName ) ;
auto presetSettings = BuilderSettingManager : : Instance ( ) - > GetPreset ( presetName , /*default platform*/ " " ) ;
if ( presetSettings )
{
// handle special case here
// Cubemap setting may reference some other presets
if ( presetSettings - > m_cubemapSetting )
{
if ( presetSettings - > m_cubemapSetting - > m_generateIBLDiffuse & & ! presetSettings - > m_cubemapSetting - > m_iblDiffusePreset . IsEmpty ( ) )
{
ImageProcessingAtom : : BuilderSettingManager : : Instance ( ) - > ReloadPreset ( presetSettings - > m_cubemapSetting - > m_iblDiffusePreset ) ;
}
if ( presetSettings - > m_cubemapSetting - > m_generateIBLSpecular & & ! presetSettings - > m_cubemapSetting - > m_iblSpecularPreset . IsEmpty ( ) )
{
ImageProcessingAtom : : BuilderSettingManager : : Instance ( ) - > ReloadPreset ( presetSettings - > m_cubemapSetting - > m_iblSpecularPreset ) ;
}
}
}
}
// this happens early on in the file scanning pass
// this function should consistently always create the same jobs, and should do no checking whether the job is up to date or not - just be consistent.
void ImageBuilderWorker : : CreateJobs ( const AssetBuilderSDK : : CreateJobsRequest & request , AssetBuilderSDK : : CreateJobsResponse & response )
@ -336,6 +361,11 @@ namespace ImageProcessingAtom
// Do conversion and get exported file's path
if ( needConversion )
{
// Handles preset changes
auto presetName = GetImagePreset ( request . m_fullPath ) ;
ReloadPresetIfNeeded ( presetName ) ;
AZ_TracePrintf ( AssetBuilderSDK : : InfoWindow , " Performing image conversion: %s \n " , request . m_fullPath . c_str ( ) ) ;
ImageConvertProcess * process = CreateImageConvertProcess ( request . m_fullPath , request . m_tempDirPath ,
request . m_jobDescription . GetPlatformIdentifier ( ) , response . m_outputProducts ) ;