From d3665bb8663e122718cf1aa199b1e1a151ce9fca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Thu, 14 Apr 2005 00:10:41 +0000 Subject: [PATCH] mostly cosmetic changes, nothing of substance git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12386 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../Painter/font_support/AGGTextRenderer.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp index e866e36b6a..a805106cc5 100644 --- a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp +++ b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp @@ -4,11 +4,12 @@ #include #include -#include #include #include #include +#include #include +#include #include #include @@ -115,6 +116,7 @@ AGGTextRenderer::Archive(BMessage* into, bool deep) const bool AGGTextRenderer::SetFont(const ServerFont &font) { +//printf("AGGTextRenderer::SetFont(%s, %s)\n", font.GetFamily(), font.GetStyle()); if (fFontEngine.load_font(font, agg::glyph_ren_native_gray8)) { // if (fFontEngine.load_font(font, agg::glyph_ren_outline)) { return TextRenderer::SetFont(font); @@ -195,6 +197,8 @@ AGGTextRenderer::RenderString(const char* string, bool dryRun, BPoint* nextCharPos) { +//printf("RenderString(\"%s\", length: %ld, dry: %d)\n", string, length, dryRun); + fFontEngine.hinting(fHinted); fFontEngine.height((int32)(fPtSize)); fFontEngine.width((int32)(fPtSize)); @@ -262,13 +266,11 @@ AGGTextRenderer::RenderString(const char* string, if (glyph) { - if (fKerning) { + if (i > 0 && fKerning) { fFontManager.add_kerning(&advanceX, &advanceY); } - x += fAdvanceScale * advanceX; - if (advanceX > 0.0 && fAdvanceScale > 1.0) - x += (fAdvanceScale - 1.0) * fFontEngine.height(); + x += advanceX; y += advanceY; // calculate bounds @@ -280,6 +282,7 @@ AGGTextRenderer::RenderString(const char* string, // we cannot use the transformation pipeline double transformedX = x + transformOffset.x; double transformedY = y + transformOffset.y; +//printf("x: %f, y: %f\n", transformedX, transformedY); fFontManager.init_embedded_adaptors(glyph, transformedX, transformedY); @@ -335,11 +338,13 @@ AGGTextRenderer::RenderString(const char* string, bounds = bounds.IsValid() ? bounds | glyphBounds : glyphBounds; // increment pen position - advanceX = fHinted ? floorf(glyph->advance_x + 0.5) : glyph->advance_x; - advanceY = fHinted ? floorf(glyph->advance_y + 0.5) : glyph->advance_y; + advanceX = glyph->advance_x; + advanceY = glyph->advance_y; } ++p; } + // put pen location behind rendered text + // (at the baseline of the virtual next glyph) if (nextCharPos) { x += fAdvanceScale * advanceX; if (advanceX > 0.0 && fAdvanceScale > 1.0)