diff options
Diffstat (limited to 'src/quick/items/qquickframebufferobject.cpp')
-rw-r--r-- | src/quick/items/qquickframebufferobject.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/quick/items/qquickframebufferobject.cpp b/src/quick/items/qquickframebufferobject.cpp index 10d281b7a1..4c43292f7c 100644 --- a/src/quick/items/qquickframebufferobject.cpp +++ b/src/quick/items/qquickframebufferobject.cpp @@ -235,8 +235,12 @@ QSGNode *QQuickFramebufferObject::updatePaintNode(QSGNode *node, UpdatePaintNode n->renderer->synchronize(this); + QSize minFboSize = d->sceneGraphContext()->minimumFBOSize(); + QSize desiredFboSize(qMax<int>(minFboSize.width(), width()), + qMax<int>(minFboSize.height(), height())); + if (n->fbo && (d->followsItemSize || n->invalidatePending)) { - if (n->fbo->width() != width() || n->fbo->height() != height()) { + if (n->fbo->size() != desiredFboSize) { delete n->fbo; n->fbo = 0; delete n->msDisplayFbo; @@ -245,10 +249,7 @@ QSGNode *QQuickFramebufferObject::updatePaintNode(QSGNode *node, UpdatePaintNode } if (!n->fbo) { - QSize minFboSize = d->sceneGraphContext()->minimumFBOSize(); - QSize fboSize(qMax<int>(minFboSize.width(), width()), - qMax<int>(minFboSize.height(), height())); - n->fbo = n->renderer->createFramebufferObject(fboSize); + n->fbo = n->renderer->createFramebufferObject(desiredFboSize); GLuint displayTexture = n->fbo->texture(); |