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