using Ryujinx.Graphics.GAL; using Ryujinx.Graphics.Gpu.Image; using Ryujinx.Graphics.Shader; using Ryujinx.Memory.Range; 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; } /// /// 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; } /// /// 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 /// Physical ranges of memory where the buffer texture data is located /// Binding info /// Whether the binding is for an image or a sampler public BufferTextureBinding( ShaderStage stage, ITexture texture, MultiRange range, TextureBindingInfo bindingInfo, bool isImage) { Stage = stage; Texture = texture; Range = range; BindingInfo = bindingInfo; IsImage = isImage; } } }