aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@digia.com>2013-03-20 15:41:44 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-02 18:48:49 +0200
commitaa2475b25d08d1c4575b879aa1d51ee91ed8b5c4 (patch)
treea2fbc874578e74eee59c05b4a685a3a427003524
parentcedd342523e986028b8b4799cd564cd9307ebe12 (diff)
Use distance fields for text on retina displays
Change-Id: I6d3f3e7e4813155f2abb3edc51b145fb709c485b Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
-rw-r--r--src/quick/items/qquicktext.cpp4
-rw-r--r--src/quick/items/qquicktextedit.cpp6
-rw-r--r--src/quick/items/qquicktextinput.cpp4
3 files changed, 10 insertions, 4 deletions
diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp
index 917eaeadd8..9a90b408c3 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<QQuickTextNode *>(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 cf20b1d4e7..506b4caa52 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 58cc68495c..52f991b475 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());