FTCharmap.cpp
Go to the documentation of this file.00001 #include "FTFace.h"
00002 #include "FTCharmap.h"
00003
00004
00005 FTCharmap::FTCharmap( FTFace* face)
00006 : ftFace( *(face->Face())),
00007 err(0)
00008 {
00009 if( !ftFace->charmap)
00010 {
00011 err = FT_Set_Charmap( ftFace, ftFace->charmaps[0]);
00012 }
00013
00014 ftEncoding = ftFace->charmap->encoding;
00015 }
00016
00017
00018 FTCharmap::~FTCharmap()
00019 {
00020 charMap.clear();
00021 }
00022
00023
00024 bool FTCharmap::CharMap( FT_Encoding encoding)
00025 {
00026 if( ftEncoding == encoding)
00027 {
00028 return true;
00029 }
00030
00031 err = FT_Select_Charmap( ftFace, encoding );
00032
00033 if( !err)
00034 {
00035 ftEncoding = encoding;
00036 }
00037 else
00038 {
00039 ftEncoding = ft_encoding_none;
00040 }
00041
00042 charMap.clear();
00043 return !err;
00044 }
00045
00046
00047 unsigned int FTCharmap::CharIndex( unsigned int characterCode )
00048 {
00049 return charMap.find( characterCode);
00050 }
00051
00052
00053 void FTCharmap::InsertIndex( const unsigned int characterCode, const unsigned int containerIndex)
00054 {
00055 charMap.insert( characterCode, containerIndex);
00056 }
00057
00058
00059 unsigned int FTCharmap::GlyphIndex( const unsigned int characterCode)
00060 {
00061 unsigned int glyphIndex = FT_Get_Char_Index( ftFace, characterCode);
00062 return glyphIndex;
00063 }
Generated on Fri Aug 13 13:40:45 2004 for FTGL by
1.3.7