Change the order textures are bound.
authorMichael Goddard <michael.goddard@nokia.com>
Tue, 8 Nov 2011 06:56:12 +0000 (16:56 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 8 Nov 2011 07:06:50 +0000 (08:06 +0100)
Leave texture unit 0 active at the end, since the active texture unit
is not restored by SG itself.

Change-Id: I4970a955fea5c9342cc93c1d1b07ffbfb71e5f04
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
src/imports/multimedia/qsgvideonode_i420.cpp

index 11135c14bc4bed6e3a77d12ac1624954b92e5ffa..e71ea6ec79acdad27cae5ba8b232011c26905ee2 100644 (file)
@@ -278,12 +278,12 @@ void QSGVideoMaterialShader_YUV420::updateState(const RenderState &state,
     program()->setUniformValue(m_id_uTexture, 1);
     program()->setUniformValue(m_id_vTexture, 2);
 
-    functions->glActiveTexture(GL_TEXTURE0);
-    glBindTexture(GL_TEXTURE_2D, mat->idY);
     functions->glActiveTexture(GL_TEXTURE1);
     glBindTexture(GL_TEXTURE_2D, mat->idU);
     functions->glActiveTexture(GL_TEXTURE2);
     glBindTexture(GL_TEXTURE_2D, mat->idV);
+    functions->glActiveTexture(GL_TEXTURE0); // Finish with 0 as default texture unit
+    glBindTexture(GL_TEXTURE_2D, mat->idY);
 
     program()->setUniformValue(m_id_colorMatrix, mat->colorMatrix);
     if (state.isOpacityDirty()) {