IRenderer.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Ryujinx.Common.Configuration;
  2. using Ryujinx.Graphics.Shader;
  3. using System;
  4. namespace Ryujinx.Graphics.GAL
  5. {
  6. public interface IRenderer : IDisposable
  7. {
  8. IPipeline Pipeline { get; }
  9. IWindow Window { get; }
  10. IShader CompileShader(ShaderProgram shader);
  11. BufferHandle CreateBuffer(int size);
  12. IProgram CreateProgram(IShader[] shaders, TransformFeedbackDescriptor[] transformFeedbackDescriptors);
  13. ISampler CreateSampler(SamplerCreateInfo info);
  14. ITexture CreateTexture(TextureCreateInfo info, float scale);
  15. void DeleteBuffer(BufferHandle buffer);
  16. byte[] GetBufferData(BufferHandle buffer, int offset, int size);
  17. Capabilities GetCapabilities();
  18. void SetBufferData(BufferHandle buffer, int offset, ReadOnlySpan<byte> data);
  19. void UpdateCounters();
  20. void PreFrame();
  21. ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler);
  22. void ResetCounter(CounterType type);
  23. void Initialize(GraphicsDebugLevel logLevel);
  24. }
  25. }