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 |