SamplerCreateInfo.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. namespace Ryujinx.Graphics.GAL
  2. {
  3. public readonly struct SamplerCreateInfo
  4. {
  5. public MinFilter MinFilter { get; }
  6. public MagFilter MagFilter { get; }
  7. public bool SeamlessCubemap { get; }
  8. public AddressMode AddressU { get; }
  9. public AddressMode AddressV { get; }
  10. public AddressMode AddressP { get; }
  11. public CompareMode CompareMode { get; }
  12. public CompareOp CompareOp { get; }
  13. public ColorF BorderColor { get; }
  14. public float MinLod { get; }
  15. public float MaxLod { get; }
  16. public float MipLodBias { get; }
  17. public float MaxAnisotropy { get; }
  18. public SamplerCreateInfo(
  19. MinFilter minFilter,
  20. MagFilter magFilter,
  21. bool seamlessCubemap,
  22. AddressMode addressU,
  23. AddressMode addressV,
  24. AddressMode addressP,
  25. CompareMode compareMode,
  26. CompareOp compareOp,
  27. ColorF borderColor,
  28. float minLod,
  29. float maxLod,
  30. float mipLodBias,
  31. float maxAnisotropy)
  32. {
  33. MinFilter = minFilter;
  34. MagFilter = magFilter;
  35. SeamlessCubemap = seamlessCubemap;
  36. AddressU = addressU;
  37. AddressV = addressV;
  38. AddressP = addressP;
  39. CompareMode = compareMode;
  40. CompareOp = compareOp;
  41. BorderColor = borderColor;
  42. MinLod = minLod;
  43. MaxLod = maxLod;
  44. MipLodBias = mipLodBias;
  45. MaxAnisotropy = maxAnisotropy;
  46. }
  47. public static SamplerCreateInfo Create(MinFilter minFilter, MagFilter magFilter)
  48. {
  49. return new SamplerCreateInfo(
  50. minFilter,
  51. magFilter,
  52. false,
  53. AddressMode.ClampToEdge,
  54. AddressMode.ClampToEdge,
  55. AddressMode.ClampToEdge,
  56. CompareMode.None,
  57. CompareOp.Always,
  58. new ColorF(0f, 0f, 0f, 0f),
  59. 0f,
  60. 0f,
  61. 0f,
  62. 1f);
  63. }
  64. }
  65. }