| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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);
- IShader CompileShader(ShaderStage stage, string code);
- BufferHandle CreateBuffer(int size);
- IProgram CreateProgram(IShader[] 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();
- }
- }
|