123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using System;
- using UnityEngine;
-
- namespace UnityEditor.ShaderGraph
- {
- [Serializable]
- class TextureSamplerState
- {
- public enum FilterMode
- {
- Linear,
- Point,
- Trilinear
- }
-
- public enum WrapMode
- {
- Repeat,
- Clamp,
- Mirror,
- MirrorOnce
- }
-
- public enum Anisotropic
- {
- None,
- x2,
- x4,
- x8,
- x16
- }
-
- [SerializeField] private FilterMode m_filter = FilterMode.Linear;
-
- public FilterMode filter
- {
- get { return m_filter; }
- set
- {
- if (m_filter == value)
- return;
-
- m_filter = value;
- }
- }
-
- [SerializeField] private WrapMode m_wrap = WrapMode.Repeat;
-
- public WrapMode wrap
- {
- get { return m_wrap; }
- set
- {
- if (m_wrap == value)
- return;
-
- m_wrap = value;
- }
- }
-
- [SerializeField] private Anisotropic m_anisotropic = Anisotropic.None;
-
- public Anisotropic anisotropic
- {
- get { return m_anisotropic; }
- set
- {
- if (m_anisotropic == value)
- return;
-
- m_anisotropic = value;
- }
- }
-
- static string GetAnisoString(Anisotropic aniso)
- {
- switch (aniso)
- {
- default:
- case Anisotropic.None:
- return String.Empty;
- case Anisotropic.x2:
- return "_Aniso2";
- case Anisotropic.x4:
- return "_Aniso4";
- case Anisotropic.x8:
- return "_Aniso8";
- case Anisotropic.x16:
- return "_Aniso16";
- }
- }
-
- public static string BuildSamplerStateName(FilterMode filter, WrapMode wrap, Anisotropic aniso)
- {
- var anisoMode = GetAnisoString(aniso);
- return $"SamplerState_{filter}_{wrap}{anisoMode}";
- }
-
- public string defaultPropertyName => BuildSamplerStateName(filter, wrap, anisotropic);
- }
- }
|