【问题标题】:Qt QPainter in paintEvent eliminates the graphic drawn with paintGLpaintEvent中的Qt QPainter消除了用paintGL绘制的图形
【发布时间】:2012-07-17 21:31:11
【问题描述】:

我有以下代码

void QMyWidget::paintEvent(QPaintEvent *event)
{

    updateGL(); // This calls for initializeGL and then paintGL and draws a nice openGL 3D scene


    QPainter painter(this); 
    // Draw something with QPainter..
}

问题在于QPainter 行多次调用initializeGL 和paintGL 并最终在我的OpenGL 渲染场景上创建一个空白/灰色区域。如果我尝试使用QPainter 绘制类似drawText 的东西,显示了文本,但文本的背景是一个灰色矩形,完全覆盖了我的 OpenGL 绘制场景。

这是怎么回事?

【问题讨论】:

  • 如果你调用“updateGL();”会发生什么在“QPainterpainter(this);”之后?
  • 有一个闪烁,我可以看到我的 3D 场景渲染,然后整个场景变白,QPainter 的内容被渲染而不是 3D 场景
  • 提供附加信息:如果我使用 QPainter 画家; (没有选择设备)一切正常。似乎是 QPainter 画家(这个);在处理之前清除渲染的帧缓冲区
  • 恐怕有些 VBO/VAO 没有解绑或解绑太多次(而且搞砸了),有人可以告诉我如何解绑 VBO 和 VAO 吗?

标签: c++ qt opengl graphics qglwidget


【解决方案1】:

已解决:多通道渲染已停用,因此场景被多次渲染

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多