创建虚拟QOpenGLWidget会影响MacOS上Qt 5.8和5.9中的QPainter性能

时间:2017-06-15 12:25:21

标签: macos qt opengl qpainter

我发现如果我(在进行任何QPainter绘图之前在我的小部件中的某个地方)运行以下代码:

if (!QOpenGLContext::currentContext())
{
  QOpenGLWidget * open_gl_w = new QOpenGLWidget(this);

  QSurfaceFormat format;
  format.setSamples(5);
  open_gl_w->setFormat(format);
  open_gl_w->setUpdateBehavior(QOpenGLWidget::PartialUpdate);

  open_gl_w->setGeometry(0, 0, 20, 20);
  open_gl_w->show();

  delete open_gl_w;
}

然后以某种方式跟随QPainter(不是OpenGL,正常)的绘图性能显着增加。就像它绘制相对复杂的场景要快几倍于没有OpenGL引擎的奇怪初始化。

我应该补充说它只发生一次:下次运行代码时,currentContext()返回true。

当然我喜欢这个结果,但我也想知道发生了什么。

0 个答案:

没有答案