IRenderer.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. void BackgroundContextAction(Action action);
  11. IShader CompileShader(ShaderProgram shader);
  12. BufferHandle CreateBuffer(int size);
  13. IProgram CreateProgram(IShader[] shaders, TransformFeedbackDescriptor[] transformFeedbackDescriptors);
  14. ISampler CreateSampler(SamplerCreateInfo info);
  15. ITexture CreateTexture(TextureCreateInfo info, float scale);
  16. void DeleteBuffer(BufferHandle buffer);
  17. byte[] GetBufferData(BufferHandle buffer, int offset, int size);
  18. Capabilities GetCapabilities();
  19. void SetBufferData(BufferHandle buffer, int offset, ReadOnlySpan<byte> data);
  20. void UpdateCounters();
  21. void PreFrame();
  22. ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler);
  23. void ResetCounter(CounterType type);
  24. void Initialize(GraphicsDebugLevel logLevel);
  25. }
  26. }