From: Gunnar Sletta Date: Wed, 20 Mar 2013 14:41:44 +0000 (+0100) Subject: Use distance fields for text on retina displays X-Git-Tag: upstream/5.2.1~810^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aa2475b25d08d1c4575b879aa1d51ee91ed8b5c4;p=platform%2Fupstream%2Fqtdeclarative.git Use distance fields for text on retina displays Change-Id: I6d3f3e7e4813155f2abb3edc51b145fb709c485b Reviewed-by: Morten Johan Sørvig --- diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp index 917eaea..9a90b40 100644 --- a/src/quick/items/qquicktext.cpp +++ b/src/quick/items/qquicktext.cpp @@ -312,6 +312,8 @@ qreal QQuickTextPrivate::getImplicitHeight() const not require advanced features such as transformation of the text. Using such features in combination with the NativeRendering render type will lend poor and sometimes pixelated results. + + On HighDpi "retina" displays this property is ignored and QtRendering is always used. */ QQuickText::RenderType QQuickText::renderType() const { @@ -2234,7 +2236,7 @@ QSGNode *QQuickText::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data node = static_cast(oldNode); } - node->setUseNativeRenderer(d->renderType == NativeRendering); + node->setUseNativeRenderer(d->renderType == NativeRendering && d->window->devicePixelRatio() <= 1); node->deleteContent(); node->setMatrix(QMatrix4x4()); diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index cf20b1d..506b4ca 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -368,6 +368,8 @@ void QQuickTextEdit::setTextFormat(TextFormat format) not require advanced features such as transformation of the text. Using such features in combination with the NativeRendering render type will lend poor and sometimes pixelated results. + + On HighDpi "retina" displays this property is ignored and QtRendering is always used. */ QQuickTextEdit::RenderType QQuickTextEdit::renderType() const { @@ -1741,7 +1743,7 @@ QSGNode *QQuickTextEdit::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData * QQuickTextNode *node = new QQuickTextNode(QQuickItemPrivate::get(this)->sceneGraphContext(), this); - node->setUseNativeRenderer(d->renderType == NativeRendering); + node->setUseNativeRenderer(d->renderType == NativeRendering && d->window->devicePixelRatio() <= 1); node->initEngine(d->color, d->selectedTextColor, d->selectionColor); @@ -1805,7 +1807,7 @@ QSGNode *QQuickTextEdit::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData * rootNode->appendChildNode(node); prevBlockStart = block.next().position(); node = new QQuickTextNode(QQuickItemPrivate::get(this)->sceneGraphContext(), this); - node->setUseNativeRenderer(d->renderType == NativeRendering); + node->setUseNativeRenderer(d->renderType == NativeRendering && d->window->devicePixelRatio() <= 1); node->initEngine(d->color, d->selectedTextColor, d->selectionColor); } } diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 58cc684..52f991b 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -153,6 +153,8 @@ void QQuickTextInput::setText(const QString &s) not require advanced features such as transformation of the text. Using such features in combination with the NativeRendering render type will lend poor and sometimes pixelated results. + + On HighDpi "retina" displays this property is ignored and QtRendering is always used. */ QQuickTextInput::RenderType QQuickTextInput::renderType() const { @@ -1836,7 +1838,7 @@ QSGNode *QQuickTextInput::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData } } } else { - node->setUseNativeRenderer(d->renderType == QQuickTextInput::NativeRendering); + node->setUseNativeRenderer(d->renderType == NativeRendering && d->window->devicePixelRatio() <= 1); node->deleteContent(); node->setMatrix(QMatrix4x4());