QT+OpenGL读取显示图片,OpenGL在QT里的刷新问题(好几篇)

GLuint readImage(char *filename)
{
    GLuint tex_id;
    GLint alignment;

    QImage tex, buf;
    buf.load(filename);

    tex = QGLWidget::convertToGLFormat( buf );

    glBindTexture( GL_TEXTURE_2D, tex_id );
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

    glGetIntegerv (GL_UNPACK_ALIGNMENT, &alignment);
    glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
    glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, tex.width(), tex.height(), 0,
        GL_RGBA, GL_UNSIGNED_BYTE, tex.bits() );
    glPixelStorei (GL_UNPACK_ALIGNMENT, alignment);

    return tex_id;
}

 

显示PNG透明,不显示BMP白边等方法参考前面两篇。

在QT界面的显示参考BMP那篇

参考http://www.qtforum.org/article/33724/creating-an-opengl-texture-from-qimage-with-a-transparent-background.html

http://stackoverflow.com/questions/5335218/using-qimage-with-opengl

 

2012/5/21

还是要多看书,前面一大堆读取绑定纹理的方式

现在就只要下面三句就行了

   //bindTexture() 绑定纹理
    GLuint texture = bindTexture(QPixmap(QString(FileNameImage)), GL_TEXTURE_2D);

      QRectF rect(0.0f,0.0f,0.2f,0.2f);
    drawTexture(rect,texture,GL_TEXTURE_2D);

效果没有前面的方式好,正在研究。

图片的显示,需要旋转一下glRotatef();

使用glBegin()glEnd()画的图形开始会显示,给图片加上拖动效果后,一移动图片,其他图形就会消失,不解;

http://blog.csdn.net/zmy3376365/article/details/7572303

 

参考http://www.cnblogs.com/dabaopku/archive/2011/11/14/2247721.html

在QGraphicsView的事件中,不论使用 update,repaint,抑或updateScence,resetCacheContent, 均不可以刷新界面

要调用 viewport 的update函数!!!

给GraphicsView设置这么一个属性setViewportUpdateMode(QGraphicsView::FullViewportUpdate);

例如:ui->graphicsView->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);

在需要的地方后面加一句update例如在GraphicsScene(继承自QGraphicsScene)中加update();

或着是GraphicsView(继承自QGraphicsView):   this->viewport()->update();

具体情况,具体分析

http://blog.csdn.net/zmy3376365/article/details/7572698

posted @ 2017-01-13 17:10  findumars  Views(4051)  Comments(0Edit  收藏  举报