You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

64 lines
2.8 KiB

using NUnit.Framework;
using UnityEngine.Rendering.HighDefinition;
namespace UnityEditor.Rendering.HighDefinition.Test.GlobalSettingsMigration
{
class RenderingPathFrameSettingsMigrationTests : RenderPipelineGraphicsSettingsMigrationTestBase<RenderingPathFrameSettings>
{
class TestCase : IRenderPipelineGraphicsSettingsTestCase<RenderingPathFrameSettings>
{
private FrameSettingsRenderType m_Type;
public TestCase(FrameSettingsRenderType type)
{
m_Type = type;
}
public void SetUp(HDRenderPipelineGlobalSettings globalSettingsAsset, HDRenderPipelineAsset renderPipelineAsset)
{
#pragma warning disable 618 // Type or member is obsolete
ref var obsoleteCameraFrameSettings = ref globalSettingsAsset.m_ObsoleteRenderingPath.GetDefaultFrameSettings(m_Type);
obsoleteCameraFrameSettings.sssCustomSampleBudget = int.MinValue;
obsoleteCameraFrameSettings.SetEnabled(FrameSettingsField.ClearGBuffers, true);
#pragma warning restore 618
globalSettingsAsset.m_Version = HDRenderPipelineGlobalSettings.Version.RenderingPathFrameSettings;
}
public bool IsMigrationCorrect(RenderingPathFrameSettings settings, out string message)
{
message = string.Empty;
bool isMigrationCorrect = true;
var frameSettings = settings.GetDefaultFrameSettings(m_Type);
isMigrationCorrect &= int.MinValue == frameSettings.sssCustomSampleBudget;
isMigrationCorrect &= frameSettings.IsEnabled(FrameSettingsField.ClearGBuffers);
if (!isMigrationCorrect)
message = $"{m_Type} has correctly been migrated";
return isMigrationCorrect;
}
}
static TestCaseData[] s_TestCaseDatas =
{
new TestCaseData(new TestCase(FrameSettingsRenderType.Camera))
.SetName("When performing a migration of FrameSettings for Camera, settings are being transferred correctly"),
new TestCaseData(new TestCase(FrameSettingsRenderType.CustomOrBakedReflection))
.SetName("When performing a migration of FrameSettings for Custom Or Baked Reflection, settings are being transferred correctly"),
new TestCaseData(new TestCase(FrameSettingsRenderType.RealtimeReflection))
.SetName("When performing a migration of FrameSettings for Realtime Reflection, settings are being transferred correctly")
};
[Test, TestCaseSource(nameof(s_TestCaseDatas))]
public void PerformMigration(IRenderPipelineGraphicsSettingsTestCase<RenderingPathFrameSettings> testCase)
{
base.DoTest(testCase);
}
}
}