using Ghost.Core; using Ghost.Graphics.Core; using Ghost.Graphics.RHI; namespace Ghost.Graphics.Contracts; public interface IRenderOutput { ViewportDesc Viewport { get; set; } RectDesc Scissor { get; set; } /// /// Gets a handle to the current render target texture. /// /// A handle to the texture that is currently set as the render target. Handle GetRenderTarget(); /// /// Begins a rendering operation using the specified command buffer. Typically this will include resource barriers, /// /// The command buffer that records rendering commands. /// void BeginRender(ICommandBuffer cmd); /// /// Finalizes the rendering process using the specified command buffer. /// /// The command buffer that contains the rendering commands to be finalized. void EndRender(ICommandBuffer cmd); /// /// Displays the current frame to the output device or screen. /// /// Call this method after rendering operations to present the rendered content. The exact /// behavior may depend on the underlying graphics implementation or device. void Present(); }