67 lines
1.0 KiB
C++
67 lines
1.0 KiB
C++
#include "GL/gl.h"
|
|
|
|
#include "FTGLPixmapFont.h"
|
|
#include "FTGlyphContainer.h"
|
|
#include "FTPixmapGlyph.h"
|
|
|
|
|
|
FTGLPixmapFont::FTGLPixmapFont()
|
|
: tempGlyph(0)
|
|
{}
|
|
|
|
|
|
FTGLPixmapFont::~FTGLPixmapFont()
|
|
{}
|
|
|
|
|
|
// OPSignature: bool FTGlyphContainer:MakeGlyphList()
|
|
bool FTGLPixmapFont::MakeGlyphList()
|
|
{
|
|
// if( preCache)
|
|
for( unsigned int c = 0; c < numGlyphs; ++c)
|
|
{
|
|
FT_Glyph* ftGlyph = face.Glyph( c, FT_LOAD_DEFAULT);
|
|
// FT_HAS_VERTICAL(face)
|
|
|
|
if( ftGlyph)
|
|
{
|
|
tempGlyph = new FTPixmapGlyph( *ftGlyph);
|
|
glyphList->Add( tempGlyph);
|
|
}
|
|
else
|
|
{
|
|
err = face.Error();
|
|
}
|
|
}
|
|
|
|
return !err;
|
|
}
|
|
|
|
|
|
void FTGLPixmapFont::render( const char* string)
|
|
{
|
|
glPushAttrib( GL_ENABLE_BIT | GL_PIXEL_MODE_BIT);
|
|
|
|
glEnable(GL_BLEND);
|
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
FTFont::render( string);
|
|
|
|
glPopAttrib();
|
|
|
|
}
|
|
|
|
|
|
void FTGLPixmapFont::render( const wchar_t* string)
|
|
{
|
|
glPushAttrib( GL_ENABLE_BIT | GL_PIXEL_MODE_BIT);
|
|
|
|
glEnable(GL_BLEND);
|
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
FTFont::render( string);
|
|
|
|
glPopAttrib();
|
|
|
|
}
|