A game about forced loneliness, made by TACStudios
at master 2.3 kB view raw
1using System; 2using UnityEngine; 3 4namespace UnityEditor.ShaderGraph 5{ 6 [Serializable] 7 class TextureSamplerState 8 { 9 public enum FilterMode 10 { 11 Linear, 12 Point, 13 Trilinear 14 } 15 16 public enum WrapMode 17 { 18 Repeat, 19 Clamp, 20 Mirror, 21 MirrorOnce 22 } 23 24 public enum Anisotropic 25 { 26 None, 27 x2, 28 x4, 29 x8, 30 x16 31 } 32 33 [SerializeField] private FilterMode m_filter = FilterMode.Linear; 34 35 public FilterMode filter 36 { 37 get { return m_filter; } 38 set 39 { 40 if (m_filter == value) 41 return; 42 43 m_filter = value; 44 } 45 } 46 47 [SerializeField] private WrapMode m_wrap = WrapMode.Repeat; 48 49 public WrapMode wrap 50 { 51 get { return m_wrap; } 52 set 53 { 54 if (m_wrap == value) 55 return; 56 57 m_wrap = value; 58 } 59 } 60 61 [SerializeField] private Anisotropic m_anisotropic = Anisotropic.None; 62 63 public Anisotropic anisotropic 64 { 65 get { return m_anisotropic; } 66 set 67 { 68 if (m_anisotropic == value) 69 return; 70 71 m_anisotropic = value; 72 } 73 } 74 75 static string GetAnisoString(Anisotropic aniso) 76 { 77 switch (aniso) 78 { 79 default: 80 case Anisotropic.None: 81 return String.Empty; 82 case Anisotropic.x2: 83 return "_Aniso2"; 84 case Anisotropic.x4: 85 return "_Aniso4"; 86 case Anisotropic.x8: 87 return "_Aniso8"; 88 case Anisotropic.x16: 89 return "_Aniso16"; 90 } 91 } 92 93 public static string BuildSamplerStateName(FilterMode filter, WrapMode wrap, Anisotropic aniso) 94 { 95 var anisoMode = GetAnisoString(aniso); 96 return $"SamplerState_{filter}_{wrap}{anisoMode}"; 97 } 98 99 public string defaultPropertyName => BuildSamplerStateName(filter, wrap, anisotropic); 100 } 101}