Hash :
9f60f535
Author :
Date :
2001-10-10T21:59:02
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
#ifndef __FTGlyphContainer__
#define __FTGlyphContainer__
#include "FTGL.h"
#include <vector>
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
//#include "FTGL.h"
class FTFace;
class FTGlyph;
using namespace std;
/**
* FTGlyphContainer
*
* @see FTGlyph
*/
class FTGL_EXPORT FTGlyphContainer
{
public:
/**
* Constructor
*/
FTGlyphContainer( FTFace* face, int numGlyphs, bool p = false);
/**
* Destructor
*/
~FTGlyphContainer();
/**
* Adds a glyph to this glyph list.
*
* @param glyph
* @return <code>true</code>
*/
bool Add( FTGlyph* glyph);
/**
* Returns the kerned advance width for a glyph.
*
* param index glyph index of the character
* param next the next glyph in a string
* return advance width
*
*/
float Advance( unsigned int index, unsigned int next);
/**
* renders a character
*/
FT_Vector& render( unsigned int index, unsigned int next, FT_Vector pen);
private:
/**
*
*/
FT_Error err;
/**
*
*/
bool preCache;
/**
*
*/
int numGlyphs;
/**
*
*/
FTFace* face;
/**
*
*/
FT_Vector kernAdvance;
/**
*
*/
float advance;
/**
*
*/
vector<FTGlyph*> glyphs;
// typedef pair<int, FTGlyph*> CHARREF; // glyphIndex, glyph
// vector<CHARREF> glyphs;
// map< int, FTGlyph*> CHARREF; // charCode, glyph
};
#endif // __FTGlyphContainer__