IRenderer.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler);
  21. void ResetCounter(CounterType type);
  22. void Initialize(GraphicsDebugLevel logLevel);
  23. }
  24. }