diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-05-23 21:27:07 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-05-23 21:27:07 +0200 |
commit | d3a8bc803cd7c4ce106038bfc4b37cdd6bb8e177 (patch) | |
tree | 3b6db0d4869f334d0eb4559c5ae457995cbe913e /src/gui/painting | |
parent | d934ddc297f6db94dbc548fe01da64350f13577d (diff) | |
parent | 47a7628023610904c6ac52e23fa289f75f349b4e (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
src/corelib/io/qdatastream.cpp
src/corelib/io/qdatastream.h
src/corelib/json/qjsonwriter.cpp
src/plugins/platforms/cocoa/qcocoawindow.mm
src/plugins/platforms/xcb/qxcbkeyboard.cpp
Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
Diffstat (limited to 'src/gui/painting')
-rw-r--r-- | src/gui/painting/qdrawhelper.cpp | 1 | ||||
-rw-r--r-- | src/gui/painting/qpaintengine.cpp | 2 | ||||
-rw-r--r-- | src/gui/painting/qpaintengine.h | 3 | ||||
-rw-r--r-- | src/gui/painting/qpaintengine_raster.cpp | 3 | ||||
-rw-r--r-- | src/gui/painting/qpainter.cpp | 17 | ||||
-rw-r--r-- | src/gui/painting/qrgb.h | 18 |
6 files changed, 24 insertions, 20 deletions
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 651949192b..3084c8c4c9 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -6034,6 +6034,7 @@ void qInitDrawhelperAsm() const uint features = qCpuFeatures(); if (false) { + Q_UNUSED(features); #ifdef QT_COMPILER_SUPPORTS_AVX } else if (features & AVX) { qt_memfill32 = qt_memfill32_avx; diff --git a/src/gui/painting/qpaintengine.cpp b/src/gui/painting/qpaintengine.cpp index ac4589df40..aa175c2d65 100644 --- a/src/gui/painting/qpaintengine.cpp +++ b/src/gui/painting/qpaintengine.cpp @@ -374,7 +374,7 @@ void QPaintEngine::drawPolygon(const QPoint *points, int pointCount, PolygonDraw \value CoreGraphics Mac OS X's Quartz2D (CoreGraphics) \value QuickDraw Mac OS X's QuickDraw \value QWindowSystem Qt for Embedded Linux - \value PostScript + \value PostScript (No longer supported) \value OpenGL \value Picture QPicture format \value SVG Scalable Vector Graphics XML format diff --git a/src/gui/painting/qpaintengine.h b/src/gui/painting/qpaintengine.h index b3e3762cc8..b4dec2929d 100644 --- a/src/gui/painting/qpaintengine.h +++ b/src/gui/painting/qpaintengine.h @@ -196,7 +196,7 @@ public: Windows, QuickDraw, CoreGraphics, MacPrinter, QWindowSystem, - PostScript, + PostScript, // ### Qt 6: Remove, update documentation OpenGL, Picture, SVG, @@ -253,7 +253,6 @@ private: #ifndef QT_NO_QWS_QPF2 friend class QFontEngineQPF; #endif - friend class QPSPrintEngine; friend class QMacPrintEngine; friend class QMacPrintEnginePrivate; friend class QFontEngineQPA; diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index a123c147a2..66a4a43cba 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -3078,7 +3078,8 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions); drawCachedGlyphs(glyphs.size(), glyphs.constData(), positions.constData(), ti.fontEngine); - } else if (matrix.type() < QTransform::TxProject) { + } else if (matrix.type() < QTransform::TxProject + && ti.fontEngine->supportsTransformation(matrix)) { bool invertible; QTransform invMat = matrix.inverted(&invertible); if (!invertible) diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index e42b70427c..d950c4e45f 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -5727,17 +5727,20 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText staticText_d->needsRelayout = true; } - // If we don't have an extended paint engine, or if the painter is projected, - // we go through standard code path - if (d->extended == 0 || !d->state->matrix.isAffine()) { - staticText_d->paintText(topLeftPosition, this); - return; - } - QFontEngine *fe = staticText_d->font.d->engineForScript(QChar::Script_Common); if (fe->type() == QFontEngine::Multi) fe = static_cast<QFontEngineMulti *>(fe)->engine(0); + // If we don't have an extended paint engine, if the painter is projected, + // or if the font engine does not support the matrix, we go through standard + // code path + if (d->extended == 0 + || !d->state->matrix.isAffine() + || !fe->supportsTransformation(d->state->matrix)) { + staticText_d->paintText(topLeftPosition, this); + return; + } + bool engineRequiresPretransform = d->extended->requiresPretransformedGlyphPositions(fe, d->state->matrix); if (staticText_d->untransformedCoordinates && engineRequiresPretransform) { // The coordinates are untransformed, and the engine can't deal with that diff --git a/src/gui/painting/qrgb.h b/src/gui/painting/qrgb.h index d7a01840e8..3c2bc5b97a 100644 --- a/src/gui/painting/qrgb.h +++ b/src/gui/painting/qrgb.h @@ -52,31 +52,31 @@ typedef unsigned int QRgb; // RGB triplet // non-namespaced Qt global variable const Q_DECL_UNUSED QRgb RGB_MASK = 0x00ffffff; // masks RGB values -inline int qRed(QRgb rgb) // get red part of RGB +inline Q_DECL_CONSTEXPR int qRed(QRgb rgb) // get red part of RGB { return ((rgb >> 16) & 0xff); } -inline int qGreen(QRgb rgb) // get green part of RGB +inline Q_DECL_CONSTEXPR int qGreen(QRgb rgb) // get green part of RGB { return ((rgb >> 8) & 0xff); } -inline int qBlue(QRgb rgb) // get blue part of RGB +inline Q_DECL_CONSTEXPR int qBlue(QRgb rgb) // get blue part of RGB { return (rgb & 0xff); } -inline int qAlpha(QRgb rgb) // get alpha part of RGBA +inline Q_DECL_CONSTEXPR int qAlpha(QRgb rgb) // get alpha part of RGBA { return rgb >> 24; } -inline QRgb qRgb(int r, int g, int b)// set RGB value +inline Q_DECL_CONSTEXPR QRgb qRgb(int r, int g, int b)// set RGB value { return (0xffu << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); } -inline QRgb qRgba(int r, int g, int b, int a)// set RGBA value +inline Q_DECL_CONSTEXPR QRgb qRgba(int r, int g, int b, int a)// set RGBA value { return ((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); } -inline int qGray(int r, int g, int b)// convert R,G,B to gray 0..255 +inline Q_DECL_CONSTEXPR int qGray(int r, int g, int b)// convert R,G,B to gray 0..255 { return (r*11+g*16+b*5)/32; } -inline int qGray(QRgb rgb) // convert RGB to gray 0..255 +inline Q_DECL_CONSTEXPR int qGray(QRgb rgb) // convert RGB to gray 0..255 { return qGray(qRed(rgb), qGreen(rgb), qBlue(rgb)); } -inline bool qIsGray(QRgb rgb) +inline Q_DECL_CONSTEXPR bool qIsGray(QRgb rgb) { return qRed(rgb) == qGreen(rgb) && qRed(rgb) == qBlue(rgb); } QT_END_NAMESPACE |