【发布时间】:2013-10-14 11:16:17
【问题描述】:
在线程中将着色器添加到 OpenGL 窗口时遇到问题。
代码在这里:https://github.com/odie42/qtopengl
它似乎加载了着色器等,但没有更新缓冲区或其他东西。我不知道为什么不显示着色器/几何图形。
// 编辑
我实际上找到了解决方案。如果有人感兴趣,我会上传工作代码。
【问题讨论】:
-
能否请您尝试缩小相关代码范围。如果人们不需要阅读大量代码,您可能会得到更多响应。
-
问题是,我不知道哪个代码是完全相关的。我不知道是否应用着色器/创建几何图形是问题,或者执行此操作的线程中是否存在问题
-
一般建议是将所有 OpenGL 功能保留在 1 个线程中。在线程之间共享上下文是在找麻烦。
-
我只是在主线程中创建上下文并将所有处理移至我的线程。
-
不行。所有 OpenGL 调用都有一个特定的隐式线程本地上下文。因此,如果不是很聪明,就不能跨线程共享上下文。因此,您可能只有 1 个 OpenGL 线程。