aboutsummaryrefslogtreecommitdiff
path: root/lib/gdi/font.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-07-22 21:51:51 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-07-22 21:51:51 +0000
commit1ea67ee808e72ddeac7e6a01c42a015102664086 (patch)
treec82bbbd737bdb6d5bf84a9c72616e396fddd9581 /lib/gdi/font.cpp
parent351a139276aa45b681ae056612bcb275ab953b94 (diff)
downloadenigma2-1ea67ee808e72ddeac7e6a01c42a015102664086.tar.gz
enigma2-1ea67ee808e72ddeac7e6a01c42a015102664086.zip
fix/simplify bbox code a bit
Diffstat (limited to 'lib/gdi/font.cpp')
-rw-r--r--lib/gdi/font.cpp40
1 files changed, 23 insertions, 17 deletions
diff --git a/lib/gdi/font.cpp b/lib/gdi/font.cpp
index ef92d53a..1471aa5e 100644
--- a/lib/gdi/font.cpp
+++ b/lib/gdi/font.cpp
@@ -331,31 +331,39 @@ int eTextPara::appendGlyph(Font *current_font, FT_Face current_face, FT_UInt gly
ng.bbox.setWidth( glyph->width );
ng.bbox.setHeight( glyph->height );
- xadvance+=kern;
+ xadvance += kern;
ng.bbox.setWidth(xadvance);
- ng.x=cursor.x()+kern;
- ng.y=cursor.y();
- ng.w=xadvance;
- ng.font=current_font;
- ng.glyph_index=glyphIndex;
- ng.flags=flags;
+ ng.x = cursor.x()+kern;
+ ng.y = cursor.y();
+ ng.w = xadvance;
+ ng.font = current_font;
+ ng.glyph_index = glyphIndex;
+ ng.flags = flags;
glyphs.push_back(ng);
- cursor+=ePoint(xadvance, 0);
- previous=glyphIndex;
+ cursor += ePoint(xadvance, 0);
+ previous = glyphIndex;
return 0;
}
void eTextPara::calc_bbox()
{
- boundBox.setLeft( 32000 );
- boundBox.setTop( 32000 );
- boundBox.setRight( -32000 ); // for each glyph image, compute its bounding box, translate it,
- boundBox.setBottom( -32000 );
- // and grow the string bbox
+ if (!glyphs.size())
+ {
+ bboxValid = 0;
+ boundBox = eRect();
+ return;
+ }
+
+ bboxValid = 1;
+
+ glyphString::iterator i(glyphs.begin());
+
+ boundBox = i->bbox;
+ ++i;
- for ( glyphString::iterator i(glyphs.begin()); i != glyphs.end(); ++i)
+ for (i ; i != glyphs.end(); ++i)
{
if ( i->flags & GS_ISSPACE )
continue;
@@ -369,8 +377,6 @@ void eTextPara::calc_bbox()
boundBox.setBottom( i->bbox.bottom() );
}
// eDebug("boundBox left = %i, top = %i, right = %i, bottom = %i", boundBox.left(), boundBox.top(), boundBox.right(), boundBox.bottom() );
- if ( glyphs.size() )
- bboxValid=1;
}
void eTextPara::newLine(int flags)