summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlex Liu <winddss@gmail.com>2012-10-26 15:18:35 +0100
committerJan Holesovsky <kendy@suse.cz>2012-11-09 13:48:56 +0100
commitcad7a5814775adf458f8a490700fa5ef6b8f8638 (patch)
treefffbcd516d244c4ee78fe01d6afe1a5daf954bc1
parent3d303cb331ab273538d63b226250a6950718ea1f (diff)
Resolves: fdo#47432 Improve the "faux bold" in cairo canvas
The "faux bold" make the bold font in Asian ugly & unacceptable, Adjust & improve the "faux bold" to make the bold font better. Change-Id: I2e02156ffc30629476b80134ffb0b50e793f7ead Signed-off-by: Jan Holesovsky <kendy@suse.cz>
-rw-r--r--canvas/source/cairo/cairo_textlayout.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/canvas/source/cairo/cairo_textlayout.cxx b/canvas/source/cairo/cairo_textlayout.cxx
index adea863a6837..d6de60a3cf1b 100644
--- a/canvas/source/cairo/cairo_textlayout.cxx
+++ b/canvas/source/cairo/cairo_textlayout.cxx
@@ -618,14 +618,15 @@ namespace cairocanvas
if (rSysFontData.bFakeBold)
{
double bold_dx = 0.5 * sqrt( 0.7 * aFont.GetHeight() );
- int total_steps = 2 * ((int) (bold_dx + 0.5));
+ int total_steps = 1 * ((int) (bold_dx + 0.5));
// loop to draw the text for every half pixel of displacement
for (int nSteps = 0; nSteps < total_steps; nSteps++)
{
for(int nGlyphIdx = 0; nGlyphIdx < (int) cairo_glyphs.size(); nGlyphIdx++)
{
- cairo_glyphs[nGlyphIdx].x += bold_dx * nSteps / total_steps;
+ cairo_glyphs[nGlyphIdx].x += (bold_dx * nSteps / total_steps) / 4;
+ cairo_glyphs[nGlyphIdx].y -= (bold_dx * nSteps / total_steps) / 4;
}
cairo_show_glyphs(pSCairo.get(), &cairo_glyphs[0], cairo_glyphs.size());
}