aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/context2d/qquickcanvasitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/context2d/qquickcanvasitem.cpp')
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 783fedf9fc..7031294ecc 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -96,16 +96,6 @@ QQuickCanvasItemPrivate::~QQuickCanvasItemPrivate()
qDeleteAll(images);
}
-class QQuickCanvasItemCallback : public QQuickCanvasItemNode::Callback
-{
-public:
- QQuickCanvasItemCallback(QQuickCanvasItemPrivate *d):item(d) {}
- void process() const {
- // on SG render thread
- item->context->sync();
- }
- QQuickCanvasItemPrivate *item;
-};
/*!
\qmlclass Canvas QQuickCanvasItem
@@ -573,10 +563,11 @@ QSGNode *QQuickCanvasItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData
QQuickCanvasItemNode *node = static_cast<QQuickCanvasItemNode*>(oldNode);
if (!node) {
node = new QQuickCanvasItemNode;
- if (d->renderStrategy == QQuickCanvasItem::Cooperative)
- node->setCallback(new QQuickCanvasItemCallback(d));
}
+ if (d->renderStrategy == QQuickCanvasItem::Cooperative)
+ d->context->sync();
+
node->setTexture(d->context->texture());
node->setSize(d->canvasWindow.size());
node->update();