00001 #ifndef __FTGLTextureFont__ 00002 #define __FTGLTextureFont__ 00003 00004 #include "FTFont.h" 00005 #include "FTVector.h" 00006 #include "FTGL.h" 00007 00008 class FTTextureGlyph; 00009 00010 00017 class FTGL_EXPORT FTGLTextureFont : public FTFont 00018 { 00019 public: 00025 FTGLTextureFont( const char* fontFilePath); 00026 00033 FTGLTextureFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes); 00034 00038 virtual ~FTGLTextureFont(); 00039 00047 virtual bool FaceSize( const unsigned int size, const unsigned int res = 72); 00048 00054 virtual void Render( const char* string); 00055 00061 virtual void Render( const wchar_t* string); 00062 00063 00064 private: 00071 inline virtual FTGlyph* MakeGlyph( unsigned int glyphIndex); 00072 00079 inline void CalculateTextureSize(); 00080 00091 inline GLuint CreateTexture(); 00092 00096 GLsizei maximumGLTextureSize; 00097 00101 GLsizei textureWidth; 00102 00106 GLsizei textureHeight; 00107 00111 FTVector<GLuint> textureIDList; 00112 00116 int glyphHeight; 00117 00121 int glyphWidth; 00122 00127 unsigned int padding; 00128 00132 unsigned int numGlyphs; 00133 00136 unsigned int remGlyphs; 00137 00140 int xOffset; 00141 00144 int yOffset; 00145 00146 }; 00147 00148 00149 #endif // __FTGLTextureFont__ 00150 00151