从QGLWidget转移到QWindow
Moving from QGLWidget to QWindow
我有一些使用 Qt 4 的代码。我想将其迁移到Qt 5并切换到QOpenGL的东西。我不明白 void paintGL()
和 void initializeGL()
的代码需要在 QWindow 中去哪里。谁能帮我举个例子?
我创建了一个将QWindow与OpenGL一起使用的简单示例。
为了简化OpenGL的开发,我创建了一个抽象类GLWindow,其中包含initializeGL()
、paintGL()
和resizeGL(int w, int h)
的虚函数。我相信源代码显示了旧样式和新样式之间的关系。
此处提供了该示例:
https://github.com/mortennobel/QtOpenGLChapter/tree/master/OpenGL3xAlt
Qt至少有一个将小部件放在OpenGL场景上的例子(Overpainting)。 通过查看这一点,似乎最简单的方法是从QGLWidget
继承而不是QWidget
并覆盖用于初始化和绘制的相应虚函数。
将 QWindow 与 OpenGL 一起使用的标准示例是 qtbase/examples/opengl 中的 hellowindow。
初始化GL和paintGL没有直接的替代品。相反,您可以执行以下操作:
- 有一个表面类型为OpenGLSurface的QWindow。
- 创建具有匹配格式的 QOpenGLContext。
- 当窗口收到公开事件时,开始渲染(makeCurrent,您的GL调用,最后交换缓冲区)。
相关文章:
- 我是否需要在下一次转移时将所有权*转移回转移队列
- 如何将元素从向量转移到新数组?
- 为什么系统函数总是在C++中返回已转移的退出状态?
- C++:将 UDP 袜子转移到新位置
- 为什么最后一个推回向量的对象的字段会转移到向量的其他对象?
- 如何在MPI中将矩阵从一个进程转移到另一个进程
- 如何在 qt c++ 中更新 QWindow,文本不显示
- Qt将鼠标移动事件转移到新窗口
- 将进程的执行从线程1转移到线程2
- 如何在SOCI中注册数据库故障转移回调?
- 这个C++结构如何从函数转移到"你的"成员
- 如果A("whole")有一组B("parts"),如何同步"part" B从A "whole"到另一个A的转移?
- 将 ulong 从 c++ 转移到 c#
- C++将SDL_renderer转移到班级
- 将矩阵转移到阵列中
- 从Turbo转移到Code :: Blocks
- 如何将枯竭的健康转移到下一个循环中
- OPENCL-如何使辅助功能返回阵列并将内存的部分从恒定内存空间转移到私有
- 如何将所有权从一个共享指针向量转移到另一个向量?
- 从QGLWidget转移到QWindow