blob: b051e9dc8b4642960eaa8d7874cda655953fa9e1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
using Ryujinx.Common.Configuration;
using Ryujinx.Graphics.Shader;
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);
IProgram CreateProgram(ShaderSource[] shaders, ShaderInfo info);
ISampler CreateSampler(SamplerCreateInfo info);
ITexture CreateTexture(TextureCreateInfo info, float scale);
void CreateSync(ulong id);
void DeleteBuffer(BufferHandle buffer);
ReadOnlySpan<byte> GetBufferData(BufferHandle buffer, int offset, int size);
Capabilities GetCapabilities();
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 Screenshot();
}
}
|