A game about forced loneliness, made by TACStudios
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}