namespace Ghost.Graphics.Contracts; /// /// Defines the contract for a render view in the graphics pipeline. /// internal interface IRenderer : IDisposable { public ReadOnlySpan RenderPasses { get; } /// /// Requests a resize of the render view. /// /// The new width of the render view. /// The new height of the render view. /// This only submits a resize request without executing it. May overwrite last request if next request issued before next frame. public void RequestResize(uint width, uint height); /// /// Executes any pending resize operations for the current context. /// public void ExecutePendingResize(); public void Initialize(); /// /// Renders the current content to the output target. /// public void Render(); /// /// Waits for the next frame to be ready for rendering. /// public void WaitNextFrame(); /// /// Waits for the render view to become idle, ensuring all previous commands have been executed and resources are ready for the next frame. /// public void WaitIdle(); }