#include "FTGLOutlineFont.h" #include "FTOutlineGlyph.h" FTGLOutlineFont::FTGLOutlineFont( const char* fontFilePath) : FTFont( fontFilePath) {} FTGLOutlineFont::FTGLOutlineFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes) : FTFont( pBufferBytes, bufferSizeInBytes) {} FTGLOutlineFont::~FTGLOutlineFont() {} FTGlyph* FTGLOutlineFont::MakeGlyph( unsigned int g) { FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_NO_HINTING); if( ftGlyph) { FTOutlineGlyph* tempGlyph = new FTOutlineGlyph( ftGlyph, useDisplayLists); return tempGlyph; } err = face.Error(); return NULL; } void FTGLOutlineFont::Render( const char* string) { glPushAttrib( GL_ENABLE_BIT | GL_HINT_BIT | GL_LINE_BIT | GL_COLOR_BUFFER_BIT); glDisable( GL_TEXTURE_2D); glEnable( GL_LINE_SMOOTH); glHint( GL_LINE_SMOOTH_HINT, GL_DONT_CARE); glEnable(GL_BLEND); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE FTFont::Render( string); glPopAttrib(); } void FTGLOutlineFont::Render( const wchar_t* string) { glPushAttrib( GL_ENABLE_BIT | GL_HINT_BIT | GL_LINE_BIT | GL_COLOR_BUFFER_BIT); glDisable( GL_TEXTURE_2D); glEnable( GL_LINE_SMOOTH); glHint( GL_LINE_SMOOTH_HINT, GL_DONT_CARE); glEnable(GL_BLEND); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE FTFont::Render( string); glPopAttrib(); }