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