using Ghost.Graphics.Data; namespace Ghost.Graphics.RHI; public interface IResourceFactory { /// /// Creates a render target for off-screen rendering /// /// Render target description /// A new render target instance public IRenderTarget CreateRenderTarget(ref readonly RenderTargetDesc desc); /// /// Creates a texture resource /// /// Texture description /// A new texture handle point to the resource public TextureHandle CreateTextureHandle(ref readonly TextureDesc desc); /// /// Creates a texture resource /// /// Texture description /// A new texture instance public ITexture CreateTexture(ref readonly TextureDesc desc); /// /// Creates a buffer resource /// /// Buffer description /// A new buffer handle point to the resource public BufferHandle CreateBufferHandle(ref readonly BufferDesc desc); /// /// Creates a buffer resource /// /// Buffer description /// A new buffer instance public IBuffer CreateBuffer(ref readonly BufferDesc desc); }