// FIXME Single font assumption
Text::FontMetrics fontMetrics;
GlyphInfo firstGlyph;
- visualModel.GetGlyphs( 0, &firstGlyph, 1 );
+ visualModel.GetGlyphs( &firstGlyph, 0, 1 );
mFontClient.GetFontMetrics( firstGlyph.fontId, fontMetrics );
float penX( 0 );
for( unsigned int i=0; i<glyphCount; ++i )
{
GlyphInfo glyph;
- visualModel.GetGlyphs( i, &glyph, 1 );
+ visualModel.GetGlyphs( &glyph, i, 1 );
glyphPositions.push_back( Vector2( penX + glyph.xBearing,
penY - glyph.yBearing ) );
if( glyphCount > 0 )
{
+ Size actualSize;
+
// FIXME Single font assumption
Text::FontMetrics fontMetrics;
GlyphInfo firstGlyph;
- visualModel.GetGlyphs( 0, &firstGlyph, 1 );
+ visualModel.GetGlyphs( &firstGlyph, 0, 1 );
mFontClient.GetFontMetrics( firstGlyph.fontId, fontMetrics );
float penX( 0 );
for( ; i<glyphCount; ++i )
{
GlyphInfo glyph;
- visualModel.GetGlyphs( i, &glyph, 1 );
+ visualModel.GetGlyphs( &glyph, i, 1 );
if( glyph.width > 0 &&
glyph.height > 0 )
for( ; j<glyphCount; ++j )
{
GlyphInfo glyph;
- visualModel.GetGlyphs( j, &glyph, 1 );
+ visualModel.GetGlyphs( &glyph, j, 1 );
endPenX += glyph.advance;
}
else if( endPenX > boundingBox.width )
{
+ actualSize.width = ( actualSize.width < endPenX - glyph.advance ) ? endPenX - glyph.advance : actualSize.width;
break;
}
}
for( ; i<endIndex; ++i )
{
GlyphInfo glyph;
- visualModel.GetGlyphs( i, &glyph, 1 );
+ visualModel.GetGlyphs( &glyph, i, 1 );
glyphPositions.push_back( Vector2( penX + glyph.xBearing,
penY - glyph.yBearing ) );
// Go to next line
penX = 0;
penY += fontMetrics.height;
+
+ actualSize.height += fontMetrics.height;
}
visualModel.SetGlyphPositions( &glyphPositions[0], glyphCount );
+
+ visualModel.SetActualSize( actualSize );
}
}