【发布时间】:2019-04-11 08:46:01
【问题描述】:
我看到很多关于如何在QOpenGLWidget 上并行使用带有着色器和QPainter 的OpenGL 的问题。例如Example 1、Example 2 和Example 3。
我经历了很多问题,当使用 QPainter、原生 OpenGL 代码和着色器时。有时只有 QPainter 的东西被渲染,有时只有存储在 VertexArrayObjects 中的东西被渲染,或者使用“旧方式”设置顶点的东西被渲染,glVertex() 被渲染。
我设法构建了一个非常小的解决方案,它只修改了 QPainter 的用法,以并行使用每 3 种绘图方法。
结果是,您可以在QOpenGLWidget 的paintGL() 管道中的任意位置使用QPainter 和着色器,而无需每次修改OpenGL 状态或使用@987654331 开始和结束nativePainting @。
【问题讨论】: