using Ghost.Graphics.RHI; namespace Ghost.Graphics.RHI; /// /// High-level renderer interface that uses RHI abstractions /// public interface IRenderer : IDisposable { /// /// Sets the render target for this renderer /// /// Render target to render into void SetRenderTarget(IRenderTarget? renderTarget); /// /// Sets the swap chain for this renderer /// /// Swap chain for presentation void SetSwapChain(ISwapChain? swapChain); /// /// Executes any pending resize operations /// void ExecutePendingResize(); /// /// Renders a frame /// void Render(); /// /// Requests a resize operation /// /// New width /// New height void RequestResize(uint width, uint height); /// /// Waits for the GPU to complete all work /// void WaitIdle(); }