using Ghost.Core;
namespace Ghost.Graphics.RHI;
public readonly struct RenderContext
{
public ICommandBuffer CommandBuffer { get; init; }
}
// TODO: We may don't need this anymore. We Use RenderExtractionSystem to extract render data from entities and pass them to IRenderPipeline to render.
///
/// High-level renderer interface that uses RHI abstractions
///
public interface IRenderer : IDisposable
{
///
/// Gets or sets the render output target for this renderer.
///
IRenderOutput? RenderOutput
{
get; set;
}
///
/// The function that performs the actual rendering operations. Skip rendering if this is null.
///
Func? RenderFunc
{
get; set;
}
///
/// Renders a frame
///
/// Command allocator to use for rendering
/// Result of the rendering operation
Result Render(ICommandAllocator commandAllocator);
}