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