{
QSGRenderContext *sg = QQuickItemPrivate::get(m_ownerElement)->sceneGraphRenderContext();
QRawFont font = glyphs.rawFont();
- bool smoothScalable = QFontDatabase().isSmoothlyScalable(font.familyName(), font.styleName());
- bool preferNativeGlyphNode = m_useNativeRenderer || !smoothScalable;
+ bool preferNativeGlyphNode = m_useNativeRenderer;
+ if (!preferNativeGlyphNode) {
+ QRawFontPrivate *fontPriv = QRawFontPrivate::get(font);
+ if (fontPriv->fontEngine->hasUnreliableGlyphOutline())
+ preferNativeGlyphNode = true;
+ else
+ preferNativeGlyphNode = !QFontDatabase().isSmoothlyScalable(font.familyName(), font.styleName());
+ }
+
QSGGlyphNode *node = sg->sceneGraphContext()->createGlyphNode(sg, preferNativeGlyphNode);
node->setOwnerElement(m_ownerElement);