ryujinx/Ryujinx.Graphics.GAL/IRenderer.cs

41 lines
1.1 KiB
C#
Raw Normal View History

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