Make sure we update texture parameters when using atlas textures.
authorGunnar Sletta <gunnar.sletta@digia.com>
Fri, 6 Sep 2013 13:47:57 +0000 (15:47 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 9 Sep 2013 08:57:30 +0000 (10:57 +0200)
The QSGTexture class tracks filter and wrap states internally
and only updates when new states have been set. When atlas
textures are used, multiple QSGTexture instances share the
same OpenGL texture id and the state will get out of sync.

Change-Id: Iaf6ba9764a67acf25d0a6b0a2fb18170122e3325
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
src/quick/scenegraph/util/qsgtexture.cpp

index 6a6bcbf..c7bc8a4 100644 (file)
@@ -493,6 +493,8 @@ QSGTexture::WrapMode QSGTexture::verticalWrapMode() const
 void QSGTexture::updateBindOptions(bool force)
 {
     Q_D(QSGTexture);
+    force |= isAtlasTexture();
+
     if (force || d->filteringChanged) {
         bool linear = d->filterMode == Linear;
         GLint minFilter = linear ? GL_LINEAR : GL_NEAREST;