Fix rounding error when drawing scaled text on OS X

This especially affected the print preview dialog, where certain
characters would be grossly mispositioned.

Task-number: QTBUG-27131
Change-Id: I385474a6f609a8f4291988206c7e63a0747673dd
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
This commit is contained in:
Eskil Abrahamsen Blomfeldt 2012-09-04 16:18:45 +02:00 committed by Qt by Nokia
parent 5243999c3c
commit a949d4ef8f

View File

@ -440,12 +440,12 @@ QImage QCoreTextFontEngine::imageForGlyph(glyph_t glyph, QFixed subPixelPosition
glyph_metrics_t br = boundingBox(glyph);
if (m.isScaling()) {
QFixed hscale = QFixed::fromReal(m.m11());
QFixed vscale = QFixed::fromReal(m.m22());
br.width *= hscale;
br.height *= vscale;
br.x *= hscale;
br.y *= vscale;
qreal hscale = m.m11();
qreal vscale = m.m22();
br.width = QFixed::fromReal(br.width.toReal() * hscale);
br.height = QFixed::fromReal(br.height.toReal() * vscale);
br.x = QFixed::fromReal(br.x.toReal() * hscale);
br.y = QFixed::fromReal(br.y.toReal() * vscale);
}
QImage im(qRound(br.width)+2, qRound(br.height)+2, QImage::Format_RGB32);