Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

FTFont.h

Go to the documentation of this file.
00001 #ifndef    __FTFont__
00002 #define    __FTFont__
00003 
00004 #include <ft2build.h>
00005 #include FT_FREETYPE_H
00006 
00007 #include "FTFace.h"
00008 #include "FTGL.h"
00009 
00010 class FTGlyphContainer;
00011 class FTGlyph;
00012 
00013 
00031 class FTGL_EXPORT FTFont
00032 {
00033     public:
00039         FTFont( const char* fontname);
00040         
00047         FTFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
00048         
00052         virtual ~FTFont();
00053         
00063         bool Attach( const char* filename);
00064 
00075         bool Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
00076 
00084         bool CharMap( FT_Encoding encoding );
00085 
00091         unsigned int CharMapCount();
00092 
00098         FT_Encoding* CharMapList();
00099         
00107         virtual bool FaceSize( const unsigned int size, const unsigned int res = 72);
00108         
00114         unsigned int FaceSize() const;
00115         
00122         virtual void Depth( float d){}
00123 
00129         float Ascender() const;
00130         
00136         float Descender() const;
00137 
00149         void BBox( const char* string, float& llx, float& lly, float& llz, float& urx, float& ury, float& urz);
00150 
00162         void BBox( const wchar_t* string, float& llx, float& lly, float& llz, float& urx, float& ury, float& urz);
00163 
00170         float Advance( const wchar_t* string);
00171 
00178         float Advance( const char* string);
00179 
00185         virtual void Render( const char* string );
00186 
00192         virtual void Render( const wchar_t* string );
00193 
00199         FT_Error Error() const { return err;}
00200 
00201     protected:
00211         virtual FTGlyph* MakeGlyph( unsigned int g) = 0;
00212         
00216         FTFace face;
00217         
00221         FTSize charSize;
00222 
00226         FT_Error err;
00227         
00228     private:        
00236         inline void DoRender( const unsigned int chr, const unsigned int nextChr);
00237         
00243         inline void CheckGlyph( const unsigned int chr);
00244 
00248         FTGlyphContainer* glyphList;
00249         
00253         FTPoint pen;
00254 };
00255 
00256 
00257 #endif  //  __FTFont__
00258 

Generated on Fri Apr 9 17:36:38 2004 for FTGL by doxygen 1.3.6