67 lines
1.3 KiB
C++
67 lines
1.3 KiB
C++
|
#include "FTGLBitmapFont.h"
|
||
|
#include "FTBitmapGlyph.h"
|
||
|
|
||
|
|
||
|
FTGLBitmapFont::FTGLBitmapFont( const char* fontFilePath)
|
||
|
: FTFont( fontFilePath)
|
||
|
{}
|
||
|
|
||
|
|
||
|
FTGLBitmapFont::FTGLBitmapFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
|
||
|
: FTFont( pBufferBytes, bufferSizeInBytes)
|
||
|
{}
|
||
|
|
||
|
|
||
|
FTGLBitmapFont::~FTGLBitmapFont()
|
||
|
{}
|
||
|
|
||
|
|
||
|
FTGlyph* FTGLBitmapFont::MakeGlyph( unsigned int g)
|
||
|
{
|
||
|
FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_DEFAULT);
|
||
|
|
||
|
if( ftGlyph)
|
||
|
{
|
||
|
FTBitmapGlyph* tempGlyph = new FTBitmapGlyph( ftGlyph);
|
||
|
return tempGlyph;
|
||
|
}
|
||
|
|
||
|
err = face.Error();
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
|
||
|
void FTGLBitmapFont::Render( const char* string)
|
||
|
{
|
||
|
glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
|
||
|
glPushAttrib( GL_ENABLE_BIT);
|
||
|
|
||
|
glPixelStorei( GL_UNPACK_LSB_FIRST, GL_FALSE);
|
||
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1);
|
||
|
|
||
|
glDisable( GL_BLEND);
|
||
|
|
||
|
FTFont::Render( string);
|
||
|
|
||
|
glPopAttrib();
|
||
|
glPopClientAttrib();
|
||
|
}
|
||
|
|
||
|
|
||
|
void FTGLBitmapFont::Render( const wchar_t* string)
|
||
|
{
|
||
|
glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
|
||
|
glPushAttrib( GL_ENABLE_BIT);
|
||
|
|
||
|
glPixelStorei( GL_UNPACK_LSB_FIRST, GL_FALSE);
|
||
|
glPixelStorei( GL_UNPACK_ALIGNMENT, 1);
|
||
|
|
||
|
glDisable( GL_BLEND);
|
||
|
|
||
|
FTFont::Render( string);
|
||
|
|
||
|
glPopAttrib();
|
||
|
glPopClientAttrib();
|
||
|
}
|
||
|
|