ITexture.cs 947 B

123456789101112131415161718192021222324252627
  1. using Ryujinx.Common.Memory;
  2. using System;
  3. namespace Ryujinx.Graphics.GAL
  4. {
  5. public interface ITexture
  6. {
  7. int Width { get; }
  8. int Height { get; }
  9. float ScaleFactor { get; }
  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. ITexture CreateView(TextureCreateInfo info, int firstLayer, int firstLevel);
  14. ReadOnlySpan<byte> GetData();
  15. ReadOnlySpan<byte> GetData(int layer, int level);
  16. void SetData(SpanOrArray<byte> data);
  17. void SetData(SpanOrArray<byte> data, int layer, int level);
  18. void SetData(SpanOrArray<byte> data, int layer, int level, Rectangle<int> region);
  19. void SetStorage(BufferRange buffer);
  20. void Release();
  21. }
  22. }