No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TextureSamplerState.cs 2.3KB

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