MTLSamplerDescriptor.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using System;
  2. using static Veldrid.MetalBindings.ObjectiveCRuntime;
  3. namespace Veldrid.MetalBindings
  4. {
  5. public struct MTLSamplerDescriptor
  6. {
  7. private static readonly ObjCClass s_class = new ObjCClass(nameof(MTLSamplerDescriptor));
  8. public readonly IntPtr NativePtr;
  9. public static MTLSamplerDescriptor New() => s_class.AllocInit<MTLSamplerDescriptor>();
  10. public MTLSamplerAddressMode rAddressMode
  11. {
  12. get => (MTLSamplerAddressMode)uint_objc_msgSend(NativePtr, sel_rAddressMode);
  13. set => objc_msgSend(NativePtr, sel_setRAddressMode, (uint)value);
  14. }
  15. public MTLSamplerAddressMode sAddressMode
  16. {
  17. get => (MTLSamplerAddressMode)uint_objc_msgSend(NativePtr, sel_sAddressMode);
  18. set => objc_msgSend(NativePtr, sel_setSAddressMode, (uint)value);
  19. }
  20. public MTLSamplerAddressMode tAddressMode
  21. {
  22. get => (MTLSamplerAddressMode)uint_objc_msgSend(NativePtr, sel_tAddressMode);
  23. set => objc_msgSend(NativePtr, sel_setTAddressMode, (uint)value);
  24. }
  25. public MTLSamplerMinMagFilter minFilter
  26. {
  27. get => (MTLSamplerMinMagFilter)uint_objc_msgSend(NativePtr, sel_minFilter);
  28. set => objc_msgSend(NativePtr, sel_setMinFilter, (uint)value);
  29. }
  30. public MTLSamplerMinMagFilter magFilter
  31. {
  32. get => (MTLSamplerMinMagFilter)uint_objc_msgSend(NativePtr, sel_magFilter);
  33. set => objc_msgSend(NativePtr, sel_setMagFilter, (uint)value);
  34. }
  35. public MTLSamplerMipFilter mipFilter
  36. {
  37. get => (MTLSamplerMipFilter)uint_objc_msgSend(NativePtr, sel_mipFilter);
  38. set => objc_msgSend(NativePtr, sel_setMipFilter, (uint)value);
  39. }
  40. public float lodMinClamp
  41. {
  42. get => float_objc_msgSend(NativePtr, sel_lodMinClamp);
  43. set => objc_msgSend(NativePtr, sel_setLodMinClamp, value);
  44. }
  45. public float lodMaxClamp
  46. {
  47. get => float_objc_msgSend(NativePtr, sel_lodMaxClamp);
  48. set => objc_msgSend(NativePtr, sel_setLodMaxClamp, value);
  49. }
  50. public Bool8 lodAverage
  51. {
  52. get => bool8_objc_msgSend(NativePtr, sel_lodAverage);
  53. set => objc_msgSend(NativePtr, sel_setLodAverage, value);
  54. }
  55. public UIntPtr maxAnisotropy
  56. {
  57. get => UIntPtr_objc_msgSend(NativePtr, sel_maxAnisotropy);
  58. set => objc_msgSend(NativePtr, sel_setMaAnisotropy, value);
  59. }
  60. public MTLCompareFunction compareFunction
  61. {
  62. get => (MTLCompareFunction)uint_objc_msgSend(NativePtr, sel_compareFunction);
  63. set => objc_msgSend(NativePtr, sel_setCompareFunction, (uint)value);
  64. }
  65. public MTLSamplerBorderColor borderColor
  66. {
  67. get => (MTLSamplerBorderColor)uint_objc_msgSend(NativePtr, sel_borderColor);
  68. set => objc_msgSend(NativePtr, sel_setBorderColor, (uint)value);
  69. }
  70. private static readonly Selector sel_rAddressMode = "rAddressMode";
  71. private static readonly Selector sel_setRAddressMode = "setRAddressMode:";
  72. private static readonly Selector sel_sAddressMode = "sAddressMode";
  73. private static readonly Selector sel_setSAddressMode = "setSAddressMode:";
  74. private static readonly Selector sel_tAddressMode = "tAddressMode";
  75. private static readonly Selector sel_setTAddressMode = "setTAddressMode:";
  76. private static readonly Selector sel_minFilter = "minFilter";
  77. private static readonly Selector sel_setMinFilter = "setMinFilter:";
  78. private static readonly Selector sel_magFilter = "magFilter";
  79. private static readonly Selector sel_setMagFilter = "setMagFilter:";
  80. private static readonly Selector sel_mipFilter = "mipFilter";
  81. private static readonly Selector sel_setMipFilter = "setMipFilter:";
  82. private static readonly Selector sel_lodMinClamp = "lodMinClamp";
  83. private static readonly Selector sel_setLodMinClamp = "setLodMinClamp:";
  84. private static readonly Selector sel_lodMaxClamp = "lodMaxClamp";
  85. private static readonly Selector sel_setLodMaxClamp = "setLodMaxClamp:";
  86. private static readonly Selector sel_lodAverage = "lodAverage";
  87. private static readonly Selector sel_setLodAverage = "setLodAverage:";
  88. private static readonly Selector sel_maxAnisotropy = "maxAnisotropy";
  89. private static readonly Selector sel_setMaAnisotropy = "setMaxAnisotropy:";
  90. private static readonly Selector sel_compareFunction = "compareFunction";
  91. private static readonly Selector sel_setCompareFunction = "setCompareFunction:";
  92. private static readonly Selector sel_borderColor = "borderColor";
  93. private static readonly Selector sel_setBorderColor = "setBorderColor:";
  94. }
  95. }