diff options
author | Gunnar Sletta <gunnar.sletta@nokia.com> | 2012-02-08 08:09:11 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-09 10:57:21 +0100 |
commit | 6c041f2122920307a2506067fdf64f65c614fbf7 (patch) | |
tree | 5e257977d83850c622598faeca203960a5c01b4d /src/quick | |
parent | 8550ed69156f0472450fd11aabcaa5d4dcc676db (diff) |
Pass the QQuickCanvas to texture factories.
This makes it a lot more convenient as we then have direct access to the
GL context, createTexture(), invalidation signal and more.
Change-Id: I114514d1379c4d0efcc35c512fa2b485da3438b0
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickborderimage.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickimage.cpp | 4 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgcontext.cpp | 4 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgcontext_p.h | 4 | ||||
-rw-r--r-- | src/quick/util/qdeclarativepixmapcache.cpp | 2 | ||||
-rw-r--r-- | src/quick/util/qdeclarativepixmapcache_p.h | 2 |
6 files changed, 9 insertions, 9 deletions
diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp index 03d3d53352..67b5cdf737 100644 --- a/src/quick/items/qquickborderimage.cpp +++ b/src/quick/items/qquickborderimage.cpp @@ -552,7 +552,7 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat { Q_D(QQuickBorderImage); - QSGTexture *texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory()); + QSGTexture *texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory(), canvas()); if (!texture || width() <= 0 || height() <= 0) { delete oldNode; diff --git a/src/quick/items/qquickimage.cpp b/src/quick/items/qquickimage.cpp index 901fded3d2..9af3a7e3ba 100644 --- a/src/quick/items/qquickimage.cpp +++ b/src/quick/items/qquickimage.cpp @@ -544,7 +544,7 @@ QSGTextureProvider *QQuickImage::textureProvider() const QQuickImagePrivate *dd = const_cast<QQuickImagePrivate *>(d); dd->provider = new QQuickImageTextureProvider; dd->provider->m_smooth = d->smooth; - dd->provider->m_texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory()); + dd->provider->m_texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory(), canvas()); } return d->provider; @@ -554,7 +554,7 @@ QSGNode *QQuickImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) { Q_D(QQuickImage); - QSGTexture *texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory()); + QSGTexture *texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory(), canvas()); // Copy over the current texture state into the texture provider... if (d->provider) { diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp index 1f26e57fa5..6817ad8862 100644 --- a/src/quick/scenegraph/qsgcontext.cpp +++ b/src/quick/scenegraph/qsgcontext.cpp @@ -159,7 +159,7 @@ void QSGContext::invalidate() } -QSGTexture *QSGContext::textureForFactory(QDeclarativeTextureFactory *factory) +QSGTexture *QSGContext::textureForFactory(QDeclarativeTextureFactory *factory, QQuickCanvas *canvas) { Q_D(QSGContext); if (!factory) @@ -170,7 +170,7 @@ QSGTexture *QSGContext::textureForFactory(QDeclarativeTextureFactory *factory) if (QDeclarativeDefaultTextureFactory *dtf = qobject_cast<QDeclarativeDefaultTextureFactory *>(factory)) texture = createTexture(dtf->image()); else - texture = factory->createTexture(); + texture = factory->createTexture(canvas); d->textures.insert(factory, texture); connect(factory, SIGNAL(destroyed(QObject *)), this, SLOT(textureFactoryDestroyed(QObject *))); } diff --git a/src/quick/scenegraph/qsgcontext_p.h b/src/quick/scenegraph/qsgcontext_p.h index 84c293c107..7fa3838db9 100644 --- a/src/quick/scenegraph/qsgcontext_p.h +++ b/src/quick/scenegraph/qsgcontext_p.h @@ -63,7 +63,7 @@ class QSGImageNode; class QSGGlyphNode; class QSGRenderer; class QSGDistanceFieldGlyphCache; - +class QQuickCanvas; class QSGTexture; class QSGMaterial; class QSGMaterialShader; @@ -106,7 +106,7 @@ public: virtual QSurfaceFormat defaultSurfaceFormat() const; - QSGTexture *textureForFactory(QDeclarativeTextureFactory *factory); + QSGTexture *textureForFactory(QDeclarativeTextureFactory *factory, QQuickCanvas *canvas); static QSGContext *createDefaultContext(); diff --git a/src/quick/util/qdeclarativepixmapcache.cpp b/src/quick/util/qdeclarativepixmapcache.cpp index 80359231d3..3670c58662 100644 --- a/src/quick/util/qdeclarativepixmapcache.cpp +++ b/src/quick/util/qdeclarativepixmapcache.cpp @@ -76,7 +76,7 @@ QT_BEGIN_NAMESPACE // The cache limit describes the maximum "junk" in the cache. static int cache_limit = 2048 * 1024; // 2048 KB cache limit for embedded in qpixmapcache.cpp -QSGTexture *QDeclarativeDefaultTextureFactory::createTexture() const +QSGTexture *QDeclarativeDefaultTextureFactory::createTexture(QQuickCanvas *) const { QSGPlainTexture *t = new QSGPlainTexture(); t->setImage(im); diff --git a/src/quick/util/qdeclarativepixmapcache_p.h b/src/quick/util/qdeclarativepixmapcache_p.h index 7b3df977e5..19c3a5264f 100644 --- a/src/quick/util/qdeclarativepixmapcache_p.h +++ b/src/quick/util/qdeclarativepixmapcache_p.h @@ -68,7 +68,7 @@ public: { } - QSGTexture *createTexture() const; + QSGTexture *createTexture(QQuickCanvas *canvas) const; QSize textureSize() const { return im.size(); } int textureByteCount() const { return im.byteCount(); } QImage image() const { return im; } |