From 000a9b132e481207f9469e3513362f1f10d65c3d Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Mon, 23 May 2011 16:33:46 -0500 Subject: [PATCH 1/2] gdiplus: Change the sign we use for origin.x in DrawDriverString. Apparently characters whose black boxes extend to the left of the origin have a negative x value, but characters whose black boxes extend above the origin have a positive y value. --- dlls/gdiplus/graphics.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 336929f..1c7c7f4 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -5740,9 +5740,9 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI if (glyphsize > max_glyphsize) max_glyphsize = glyphsize; - left = pti[i].x - glyphmetrics.gmptGlyphOrigin.x; + left = pti[i].x + glyphmetrics.gmptGlyphOrigin.x; top = pti[i].y - glyphmetrics.gmptGlyphOrigin.y; - right = pti[i].x - glyphmetrics.gmptGlyphOrigin.x + glyphmetrics.gmBlackBoxX; + right = pti[i].x + glyphmetrics.gmptGlyphOrigin.x + glyphmetrics.gmBlackBoxX; bottom = pti[i].y - glyphmetrics.gmptGlyphOrigin.y + glyphmetrics.gmBlackBoxY; if (left < min_x) min_x = left; @@ -5773,7 +5773,7 @@ static GpStatus SOFTWARE_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UI GetGlyphOutlineW(hdc, text[i], ggo_flags, &glyphmetrics, max_glyphsize, glyph_mask, &identity); - left = pti[i].x - glyphmetrics.gmptGlyphOrigin.x; + left = pti[i].x + glyphmetrics.gmptGlyphOrigin.x; top = pti[i].y - glyphmetrics.gmptGlyphOrigin.y; stride = (glyphmetrics.gmBlackBoxX + 3) & (~3); -- 1.7.1