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();
}