ftglyphcontainer.cpp
来自「ftgl-2.1.2 夸平台的opengl显示字体」· C++ 代码 · 共 92 行
CPP
92 行
#include "FTGlyphContainer.h"#include "FTGlyph.h"#include "FTFace.h"#include "FTCharmap.h"FTGlyphContainer::FTGlyphContainer( FTFace* f): face(f), err(0){ glyphs.push_back( NULL); charMap = new FTCharmap( face);}FTGlyphContainer::~FTGlyphContainer(){ GlyphVector::iterator glyphIterator; for( glyphIterator = glyphs.begin(); glyphIterator != glyphs.end(); ++glyphIterator) { delete *glyphIterator; } glyphs.clear(); delete charMap;}bool FTGlyphContainer::CharMap( FT_Encoding encoding){ bool result = charMap->CharMap( encoding); err = charMap->Error(); return result;}unsigned int FTGlyphContainer::FontIndex( const unsigned int characterCode) const{ return charMap->FontIndex( characterCode);}void FTGlyphContainer::Add( FTGlyph* tempGlyph, const unsigned int characterCode){ charMap->InsertIndex( characterCode, glyphs.size()); glyphs.push_back( tempGlyph);}const FTGlyph* const FTGlyphContainer::Glyph( const unsigned int characterCode) const{ signed int index = charMap->GlyphListIndex( characterCode); return glyphs[index];}FTBBox FTGlyphContainer::BBox( const unsigned int characterCode) const{ return glyphs[charMap->GlyphListIndex( characterCode)]->BBox();}float FTGlyphContainer::Advance( const unsigned int characterCode, const unsigned int nextCharacterCode){ unsigned int left = charMap->FontIndex( characterCode); unsigned int right = charMap->FontIndex( nextCharacterCode); float width = face->KernAdvance( left, right).X(); width += glyphs[charMap->GlyphListIndex( characterCode)]->Advance().X(); return width;}FTPoint FTGlyphContainer::Render( const unsigned int characterCode, const unsigned int nextCharacterCode, FTPoint penPosition){ FTPoint kernAdvance, advance; unsigned int left = charMap->FontIndex( characterCode); unsigned int right = charMap->FontIndex( nextCharacterCode); kernAdvance = face->KernAdvance( left, right); if( !face->Error()) { advance = glyphs[charMap->GlyphListIndex( characterCode)]->Render( penPosition); } kernAdvance += advance; return kernAdvance;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?