namespace Ghost.Graphics.RHI; public interface IGraphicsEngine : IDisposable { public IRenderDevice Device { get; } public IResourceDatabase ResourceDatabase { get; } public IResourceAllocator ResourceAllocator { get; } public IRenderer CreateRenderer(); /// /// Creates a command buffer for recording rendering commands /// /// Type of command buffer to create /// A new command buffer instance public ICommandBuffer CreateCommandBuffer(CommandBufferType type = CommandBufferType.Graphics); /// /// Creates a swap chain for presentation /// /// Swap chain description /// A new swap chain instance public ISwapChain CreateSwapChain(SwapChainDesc desc); /// /// Begins a new rendering frame, preparing the graphics context for drawing operations. /// public void BeginFrame(); /// /// Completes the current rendering frame and performs any necessary finalization steps. /// public void EndFrame(); }