aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
index cfa1b1eac0..6e67d58b92 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
@@ -386,8 +386,14 @@ QImage QuickItemNodeInstance::renderImage() const
static double devicePixelRatio = qgetenv("FORMEDITOR_DEVICE_PIXEL_RATIO").toDouble();
size *= devicePixelRatio;
+ // Fake render loop signaling to update things like QML items as 3D textures
+ nodeInstanceServer()->quickView()->beforeSynchronizing();
+ nodeInstanceServer()->quickView()->beforeRendering();
+
QImage renderImage = designerSupport()->renderImageForItem(quickItem(), renderBoundingRect, size);
+ nodeInstanceServer()->quickView()->afterRendering();
+
renderImage.setDevicePixelRatio(devicePixelRatio);
return renderImage;
@@ -401,7 +407,15 @@ QImage QuickItemNodeInstance::renderPreviewImage(const QSize &previewImageSize)
static double devicePixelRatio = qgetenv("FORMEDITOR_DEVICE_PIXEL_RATIO").toDouble();
const QSize size = previewImageSize * devicePixelRatio;
if (quickItem()->isVisible()) {
- return designerSupport()->renderImageForItem(quickItem(), previewItemBoundingRect, size);
+ // Fake render loop signaling to update things like QML items as 3D textures
+ nodeInstanceServer()->quickView()->beforeSynchronizing();
+ nodeInstanceServer()->quickView()->beforeRendering();
+
+ QImage image = designerSupport()->renderImageForItem(quickItem(), previewItemBoundingRect, size);
+
+ nodeInstanceServer()->quickView()->afterRendering();
+
+ return image;
} else {
QImage transparentImage(size, QImage::Format_ARGB32_Premultiplied);
transparentImage.fill(Qt::transparent);