summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>2015-06-23 13:21:56 +0200
committerTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>2015-06-26 10:56:42 +0000
commitdc6191ccb4f03d33314981f71cd63e7aecabe8ef (patch)
tree63bfc53ffc3a9baf54520a674099f6074ad68a08
parent2d1189d9f281f1f78abed1a47939a4e2b5e747d7 (diff)
Treat color (ARGB) glyphs, e.g. Emoji, as having unreliable glyph outlines
This is used by the scene graph to automatically switch over from distance field text to native text rendering for the given glyph node, which allows mixing regular text with Emoji in e.g. a Text item without having to set renderType to Text.NativeRendering. Change-Id: I5d96d1dab329a975e3442284bf4c5a82174177c9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-rw-r--r--src/gui/text/qfontengine.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowsfontengine.cpp2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 87e6c30afe..6f5d178655 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -1344,13 +1344,13 @@ QByteArray QFontEngine::convertToPostscriptFontFamilyName(const QByteArray &fami
return f;
}
-/**
- * Some font engines like the windows font engine
- * can not reliable create outline paths
- */
+// Allow font engines (e.g. Windows) that can not reliably create
+// outline paths for distance-field rendering to switch the scene
+// graph over to native text rendering.
bool QFontEngine::hasUnreliableGlyphOutline() const
{
- return false;
+ // Color glyphs (Emoji) are generally not suited for outlining
+ return glyphFormat == QFontEngine::Format_ARGB;
}
QFixed QFontEngine::lastRightBearing(const QGlyphLayout &glyphs, bool round)
diff --git a/src/plugins/platforms/windows/qwindowsfontengine.cpp b/src/plugins/platforms/windows/qwindowsfontengine.cpp
index ef2ad110ca..16b9118e81 100644
--- a/src/plugins/platforms/windows/qwindowsfontengine.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontengine.cpp
@@ -671,7 +671,7 @@ void QWindowsFontEngine::getGlyphBearings(glyph_t glyph, qreal *leftBearing, qre
bool QWindowsFontEngine::hasUnreliableGlyphOutline() const
{
- return hasUnreliableOutline;
+ return hasUnreliableOutline || QFontEngine::hasUnreliableGlyphOutline();
}
qreal QWindowsFontEngine::minLeftBearing() const