using System; using System.Collections.Generic; using System.IO; namespace Orvid.Graphics.FontSupport { /// /// The base class for adding support for different font formats. /// public abstract class IFontProvider where F : Font { /// /// The name of the FontProvider. /// public abstract string Name { get; } /// /// Returns true if the given Font is a format /// that this FontProvider supports. /// /// Font to check. /// True if supported. public abstract bool SupportsFormat(Font f); /// /// All fonts this FontProvider can provide. /// public abstract List Fonts { get; } /// /// Gets the TextRenderer that should be used to render this font. /// /// The TextRenderer. public abstract ITextRenderer GetTextRenderer(Font f); /// /// Gets the FontMetrics for the specified font. /// /// The Font to get the metrics for. /// The FontMetrics. public abstract FontMetrics GetFontMetrics(Font f); /// /// Gets the specified font in a format supported by this provider. /// /// Font to convert. /// /// The converted Font, null if unable to convert. /// /// True if conversion was successful. public abstract bool GetCompatibleFont(Font fontIn, out Font fontOut); /// /// Loads a Font from the specified Stream. /// /// The Stream to load from. /// The loaded font. public abstract Font LoadFont(Stream s); } }