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