使用QOpenGLWidget优于普通QWidget的好处

时间:2016-07-05 13:29:02

标签: qt opengl

自Qt 5.4版本开始,引入了QOpenGLWidget以启用OpenGL渲染功能。

除了调用OpenGL API之外,QOpenGLWidget还可以用作普通的QWidget,其中使用了QPainter。

所以我想知道,如果我不打算直接调用任何OpenGL API来渲染我的小部件,但只有QPainter API,使用QOpenGLWidget而不是QWidget还有什么(性能可能)好处?

1 个答案:

答案 0 :(得分:2)

QOpenGLWidget,当使用QPainter直接绘制时,使用OpenGL完成所有绘画 - 这是其两个主要目的之一。在QPainter上使用QOpenGLWidget,Qt正在将绘制器API转换为GL状态设置和绘制调用。如果您有一些OpenGL背景并使用Qt的调试版本,您可以查看源代码并查看Qt如何翻译您的调用,以便您可以以有效映射到OpenGL的方式发出您的画家调用。状态更改很昂贵,因此请确保批处理使用相同笔/画笔等的操作。绘画由QOpenGL2PaintEngineEx完成。