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