qml中opengl渲染yuv视频时,界面上的字体全变黑,按钮也不能用了,全部变黑。貌似被多重绘制

hequnshan 发布于 2017/03/22 18:11
阅读 414
收藏 0

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);

这是我渲染部分的代码,用了opengl渲染yuv数据,结果用qml画的界面上的文字全变黑了,按钮也变黑,貌似时被opengl多重绘制了,哪位指导一下啊?我的qq:978097912.

效果如上图,黑色部分本来应该时文字的,但是全变黑了。

加载中
返回顶部
顶部