using Ryujinx.Graphics.GAL;
using Ryujinx.Graphics.Gpu.Image;
using Ryujinx.Memory.Range;
namespace Ryujinx.Graphics.Gpu.Memory
{
///
/// A buffer binding to apply to a buffer texture array element.
///
readonly struct BufferTextureArrayBinding
{
///
/// Backend texture or image array.
///
public T Array { get; }
///
/// The buffer texture.
///
public ITexture Texture { get; }
///
/// Physical ranges of memory where the buffer texture data is located.
///
public MultiRange Range { get; }
///
/// The image or sampler binding info for the buffer texture.
///
public TextureBindingInfo BindingInfo { get; }
///
/// Index of the binding on the array.
///
public int Index { get; }
///
/// The image format for the binding.
///
public Format Format { get; }
///
/// Create a new buffer texture binding.
///
/// Buffer texture
/// Physical ranges of memory where the buffer texture data is located
/// Binding info
/// Index of the binding on the array
/// Binding format
public BufferTextureArrayBinding(
T array,
ITexture texture,
MultiRange range,
TextureBindingInfo bindingInfo,
int index,
Format format)
{
Array = array;
Texture = texture;
Range = range;
BindingInfo = bindingInfo;
Index = index;
Format = format;
}
}
}