the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
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};