summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2022-06-10 21:08:56 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2022-06-13 08:12:39 +0000
commit13c1b6f2373f3da6198e1111a96f5aee1036023a (patch)
treed30820d1218d6d522f8de2027db3350a241c4d30
parentdedbbc75b564b0a93c89688d76a7cab6dbc06046 (diff)
downloadqt-creator-13c1b6f2373f3da6198e1111a96f5aee1036023a.tar.gz
QmlDesigner: Do not apply smooth rendering if root is a 3D node
Task-number: QDS-7136 Change-Id: I5260153b8d6131160a8d4b67418e81c6f6e4d862 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
index e7a98b7427..3ccd6c60dc 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp
@@ -407,8 +407,6 @@ QImage Qt5NodeInstanceServer::grabItem(QQuickItem *item)
const bool renderEffects = qEnvironmentVariableIsSet("QMLPUPPET_RENDER_EFFECTS");
const bool smoothRendering = qEnvironmentVariableIsSet("QMLPUPPET_SMOOTH_RENDERING");
- int scaleFactor = smoothRendering ? 2 : 1;
-
if (renderEffects) {
if (parentEffectItem(item))
return renderImage;
@@ -430,17 +428,20 @@ QImage Qt5NodeInstanceServer::grabItem(QQuickItem *item)
ServerNodeInstance instance = instanceForObject(item);
+ const bool rootIs3DObject = rootIsRenderable3DObject();
+
// Setting layer enabled to false messes up the bounding rect.
// Therefore we calculate it upfront.
QRectF renderBoundingRect;
if (instance.isValid())
renderBoundingRect = instance.boundingRect();
-
- else if (rootIsRenderable3DObject())
+ else if (rootIs3DObject)
renderBoundingRect = item->boundingRect();
else
renderBoundingRect = ServerNodeInstance::effectAdjustedBoundingRect(item);
+ const int scaleFactor = (smoothRendering && !rootIs3DObject) ? 2 : 1;
+
// Hide immediate children that have instances and are QQuickItems so we get only
// the parent item's content, as compositing is handled on creator side.
QSet<QQuickItem *> layerChildren;
@@ -521,7 +522,6 @@ QImage Qt5NodeInstanceServer::grabItem(QQuickItem *item)
if (!isLayerEnabled(pItem))
pItem->derefFromEffectItem(false);
-
#else
Q_UNUSED(item)
#endif