diff options
Diffstat (limited to 'src/quick/items/qquickborderimage.cpp')
-rw-r--r-- | src/quick/items/qquickborderimage.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp index 9fc9752707..0bed5e96a2 100644 --- a/src/quick/items/qquickborderimage.cpp +++ b/src/quick/items/qquickborderimage.cpp @@ -301,7 +301,7 @@ void QQuickBorderImage::load() d->oldSourceSize = sourceSize(); emit sourceSizeChanged(); } - update(); + pixmapChange(); return; } else { if (d->url.path().endsWith(QLatin1String("sci"))) { @@ -509,7 +509,7 @@ void QQuickBorderImage::requestFinished() emit sourceSizeChanged(); } - update(); + pixmapChange(); } #define BORDERIMAGE_MAX_REDIRECT 16 @@ -551,7 +551,7 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat { Q_D(QQuickBorderImage); - QSGTexture *texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory(), window()); + QSGTexture *texture = d->sceneGraphRenderContext()->textureForFactory(d->pix.textureFactory(), window()); if (!texture || width() <= 0 || height() <= 0) { delete oldNode; @@ -561,6 +561,7 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat QSGImageNode *node = static_cast<QSGImageNode *>(oldNode); bool updatePixmap = d->pixmapChanged; + d->pixmapChanged = false; if (!node) { node = d->sceneGraphContext()->createImageNode(); updatePixmap = true; @@ -634,10 +635,7 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat void QQuickBorderImage::pixmapChange() { Q_D(QQuickBorderImage); - d->pixmapChanged = true; - - // When the pixmap changes, such as being deleted, we need to update the textures update(); } |