00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _WG_FONTENGINE_H_
00027 #define _WG_FONTENGINE_H_
00028
00029 #include <ft2build.h>
00030 #include FT_FREETYPE_H
00031 #include FT_GLYPH_H
00032 #include <string>
00033 #include <map>
00034
00035
00036 namespace wGui
00037 {
00038
00042
00043 class CFontEngine
00044 {
00045 public:
00051 CFontEngine(const std::wstring& sFontFileName, unsigned char FontSize);
00052
00054 virtual ~CFontEngine(void);
00055
00059 FT_BitmapGlyphRec* RenderGlyph(wchar_t Char);
00060
00064 FT_Glyph_Metrics* GetMetrics(wchar_t Char);
00065
00066
00067 protected:
00068 static FT_Library m_FTLibrary;
00069 static bool m_bFTLibraryLoaded;
00070 FT_Face m_FontFace;
00071 std::map<wchar_t, FT_BitmapGlyphRec> m_CachedGlyphMap;
00072 std::map<wchar_t, FT_Glyph_Metrics> m_CachedMetricsMap;
00073 };
00074
00075 }
00076
00077 #endif // _WG_FONTENGINE_