diff options
| author | TSR Berry <20988865+TSRBerry@users.noreply.github.com> | 2023-04-08 01:22:00 +0200 |
|---|---|---|
| committer | Mary <thog@protonmail.com> | 2023-04-27 23:51:14 +0200 |
| commit | cee712105850ac3385cd0091a923438167433f9f (patch) | |
| tree | 4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /src/Ryujinx.Graphics.GAL/IRenderer.cs | |
| parent | cd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff) | |
Move solution and projects to src
Diffstat (limited to 'src/Ryujinx.Graphics.GAL/IRenderer.cs')
| -rw-r--r-- | src/Ryujinx.Graphics.GAL/IRenderer.cs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.GAL/IRenderer.cs b/src/Ryujinx.Graphics.GAL/IRenderer.cs new file mode 100644 index 00000000..2af7b5db --- /dev/null +++ b/src/Ryujinx.Graphics.GAL/IRenderer.cs @@ -0,0 +1,65 @@ +using Ryujinx.Common.Configuration; +using System; + +namespace Ryujinx.Graphics.GAL +{ + public interface IRenderer : IDisposable + { + event EventHandler<ScreenCaptureImageInfo> ScreenCaptured; + + bool PreferThreading { get; } + + IPipeline Pipeline { get; } + + IWindow Window { get; } + + void BackgroundContextAction(Action action, bool alwaysBackground = false); + + BufferHandle CreateBuffer(int size, BufferHandle storageHint); + + BufferHandle CreateBuffer(int size) + { + return CreateBuffer(size, BufferHandle.Null); + } + + IProgram CreateProgram(ShaderSource[] shaders, ShaderInfo info); + + ISampler CreateSampler(SamplerCreateInfo info); + ITexture CreateTexture(TextureCreateInfo info, float scale); + + void CreateSync(ulong id, bool strict); + + void DeleteBuffer(BufferHandle buffer); + + PinnedSpan<byte> GetBufferData(BufferHandle buffer, int offset, int size); + + Capabilities GetCapabilities(); + ulong GetCurrentSync(); + HardwareInfo GetHardwareInfo(); + + IProgram LoadProgramBinary(byte[] programBinary, bool hasFragmentShader, ShaderInfo info); + + void SetBufferData(BufferHandle buffer, int offset, ReadOnlySpan<byte> data); + + void UpdateCounters(); + + void PreFrame(); + + ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler, bool hostReserved); + + void ResetCounter(CounterType type); + + void RunLoop(Action gpuLoop) + { + gpuLoop(); + } + + void WaitSync(ulong id); + + void Initialize(GraphicsDebugLevel logLevel); + + void SetInterruptAction(Action<Action> interruptAction); + + void Screenshot(); + } +} |
