Ryujinx/Ryujinx.Graphics.GAL/IRenderer.cs

41 lines
1.1 KiB
C#
Raw Normal View History

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