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 }