the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 75 lines 2.9 kB view raw
1#pragma once 2 3struct SFontData; 4class CFontData; 5 6#define VERBOSE_FONT_OUTPUT 0 7 8// const int BITMAP_FONT_LANGUAGES = XC_LANGUAGE_ENGLISH 9// | XC_LANGUAGE_GERMAN 10// | XC_LANGUAGE_FRENCH 11// | XC_LANGUAGE_SPANISH 12// | XC_LANGUAGE_ITALIAN 13// | XC_LANGUAGE_PORTUGUESE 14// | XC_LANGUAGE_BRAZILIAN; 15 16using namespace std; 17 18class UIAbstractBitmapFont 19{ 20protected: 21 string m_fontname; 22 23 IggyBitmapFontProvider *m_bitmapFontProvider; 24 25 bool m_registered; 26 27 unsigned int m_numGlyphs; 28 29public: 30 UIAbstractBitmapFont(const string &fontname); 31 ~UIAbstractBitmapFont(); 32 33 void registerFont(); 34 35 // Virtual Functions. 36 virtual IggyFontMetrics *GetFontMetrics(IggyFontMetrics *metrics) = 0; 37 virtual S32 GetCodepointGlyph(U32 codepoint) = 0; 38 virtual IggyGlyphMetrics *GetGlyphMetrics(S32 glyph, IggyGlyphMetrics *metrics) = 0; 39 virtual rrbool IsGlyphEmpty(S32 glyph) = 0; 40 virtual F32 GetKerningForGlyphPair(S32 first_glyph, S32 second_glyph) = 0; 41 virtual rrbool CanProvideBitmap(S32 glyph, F32 pixel_scale) = 0; 42 virtual rrbool GetGlyphBitmap(S32 glyph, F32 pixel_scale, IggyBitmapCharacter *bitmap) = 0; 43 virtual void FreeGlyphBitmap(S32 glyph, F32 pixel_scale, IggyBitmapCharacter *bitmap) = 0; 44 45 // Static Callbacks 46 // Just wrappers for the virtual functions. 47 static IggyFontMetrics * RADLINK GetFontMetrics_Callback(void *user_context, IggyFontMetrics *metrics); 48 static S32 RADLINK GetCodepointGlyph_Callback(void *user_context, U32 codepoint); 49 static IggyGlyphMetrics * RADLINK GetGlyphMetrics_Callback(void *user_context, S32 glyph, IggyGlyphMetrics *metrics); 50 static rrbool RADLINK IsGlyphEmpty_Callback(void *user_context, S32 glyph); 51 static F32 RADLINK GetKerningForGlyphPair_Callback(void *user_context, S32 first_glyph, S32 second_glyph); 52 static rrbool RADLINK CanProvideBitmap_Callback(void *user_context, S32 glyph, F32 pixel_scale); 53 static rrbool RADLINK GetGlyphBitmap_Callback(void *user_context, S32 glyph, F32 pixel_scale, IggyBitmapCharacter *bitmap); 54 static void RADLINK FreeGlyphBitmap_Callback(void *user_context, S32 glyph, F32 pixel_scale, IggyBitmapCharacter *bitmap); 55}; 56 57class UIBitmapFont : public UIAbstractBitmapFont 58{ 59protected: 60 CFontData *m_cFontData; 61 62public: 63 UIBitmapFont(SFontData &sfontdata); 64 65 ~UIBitmapFont(); 66 67 virtual IggyFontMetrics * GetFontMetrics(IggyFontMetrics *metrics); 68 virtual S32 GetCodepointGlyph(U32 codepoint); 69 virtual IggyGlyphMetrics * GetGlyphMetrics(S32 glyph, IggyGlyphMetrics *metrics); 70 virtual rrbool IsGlyphEmpty(S32 glyph); 71 virtual F32 GetKerningForGlyphPair(S32 first_glyph, S32 second_glyph); 72 virtual rrbool CanProvideBitmap(S32 glyph, F32 pixel_scale); 73 virtual rrbool GetGlyphBitmap(S32 glyph, F32 pixel_scale, IggyBitmapCharacter *bitmap); 74 virtual void FreeGlyphBitmap(S32 glyph, F32 pixel_scale, IggyBitmapCharacter *bitmap); 75};