aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-10-05 21:50:35 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-10-09 15:13:39 +0000
commit29c833d54f93bc3443e055d2f958589f03463057 (patch)
treef8fae14c6aa49686f321b4204db7069f0649373f /share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
parent2fe99cef9fc6b43203c65d4b753366accd7b7b51 (diff)
QmlDesigner: Implement different render path for Qt 6
When building with Qt 6 or if qmlpuppet_unifiedRenderPath is set in the environment we switch to a different render path. In this case we use QQuickWindow::grabWindow() and render the root item. No composition is done in the Qt Creator process anymore. This is a similar approach we already take for the 3D view. Performance is acceptable and we fix rendering issues related to effects and layers. Change-Id: Ic963eca047e0bf16ca3a099ec94658ae2af0fb63 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
index f42e45a8ff..2c68fe7974 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
@@ -45,6 +45,7 @@ public:
static Pointer create(QObject *objectToBeWrapped);
static void createEffectItem(bool createEffectItem);
+ static void enableUnifiedRenderPath(bool createEffectItem);
void initialize(const ObjectNodeInstance::Pointer &objectNodeInstance,
InstanceContainer::NodeFlags flags) override;
@@ -70,6 +71,8 @@ public:
QImage renderImage() const override;
QImage renderPreviewImage(const QSize &previewImageSize) const override;
+ QSharedPointer<QQuickItemGrabResult> createGrabResult() const override;
+
void updateAllDirtyNodesRecursive() override;
@@ -98,6 +101,9 @@ public:
QList<QQuickItem*> allItemsRecursive() const override;
QStringList allStates() const override;
+ static void updateDirtyNode(QQuickItem *item);
+ static bool unifiedRenderPath();
+
protected:
explicit QuickItemNodeInstance(QQuickItem*);
QQuickItem *quickItem() const;
@@ -118,6 +124,7 @@ protected:
double x() const;
double y() const;
+ bool checkIfRefFromEffect(qint32 id);
private: //variables
QPointer<QQuickItem> m_contentItem;
@@ -131,6 +138,7 @@ private: //variables
double m_width;
double m_height;
static bool s_createEffectItem;
+ static bool s_unifiedRenderPath;
};
} // namespace Internal