Edit

kc3-lang/ftgl/src/FTCharmap.cpp

Branch :

  • Show log

    Commit

  • Author : henry
    Date : 2004-12-12 10:01:50
    Hash : 5760ea26
    Message : Changed behaviour so that if an errror occurs the object isn't modified. (strong guarantee).

  • src/FTCharmap.cpp
  • #include "FTFace.h"
    #include "FTCharmap.h"
    
    
    FTCharmap::FTCharmap( FTFace* face)
    :   ftFace( *(face->Face())),
        err(0)
    {
        if( !ftFace->charmap)
        {
            err = FT_Set_Charmap( ftFace, ftFace->charmaps[0]);
        }
        
        ftEncoding = ftFace->charmap->encoding;
    }
    
    
    FTCharmap::~FTCharmap()
    {
        charMap.clear();
    }
    
    
    bool FTCharmap::CharMap( FT_Encoding encoding)
    {
        if( ftEncoding == encoding)
        {
            return true;
        }
        
        err = FT_Select_Charmap( ftFace, encoding );
        
        if( !err)
        {
            ftEncoding = encoding;
            charMap.clear();
        }
            
        return !err;
    }
    
    
    unsigned int FTCharmap::GlyphListIndex( unsigned int characterCode )
    {
        return charMap.find( characterCode);
    }
    
    
    unsigned int FTCharmap::FontIndex( unsigned int characterCode )
    {
        return FT_Get_Char_Index( ftFace, characterCode);
    }
    
    
    void FTCharmap::InsertIndex( const unsigned int characterCode, const unsigned int containerIndex)
    {
        charMap.insert( characterCode, containerIndex);
    }