void RenderingThread::fixTextureEnable() { // restore texture units enable state for (unsigned int i=0; i<m_backendCaps.maxTextureUnits; i++) { m_glActiveTexture(GL_TEXTURE0 + i); if (m_currentContext->isTex2DEnable(i)) { m_glEnable(GL_TEXTURE_2D); } else { m_glDisable(GL_TEXTURE_2D); } m_glClientActiveTexture(GL_TEXTURE0 + i); if (m_currentContext->getClientState(GL_TEXTURE_COORD_ARRAY, i)) { m_glEnableClientState(GL_TEXTURE_COORD_ARRAY); } else { m_glDisableClientState(GL_TEXTURE_COORD_ARRAY); } } // restore current active texture m_glActiveTexture(m_currentContext->getActiveTexture()); m_glClientActiveTexture(m_currentContext->getClientActiveTexture()); // restore other client state enable bits if (m_currentContext->getClientState(GL_VERTEX_ARRAY, 0)) { m_glEnableClientState(GL_VERTEX_ARRAY); } else { m_glDisableClientState(GL_VERTEX_ARRAY); } if (m_currentContext->getClientState(GL_NORMAL_ARRAY, 0)) { m_glEnableClientState(GL_NORMAL_ARRAY); } else { m_glDisableClientState(GL_NORMAL_ARRAY); } if (m_currentContext->getClientState(GL_COLOR_ARRAY, 0)) { m_glEnableClientState(GL_COLOR_ARRAY); } else { m_glDisableClientState(GL_COLOR_ARRAY); } if (m_currentContext->getClientState(GL_POINT_SIZE_ARRAY_OES, 0)) { m_glEnableClientState(GL_POINT_SIZE_ARRAY_OES); } else { m_glDisableClientState(GL_POINT_SIZE_ARRAY_OES); } }
void UIOpenGLTextures::ActiveTexture(int ActiveTexture) { if (m_activeTexture != ActiveTexture) { m_glActiveTexture(ActiveTexture); m_activeTexture = ActiveTexture; } }