查看完整版本: [-- qml中opengl渲染yuv视频时,界面上的字体全变黑,图标也变黑了,通过动态创建的新界面上的字体也会变黑 --]

QTCN开发网 -> Qt QML开发 -> qml中opengl渲染yuv视频时,界面上的字体全变黑,图标也变黑了,通过动态创建的新界面上的字体也会变黑 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

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

zhaojianjun 2017-06-06 12:56
解决了没有

jockeyliao 2017-06-08 17:27
QML里面渲染视频现在可以不需要直接使用opengl相关api了,使用VideoOutput,自己实现一个满足业务的source就可以了。


查看完整版本: [-- qml中opengl渲染yuv视频时,界面上的字体全变黑,图标也变黑了,通过动态创建的新界面上的字体也会变黑 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled