![](/img/trans.png)
[英]How to get string representation of common Qt5 types like QOpenGLContext?
[英]How to make QOpenGLContext current without surface in Qt5?
我正在开发一个项目,该项目将使用 OpenCL 渲染图形以在QOpenGLWidget
显示。 该建议的方法来做到这一点似乎是创建第二QOpenGLContext
了一个已经存在于身边QOpenGLWidget
,然后创建一个线程,其中该辅环境可以用的OpenCL代码住在一起。
这样 Qt 就可以像往常一样在主线程中运行 eventloop。 每当QOpenGLWidget
决定绘制时,它都会简单地从第二个线程中准备的缓冲区中获取数据,该缓冲区由辅助上下文和在那里设置的 OpenCL 互操作。
这一切在纸面上听起来都很棒,但我在让它工作时遇到了一些问题。 我的问题是关于如何使线程中的辅助QOpenGLContext
“当前”。 因为QOpenGLContext::makeCurrent()
将强制QSurface
作为参数,而我唯一拥有的表面是我的QOpenGLWidget
可用的QOpenGLWidget
,但在辅助线程中使用它不起作用。 我收到以下错误:
无法在不同的线程中使 QOpenGLContext 成为当前
那么我应该使用什么表面? 或者,有什么我错过了,或者应该做不同的事情?
您可以为此目的创建和使用QOffscreenSurface 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.