qml中opengl渲染yuv视频时,界面上的字体全变黑,图标也变黑了。
图中黑色的部分就是文字,但是全变黑了。paint中的代码:
glViewport(x,y,width,height);
//glEnable(GL_BLEND);
//glEnable(GL_TEXTURE_2D);
glClearDepth(1.0f);
// glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_LEQUAL);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, ytexture);
glTexImage2D ( GL_TEXTURE_2D, 0, GL_LUMINANCE, MAIN_TEXTURE_WIDTH, MAIN_TEXTURE_HEIGHT, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, dy);
m_program->setUniformValue(TextureID0, 0);
#if 1
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, utexture);
glTexImage2D ( GL_TEXTURE_2D, 0, GL_LUMINANCE, MAIN_TEXTURE_WIDTH/2, MAIN_TEXTURE_HEIGHT/2, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, u);
m_program->setUniformValue(TextureID1, 1);
glActiveTexture(GL_TEXTURE2);
glBindTexture(GL_TEXTURE_2D, vtexture);
glTexImage2D ( GL_TEXTURE_2D, 0, GL_LUMINANCE, MAIN_TEXTURE_WIDTH/2, MAIN_TEXTURE_HEIGHT/2, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, v);
m_program->setUniformValue(TextureID2, 2);
#endif
glDisable(GL_DEPTH_TEST);//should be put before glDrawArrays
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);