using Ryujinx.Graphics.GAL; using Ryujinx.Graphics.Gpu.Image; using Ryujinx.Graphics.Shader; namespace Ryujinx.Graphics.Gpu.Memory { /// /// A buffer binding to apply to a buffer texture. /// readonly struct BufferTextureBinding { /// /// Shader stage accessing the texture. /// public ShaderStage Stage { get; } /// /// The buffer texture. /// public ITexture Texture { get; } /// /// The base address of the buffer binding. /// public ulong Address { get; } /// /// The size of the buffer binding in bytes. /// public ulong Size { get; } /// /// The image or sampler binding info for the buffer texture. /// public TextureBindingInfo BindingInfo { get; } /// /// The image format for the binding. /// public Format Format { get; } /// /// Whether the binding is for an image or a sampler. /// public bool IsImage { get; } /// /// Create a new buffer texture binding. /// /// Shader stage accessing the texture /// Buffer texture /// Base address /// Size in bytes /// Binding info /// Binding format /// Whether the binding is for an image or a sampler public BufferTextureBinding( ShaderStage stage, ITexture texture, ulong address, ulong size, TextureBindingInfo bindingInfo, Format format, bool isImage) { Stage = stage; Texture = texture; Address = address; Size = size; BindingInfo = bindingInfo; Format = format; IsImage = isImage; } } }