Change the order textures are bound.

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>
This commit is contained in:
Michael Goddard
2011-11-08 16:56:12 +10:00
committed by Qt by Nokia
parent 0a95ccb8f4
commit 9eeb1389f5

View File

@@ -278,12 +278,12 @@ void QSGVideoMaterialShader_YUV420::updateState(const RenderState &state,
program()->setUniformValue(m_id_uTexture, 1); program()->setUniformValue(m_id_uTexture, 1);
program()->setUniformValue(m_id_vTexture, 2); program()->setUniformValue(m_id_vTexture, 2);
functions->glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, mat->idY);
functions->glActiveTexture(GL_TEXTURE1); functions->glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, mat->idU); glBindTexture(GL_TEXTURE_2D, mat->idU);
functions->glActiveTexture(GL_TEXTURE2); functions->glActiveTexture(GL_TEXTURE2);
glBindTexture(GL_TEXTURE_2D, mat->idV); 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); program()->setUniformValue(m_id_colorMatrix, mat->colorMatrix);
if (state.isOpacityDirty()) { if (state.isOpacityDirty()) {