/ src / Ryujinx.Graphics.GAL / ITexture.cs
ITexture.cs
 1  using Ryujinx.Common.Memory;
 2  
 3  namespace Ryujinx.Graphics.GAL
 4  {
 5      public interface ITexture
 6      {
 7          int Width { get; }
 8          int Height { get; }
 9  
10          void CopyTo(ITexture destination, int firstLayer, int firstLevel);
11          void CopyTo(ITexture destination, int srcLayer, int dstLayer, int srcLevel, int dstLevel);
12          void CopyTo(ITexture destination, Extents2D srcRegion, Extents2D dstRegion, bool linearFilter);
13          void CopyTo(BufferRange range, int layer, int level, int stride);
14  
15          ITexture CreateView(TextureCreateInfo info, int firstLayer, int firstLevel);
16  
17          PinnedSpan<byte> GetData();
18          PinnedSpan<byte> GetData(int layer, int level);
19  
20          /// <summary>
21          /// Sets the texture data. The data passed as a <see cref="MemoryOwner{Byte}" /> will be disposed when
22          /// the operation completes.
23          /// </summary>
24          /// <param name="data">Texture data bytes</param>
25          void SetData(MemoryOwner<byte> data);
26  
27          /// <summary>
28          /// Sets the texture data. The data passed as a <see cref="MemoryOwner{Byte}" /> will be disposed when
29          /// the operation completes.
30          /// </summary>
31          /// <param name="data">Texture data bytes</param>
32          /// <param name="layer">Target layer</param>
33          /// <param name="level">Target level</param>
34          void SetData(MemoryOwner<byte> data, int layer, int level);
35  
36          /// <summary>
37          /// Sets the texture data. The data passed as a <see cref="MemoryOwner{Byte}" /> will be disposed when
38          /// the operation completes.
39          /// </summary>
40          /// <param name="data">Texture data bytes</param>
41          /// <param name="layer">Target layer</param>
42          /// <param name="level">Target level</param>
43          /// <param name="region">Target sub-region of the texture to update</param>
44          void SetData(MemoryOwner<byte> data, int layer, int level, Rectangle<int> region);
45  
46          void SetStorage(BufferRange buffer);
47  
48          void Release();
49      }
50  }