我想使用QT5.4创建一个窗口,并使用普通的OpenGL函数呈现该窗口中的一些内容。在过去的几天里,我读了很多关于Qt类和如何初始化OpenGL等等的文章。我认为,我必须处理的主要类是QOpenGLWindow或QOpenGLWidget,但也有QSurface和其他一些类。现在,我非常不确定下一步要做什么,以及以后使用普通的OpenGL函数应该使用哪个类。有人能更清楚地向我解释我要做什么来设置一个Qt,在其中我可以使用普通的OpenGL吗?
我提出的其他一些问题是:
编辑:我和一位同事讨论了这个问题,我们唯一的结论是使用屏幕外渲染。有人知道另一个解决办法吗?
发布于 2015-06-30 19:01:58
Qt在什么时候创建一个普通的OpenGL上下文?我必须使用QOpenGLContext吗?
在文档化的地方(例如,创建QOpenGLWidget或QOpenGLWindow将自动创建上下文),或者您可以通过创建QOpenGLContext对象在任何时候手动创建上下文。
QSurface和QOpenGLWindow到底有什么区别?在QOpenGLWindow示例中,使用了两个类。
QSurface是表示“可绘制曲面”(屏幕上或屏幕外)的基类。QWindow是它的屏幕上实现(表示顶层窗口),因此它继承了QSurface。您可以通过使用QWindow或使用基于CPU的栅格器绘制OpenGL .
最后,QOpenGLWindow是一个QWindow子类,它通过自动创建和管理OpenGL上下文(通过QOpenGLContext)、具有可选的部分更新策略(通过FBO的使用)等,提供了一些额外的功能和方便。
除了这些qt以外,还可以使用glew吗?下面是一些关于用qt建立glew的问题,但我认为我没有真正理解为什么需要glew。
Qt并不妨碍您的方式,。而且它不会以任何方式改变您对OpenGL的使用。只需使用Qt创建窗口和上下文(以完全跨平台的方式),就可以使用GLEW (解析OpenGL函数指针、扩展等)。或者任何第三方OpenGL抽象。
https://stackoverflow.com/questions/31139270
复制相似问题