From 43ddfd6953ef3d9031d262fd44dc872005263b83 Mon Sep 17 00:00:00 2001 From: ds5678 <49847914+ds5678@users.noreply.github.com> Date: Wed, 5 Nov 2025 23:35:31 -0800 Subject: [PATCH] MaxShaderModelVersion extension methods --- .../SerializedPassExtensions.cs | 5 +++++ .../SerializedProgramExtensions.cs | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Source/AssetRipper.SourceGenerated.Extensions/SerializedPassExtensions.cs b/Source/AssetRipper.SourceGenerated.Extensions/SerializedPassExtensions.cs index 6455911d0..704dc9828 100644 --- a/Source/AssetRipper.SourceGenerated.Extensions/SerializedPassExtensions.cs +++ b/Source/AssetRipper.SourceGenerated.Extensions/SerializedPassExtensions.cs @@ -44,4 +44,9 @@ public static class SerializedPassExtensions yield return pass.ProgRayTracing; } } + + public static int MaxShaderModelVersion(this ISerializedPass pass, UnityVersion version) + { + return pass.GetPrograms().Max(program => program.MaxShaderModelVersion(version)); + } } diff --git a/Source/AssetRipper.SourceGenerated.Extensions/SerializedProgramExtensions.cs b/Source/AssetRipper.SourceGenerated.Extensions/SerializedProgramExtensions.cs index c469305d7..6c0f6737a 100644 --- a/Source/AssetRipper.SourceGenerated.Extensions/SerializedProgramExtensions.cs +++ b/Source/AssetRipper.SourceGenerated.Extensions/SerializedProgramExtensions.cs @@ -1,4 +1,5 @@ -using AssetRipper.SourceGenerated.Subclasses.SerializedPlayerSubProgram; +using AssetRipper.SourceGenerated.Extensions.Enums.Shader.GpuProgramType; +using AssetRipper.SourceGenerated.Subclasses.SerializedPlayerSubProgram; using AssetRipper.SourceGenerated.Subclasses.SerializedProgram; namespace AssetRipper.SourceGenerated.Extensions; @@ -64,4 +65,15 @@ public static class SerializedProgramExtensions return []; } + public static int MaxShaderModelVersion(this ISerializedProgram program, UnityVersion version) + { + if (program.Has_PlayerSubPrograms()) + { + return program.GetPlayerSubPrograms().Max(p => p.GetProgramType(version).ToShaderModelVersion()); + } + else + { + return program.SubPrograms.Max(p => p.GetProgramType(version).ToShaderModelVersion()); + } + } }