qml+opengl作视频渲染时出现问题,所以的界面不断被绘制.

qq_36756931 2017-03-17 02:38:14
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);
...全文
328 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,202

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧