hequnshan |
2017-03-21 13:49 |
qml中opengl渲染yuv视频时,界面上的字体全变黑,图标也变黑了,通过动态创建的新界面上的字体也会变黑
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); 这是渲染部分的代码,程序就是参照qt自带的例子修改的。
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);
图中黑色的部分原本时字体,但是不断被绘制,导致越来越黑。放在界面上的图标也是一样子的。而且此时通过动态创建的界面上面的按钮和文字也是一样的效果,哪位大神知道怎么解决阿,万分感谢。我的QQ:978097912
|
|