Content


NTL
Core
IPlatformFont

IPlatformFont



Describes platform dependent font. Used in renderers.

You can find more information in comments below.

class IPlatformFont : public virtual IReleasable
{
public:
    struct Char // Character data
    {
        wchar_t Char; // Character
        float Width; // Width returned by system
        float Height; // Height returned by system
        ImageMask Data; // Character image
        // Texture coordinates of the character in all characters texture
        float Tx1;
        float Ty1;
        float Tx2;
        float Ty2;
    };
protected:
    PlatformHandle m_hHandle;
    bool m_bItalic;
    bool m_bUnderline;
    bool m_bStrikeOut;
    bool m_bMonospace;
    String m_sFontName;
    int m_iHeight;
    FontWeight m_eWeight;
    PointF m_sCharacterSize;
public:
    PlatformHandle const &Handle; // Platform dependent handle
    bool const &Italic; // Whether font is italic or not
    bool const &Underline; // Whether font is underlined or not
    bool const &StrikeOut; // Whether font is striked out or not
    bool const &Monospace; // Return whether font was created in monospace mode
    String const &FontName; // Font family name
    int const &Height; // Height
    FontWeight const &Weight; // Weight
    PointF const &CharacterSize; // Character size. If font isn't monospaced the result is PointF{ 0, 0 }

    virtual Char *getChar(const wchar_t chr) = 0; // Find character information. Create if not found and possible
    virtual PointF getStringSize(const String &str, const float distance) = 0; // Return string size, with specified distance between characters added
    virtual ITexture *getTexture() = 0;
};
Namespace: nitisa
Include: Nitisa/Interfaces/IPlatformFont.h