mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-08-13 09:50:45 +00:00
initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4
This commit is contained in:
commit
3096eaf5e2
2519 changed files with 816064 additions and 0 deletions
67
ExternalLibs/FTGL/src/FTOutlineGlyph.cpp
Normal file
67
ExternalLibs/FTGL/src/FTOutlineGlyph.cpp
Normal file
|
@ -0,0 +1,67 @@
|
|||
#include "FTOutlineGlyph.h"
|
||||
#include "FTVectoriser.h"
|
||||
|
||||
|
||||
FTOutlineGlyph::FTOutlineGlyph( FT_GlyphSlot glyph, bool useDisplayList)
|
||||
: FTGlyph( glyph),
|
||||
glList(0)
|
||||
{
|
||||
if( ft_glyph_format_outline != glyph->format)
|
||||
{
|
||||
err = 0x14; // Invalid_Outline
|
||||
return;
|
||||
}
|
||||
|
||||
FTVectoriser vectoriser( glyph);
|
||||
|
||||
size_t numContours = vectoriser.ContourCount();
|
||||
if ( ( numContours < 1) || ( vectoriser.PointCount() < 3))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(useDisplayList)
|
||||
{
|
||||
glList = glGenLists(1);
|
||||
glNewList( glList, GL_COMPILE);
|
||||
}
|
||||
|
||||
for( unsigned int c = 0; c < numContours; ++c)
|
||||
{
|
||||
const FTContour* contour = vectoriser.Contour(c);
|
||||
|
||||
glBegin( GL_LINE_LOOP);
|
||||
for( unsigned int pointIndex = 0; pointIndex < contour->PointCount(); ++pointIndex)
|
||||
{
|
||||
FTPoint point = contour->Point(pointIndex);
|
||||
glVertex2f( point.X() / 64.0f, point.Y() / 64.0f);
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
|
||||
if(useDisplayList)
|
||||
{
|
||||
glEndList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
FTOutlineGlyph::~FTOutlineGlyph()
|
||||
{
|
||||
glDeleteLists( glList, 1);
|
||||
}
|
||||
|
||||
|
||||
const FTPoint& FTOutlineGlyph::Render( const FTPoint& pen)
|
||||
{
|
||||
glTranslatef( pen.X(), pen.Y(), 0.0f);
|
||||
|
||||
if( glList)
|
||||
{
|
||||
glCallList( glList);
|
||||
}
|
||||
|
||||
return advance;
|
||||
}
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue