我一直在网上搜索,但找不到这个问题的可靠答案。
我有一个程序,它会旋转第二个线程。从第二个线程(它不是主线程),它打开一个GLFW窗口并执行所有的OpenGL调用。没有其他线程可以进行单个OpenGL调用。
在Mac OS X上这样可以吗?有些消息来源建议OS X只能在主线程中执行OpenGL,有些人认为情况并非如此,所以我很想知道。 (我自己没有Mac测试它。)
谢谢。
答案 0 :(得分:0)
这样可行,因为我在Mac上尝试过相同的操作。我也不明白它为什么不起作用。此外,为什么不试试呢?写一个渲染三角形或其他东西的测试代码应该很短。在处理多线程时,请务必小心竞争条件。
实际上,新的Graphics API依赖于这个漏洞,因为OpenGL会阻塞你的主线程,另一个可以处理数据,这会给你一些较短的每帧净时间。
结帐https://www.khronos.org/vulkan/。这个API依赖于这种并行化。