/ src / Ryujinx.Graphics.Gpu / Memory / BufferTextureArrayBinding.cs
BufferTextureArrayBinding.cs
 1  using Ryujinx.Graphics.GAL;
 2  using Ryujinx.Graphics.Gpu.Image;
 3  using Ryujinx.Memory.Range;
 4  
 5  namespace Ryujinx.Graphics.Gpu.Memory
 6  {
 7      /// <summary>
 8      /// A buffer binding to apply to a buffer texture array element.
 9      /// </summary>
10      readonly struct BufferTextureArrayBinding<T>
11      {
12          /// <summary>
13          /// Backend texture or image array.
14          /// </summary>
15          public T Array { get; }
16  
17          /// <summary>
18          /// The buffer texture.
19          /// </summary>
20          public ITexture Texture { get; }
21  
22          /// <summary>
23          /// Physical ranges of memory where the buffer texture data is located.
24          /// </summary>
25          public MultiRange Range { get; }
26  
27          /// <summary>
28          /// The image or sampler binding info for the buffer texture.
29          /// </summary>
30          public TextureBindingInfo BindingInfo { get; }
31  
32          /// <summary>
33          /// Index of the binding on the array.
34          /// </summary>
35          public int Index { get; }
36  
37          /// <summary>
38          /// Create a new buffer texture binding.
39          /// </summary>
40          /// <param name="array">Array</param>
41          /// <param name="texture">Buffer texture</param>
42          /// <param name="range">Physical ranges of memory where the buffer texture data is located</param>
43          /// <param name="bindingInfo">Binding info</param>
44          /// <param name="index">Index of the binding on the array</param>
45          public BufferTextureArrayBinding(
46              T array,
47              ITexture texture,
48              MultiRange range,
49              TextureBindingInfo bindingInfo,
50              int index)
51          {
52              Array = array;
53              Texture = texture;
54              Range = range;
55              BindingInfo = bindingInfo;
56              Index = index;
57          }
58      }
59  }