From 5ebaeb1d6f228c8422e42a03528907fc028c24f7 Mon Sep 17 00:00:00 2001 From: ds5678 <49847914+ds5678@users.noreply.github.com> Date: Tue, 4 Nov 2025 03:40:02 -0800 Subject: [PATCH] Shader extensions --- .../Shader/GpuProgramType/ShaderGpuProgramType.cs | 14 ++++++++++++++ .../SerializedShaderStateExtensions.cs | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Source/AssetRipper.SourceGenerated.Extensions/Enums/Shader/GpuProgramType/ShaderGpuProgramType.cs b/Source/AssetRipper.SourceGenerated.Extensions/Enums/Shader/GpuProgramType/ShaderGpuProgramType.cs index 8a3788236..3d2daa8de 100644 --- a/Source/AssetRipper.SourceGenerated.Extensions/Enums/Shader/GpuProgramType/ShaderGpuProgramType.cs +++ b/Source/AssetRipper.SourceGenerated.Extensions/Enums/Shader/GpuProgramType/ShaderGpuProgramType.cs @@ -343,4 +343,18 @@ public static class ShaderGpuProgramTypeExtensions throw new NotSupportedException($"Unsupported gpu program type {_this} [{platform}, {type}]"); } + + public static int ToShaderModelVersion(this ShaderGpuProgramType _this) + { + return _this switch + { + ShaderGpuProgramType.DX9VertexSM20 or ShaderGpuProgramType.DX9PixelSM20 => 20, + ShaderGpuProgramType.DX9VertexSM30 or ShaderGpuProgramType.DX9PixelSM30 => 30, + ShaderGpuProgramType.DX10Level9Vertex or ShaderGpuProgramType.DX10Level9Pixel => 40, + ShaderGpuProgramType.DX11VertexSM40 or ShaderGpuProgramType.DX11PixelSM40 or ShaderGpuProgramType.DX11GeometrySM40 => 40, + ShaderGpuProgramType.DX11VertexSM50 or ShaderGpuProgramType.DX11PixelSM50 or ShaderGpuProgramType.DX11GeometrySM50 or + ShaderGpuProgramType.DX11HullSM50 or ShaderGpuProgramType.DX11DomainSM50 => 50, + _ => default, + }; + } } diff --git a/Source/AssetRipper.SourceGenerated.Extensions/SerializedShaderStateExtensions.cs b/Source/AssetRipper.SourceGenerated.Extensions/SerializedShaderStateExtensions.cs index f1cb041e4..9ba04826e 100644 --- a/Source/AssetRipper.SourceGenerated.Extensions/SerializedShaderStateExtensions.cs +++ b/Source/AssetRipper.SourceGenerated.Extensions/SerializedShaderStateExtensions.cs @@ -10,6 +10,7 @@ public static class SerializedShaderStateExtensions public static ZTest ZTestValue(this ISerializedShaderState state) => (ZTest)state.ZTest.Val; public static ZWrite ZWriteValue(this ISerializedShaderState state) => (ZWrite)state.ZWrite.Val; public static CullMode CullingValue(this ISerializedShaderState state) => (CullMode)state.Culling.Val; - public static bool AlphaToMaskValue(this ISerializedShaderState state) => state.AlphaToMask.Val > 0; + public static bool AlphaToMaskValue(this ISerializedShaderState state) => state.AlphaToMask.Val is not 0; + public static bool ConservativeValue(this ISerializedShaderState state) => state.Conservative?.Val is not null and not 0; public static string LightingValue(this ISerializedShaderState state) => state.Lighting ? "On" : "Off"; }