From cc9ca2becea6814b14c87615f67bb8db17968bc1 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Sat, 14 Feb 2015 20:51:28 +0400 Subject: Micro optimization to QPainterPrivate::drawGlyphs Re-use font engine obtained in the first place Change-Id: Icdc2ad404ba9b2aadf2732e95c43a47aa957a6fb Reviewed-by: Friedemann Kleint Reviewed-by: Lars Knoll --- src/gui/painting/qpainter.cpp | 9 +++------ src/gui/painting/qpainter_p.h | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index bdbb49ff51..995d15581c 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -5565,22 +5565,19 @@ void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphRun) fixedPointPositions[i] = QFixedPoint::fromPointF(processedPosition); } - d->drawGlyphs(glyphIndexes, fixedPointPositions.data(), count, font, glyphRun.overline(), - glyphRun.underline(), glyphRun.strikeOut()); + d->drawGlyphs(glyphIndexes, fixedPointPositions.data(), count, fontD->fontEngine, + glyphRun.overline(), glyphRun.underline(), glyphRun.strikeOut()); } void QPainterPrivate::drawGlyphs(const quint32 *glyphArray, QFixedPoint *positions, int glyphCount, - const QRawFont &font, bool overline, bool underline, + QFontEngine *fontEngine, bool overline, bool underline, bool strikeOut) { Q_Q(QPainter); updateState(state); - QRawFontPrivate *fontD = QRawFontPrivate::get(font); - QFontEngine *fontEngine = fontD->fontEngine; - QFixed leftMost; QFixed rightMost; QFixed baseLine; diff --git a/src/gui/painting/qpainter_p.h b/src/gui/painting/qpainter_p.h index dde01d32fa..5ac5cac2ff 100644 --- a/src/gui/painting/qpainter_p.h +++ b/src/gui/painting/qpainter_p.h @@ -226,7 +226,7 @@ public: #if !defined(QT_NO_RAWFONT) void drawGlyphs(const quint32 *glyphArray, QFixedPoint *positionArray, int glyphCount, - const QRawFont &font, bool overline = false, bool underline = false, + QFontEngine *fontEngine, bool overline = false, bool underline = false, bool strikeOut = false); #endif -- cgit v1.2.3