Ryujinx/Ryujinx.Graphics.GAL/IRenderer.cs

38 lines
920 B
C#
Raw Normal View History

2019-10-12 23:02:07 -07:00
using Ryujinx.Graphics.Shader;
2019-12-31 14:09:49 -08:00
using System;
2019-10-12 23:02:07 -07:00
namespace Ryujinx.Graphics.GAL
{
2019-12-31 14:09:49 -08:00
public interface IRenderer : IDisposable
2019-10-12 23:02:07 -07:00
{
IPipeline Pipeline { get; }
2019-10-12 23:02:07 -07:00
IWindow Window { get; }
IShader CompileShader(ShaderProgram shader);
BufferHandle CreateBuffer(int size);
2019-10-12 23:02:07 -07:00
IProgram CreateProgram(IShader[] shaders);
ISampler CreateSampler(SamplerCreateInfo info);
ITexture CreateTexture(TextureCreateInfo info);
void DeleteBuffer(BufferHandle buffer);
byte[] GetBufferData(BufferHandle buffer, int offset, int size);
2019-10-12 23:02:07 -07:00
Capabilities GetCapabilities();
void SetBufferData(BufferHandle buffer, int offset, ReadOnlySpan<byte> data);
void UpdateCounters();
2019-10-12 23:02:07 -07:00
ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler);
2019-10-12 23:02:07 -07:00
void ResetCounter(CounterType type);
void Initialize();
2019-10-12 23:02:07 -07:00
}
}