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