00001 #ifndef __FTFace__
00002 #define __FTFace__
00003
00004 #include "FTGL.h"
00005
00006 #include <ft2build.h>
00007 #include FT_FREETYPE_H
00008 #include FT_GLYPH_H
00009
00010 #include "FTPoint.h"
00011 #include "FTSize.h"
00012
00019 class FTGL_EXPORT FTFace
00020 {
00021 public:
00027 FTFace( const char* filename);
00028
00035 FTFace( const unsigned char *pBufferBytes, size_t bufferSizeInBytes );
00036
00042 virtual ~FTFace();
00043
00051 bool Attach( const char* filename);
00052
00061 bool Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
00062
00066 void Close();
00067
00068 FT_Face* Face() const { return ftFace;}
00069
00080 const FTSize& Size( const unsigned int size, const unsigned int res);
00081
00082 unsigned int UnitsPerEM() const;
00083
00084
00085
00089 FTPoint KernAdvance( unsigned int index1, unsigned int index2);
00090
00094 FT_Glyph* Glyph( unsigned int index, FT_Int load_flags);
00095
00099 unsigned int GlyphCount() const { return numGlyphs;}
00100
00106 FT_Error Error() const { return err; }
00107
00108 private:
00112 FT_Face* ftFace;
00113
00117 FTSize charSize;
00118
00122 FT_Glyph ftGlyph;
00123
00127 int numGlyphs;
00128
00132 FT_Error err;
00133 };
00134
00135
00136 #endif // __FTFace__