using AssetRipper.SourceGenerated.Classes.ClassID_30;
using AssetRipper.SourceGenerated.Enums;
namespace AssetRipper.SourceGenerated.Extensions
{
public static class GraphicsSettingsExtensions
{
public enum LightmapStrippingMode
{
Automatic = 0,
Custom = 1,
}
public enum InstancingStrippingVariant
{
StripUnused = 0,
StripAll = 1,
KeepAll = 2,
}
public static void ConvertToEditorFormat(this IGraphicsSettings settings)
{
settings.DefaultMobileRenderingPath_C30 = (int)RenderingPath.Forward;
settings.DefaultRenderingPath_C30 = (int)RenderingPath.Forward;
settings.FogKeepExp_C30 = true;
settings.FogKeepExp2_C30 = true;
settings.FogKeepLinear_C30 = true;
settings.FogStripping_C30 = (int)LightmapStrippingMode.Automatic;
settings.InstancingStripping_C30 = (int)InstancingStrippingVariant.StripUnused;
settings.LightmapKeepDirCombined_C30 = true;
settings.LightmapKeepDirSeparate_C30 = true;
settings.LightmapKeepDynamicDirCombined_C30 = true;
settings.LightmapKeepDynamicDirSeparate_C30 = true;
settings.LightmapKeepDynamicPlain_C30 = true;
settings.LightmapKeepDynamic_C30 = true;
settings.LightmapKeepPlain_C30 = true;
settings.LightmapKeepShadowMask_C30 = true;
settings.LightmapKeepSubtractive_C30 = true;
settings.LightmapStripping_C30 = (int)LightmapStrippingMode.Automatic;
if (settings.Has_TierSettings_C30())
{
settings.TierSettings_C30.Clear();//protection against converting GraphicsSettings multiple times
if (settings.Has_TierSettings_Tier1_C30() && settings.Has_TierSettings_Tier2_C30() && settings.Has_TierSettings_Tier3_C30())
{
settings.TierSettings_C30.Capacity = 3;
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.TierSettings_Tier1_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier1);
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.TierSettings_Tier2_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier2);
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.TierSettings_Tier3_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier3);
}
else if (settings.Has_ShaderSettings_Tier1_C30() && settings.Has_ShaderSettings_Tier2_C30() && settings.Has_ShaderSettings_Tier3_C30())
{
settings.TierSettings_C30.Capacity = 3;
settings.ShaderSettings_Tier1_C30.ConvertToEditorFormat();
settings.ShaderSettings_Tier2_C30.ConvertToEditorFormat();
settings.ShaderSettings_Tier2_C30.ConvertToEditorFormat();
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.ShaderSettings_Tier1_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier1);
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.ShaderSettings_Tier2_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier2);
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.ShaderSettings_Tier3_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier3);
}
else if (settings.Has_ShaderSettings_C30())
{
settings.TierSettings_C30.Capacity = 1;
settings.ShaderSettings_C30.ConvertToEditorFormat();
settings.TierSettings_C30.AddNew().ConvertToEditorFormat(settings.ShaderSettings_C30, settings.GetBuildTargetGroup(), GraphicsTier.Tier1);
}
}
}
private static BuildTargetGroup GetBuildTargetGroup(this IGraphicsSettings settings)
{
return settings.Collection.Platform.PlatformToBuildGroup();
}
public static TransparencySortMode GetTransparencySortMode(this IGraphicsSettings settings)
{
return (TransparencySortMode)settings.TransparencySortMode_C30;
}
///
/// Default:
///
public static RenderingPath GetDefaultRenderingPath(this IGraphicsSettings settings)
{
return settings.Has_DefaultRenderingPath_C30()
? (RenderingPath)settings.DefaultRenderingPath_C30
: RenderingPath.Forward;
}
///
/// Default:
///
public static RenderingPath GetDefaultMobileRenderingPath(this IGraphicsSettings settings)
{
return settings.Has_DefaultMobileRenderingPath_C30()
? (RenderingPath)settings.DefaultMobileRenderingPath_C30
: RenderingPath.Forward;
}
///
/// Default:
///
public static LightmapStrippingMode GetLightmapStripping(this IGraphicsSettings settings)
{
return (LightmapStrippingMode)settings.LightmapStripping_C30; //default is 0, so no need to check if present
}
///
/// Default:
///
public static LightmapStrippingMode GetFogStripping(this IGraphicsSettings settings)
{
return (LightmapStrippingMode)settings.FogStripping_C30; //default is 0, so no need to check if present
}
///
/// Default:
///
public static InstancingStrippingVariant GetInstancingStripping(this IGraphicsSettings settings)
{
return (InstancingStrippingVariant)settings.InstancingStripping_C30; //default is 0, so no need to check if present
}
}
}