Back to index

extremetuxracer  0.5beta
FTFace.h
Go to the documentation of this file.
00001 #ifndef     __FTFace__
00002 #define     __FTFace__
00003 
00004 #include <ft2build.h>
00005 #include FT_FREETYPE_H
00006 #include FT_GLYPH_H
00007 
00008 #include "FTGL.h"
00009 #include "FTPoint.h"
00010 #include "FTSize.h"
00011 
00018 class FTGL_EXPORT FTFace
00019 {
00020     public:
00026         FTFace( const char* fontFilePath);
00027 
00034         FTFace( const unsigned char *pBufferBytes, size_t bufferSizeInBytes );
00035 
00041         virtual ~FTFace();
00042 
00050         bool Attach( const char* fontFilePath);
00051 
00060         bool Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
00061 
00067         FT_Face* Face() const { return ftFace;}
00068         
00079         const FTSize& Size( const unsigned int size, const unsigned int res);
00080 
00086         unsigned int CharMapCount();
00087 
00093         FT_Encoding* CharMapList();
00094         
00098         FTPoint KernAdvance( unsigned int index1, unsigned int index2);
00099 
00103         FT_GlyphSlot Glyph( unsigned int index, FT_Int load_flags);
00104 
00108         unsigned int GlyphCount() const { return numGlyphs;}
00109 
00115         FT_Error Error() const { return err; }
00116         
00117     private:
00121         FT_Face* ftFace;
00122 
00126         FTSize  charSize;
00127         
00131         int numGlyphs;
00132         
00133         FT_Encoding* fontEncodingList;
00134 
00138          bool hasKerningTable;
00139 
00143         FT_Error err;
00144 };
00145 
00146 
00147 #endif  //  __FTFace__