using Dashboard.Pal;
namespace Dashboard.Drawing
{
///
/// This extension provides direct access to the backend rendering pipeline without writing with a higher level
/// abstraction than the rendering backend.
///
public interface IDirectRendering : IDeviceContextExtension
{
///
/// Create a shader program.
///
/// Type of the shader create info object.
/// An object which describes how the shader is created.
/// A shader program object.
///
///
///
IShader CreateShader(T createInfo) where T : IShaderCreateInfo;
///
/// Create a texture object.
///
/// Type of texture to create.
/// An empty texture object.
ITexture CreateTexture(TextureType type);
///
/// Create a buffer object.
///
/// Buffer access pattern hint.
/// Initial capacity of the buffer in bytes.
/// An empty buffer object.
IBuffer CreateBuffer(BufferAccessPattern pattern, long size);
///
/// Enqueue a draw call.
///
/// The draw call to enqueue.
void Draw(DrawCall drawCall);
}
[Obsolete("Use IDirectRendering instead.")]
public interface ITextureExtension : IDeviceContextExtension
{
///
ITexture CreateTexture(TextureType type);
}
}