using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
namespace UnityEditor.Rendering
{
class MaterialUpgraderEditMenus
{
private static readonly List<MaterialUpgrader> s_Empty = new List<MaterialUpgrader>();
public static List<MaterialUpgrader> GetCurrentSRPUpgraders()
{
if (!GraphicsSettings.isScriptableRenderPipelineEnabled)
return s_Empty;
return MaterialUpgrader.FetchAllUpgradersForPipeline(GraphicsSettings.currentRenderPipelineAssetType);
}
[MenuItem("Edit/Rendering/Materials/Convert All Built-In Materials to Current SRP", true)]
internal static bool UpgradeMaterialsProjectValidate()
{
return GraphicsSettings.isScriptableRenderPipelineEnabled;
}
[MenuItem("Edit/Rendering/Materials/Convert All Built-In Materials to Current SRP", priority = CoreUtils.Priorities.editMenuPriority + 1)]
internal static void UpgradeMaterialsProject()
{
MaterialUpgrader.UpgradeProjectFolder(GetCurrentSRPUpgraders(), "Upgrade to SRP Material");
}
[MenuItem("Edit/Rendering/Materials/Convert Selected Built-In Materials to Current SRP", true)]
internal static bool UpgradeMaterialsSelectionValidate()
{
if (Selection.objects.Length == 0 || !GraphicsSettings.isScriptableRenderPipelineEnabled)
return false;
foreach (var obj in Selection.objects)
{
if (obj is not Material)
return false;
}
return true;
}
[MenuItem("Edit/Rendering/Materials/Convert Selected Built-In Materials to Current SRP", priority = CoreUtils.Priorities.editMenuPriority + 2)]
internal static void UpgradeMaterialsSelection()
{
MaterialUpgrader.UpgradeSelection(GetCurrentSRPUpgraders(), "Upgrade to SRP Material");
}
}
}