在iOS 7.1(引入了EAGLContext
multiThreaded
)上,我在" OpenGL Thread Conflict Detected
"上遇到很多错误。
我已经在上下文中设置了multiThreaded = YES
,但仍然收到错误。这很奇怪,因为我输出了很多相同的错误:
OpenGL Thread Conflict Detected
0x17022cd40
我认为十六进制是线程 ID - 它似乎是一致的。关于为什么我输出此错误的任何想法?
OpenGL不支持(或者至少在非常有限的场景中支持它,而不是在渲染部分)多线程。
它根本不支持它。
我不知道您的特定用法或iPhone实现,但库本身不支持它。
试着看这里。
http://www.equalizergraphics.com/documentation/parallelOpenGLFAQ.html
如果你想进行多线程,根据我的经验,就是让一个线程处理OpenGL库/渲染,以及一个专门用于不同范围的线程(路径查找,AI,碰撞检测,你的名字)。
我希望这有所帮助。
干杯毛里齐奥