如果我有两个opengl呈现线程,每个线程都有一个设置其上下文的模式,在一个固定的框架中进行绘图。会有比赛吗?
我担心会发生以下情况:
反过来,两个线程都绘制第二个线程的上下文。
我是否应该在设置呈现上下文时使用锁,并绘制以确保操作不干扰其他呈现线程?
发布于 2017-12-26 21:39:04
只要每个线程都有自己的上下文,就可以安全地绘制两个线程。
只有当您想要在线程之间共享单个上下文时,您才必须确保上下文一次只在单个线程中当前。
文档 of wglMakeCurrent()设置了以下规则:
线程可以有一个当前呈现上下文。进程可以通过多线程具有多个呈现上下文。 线程必须在调用任何OpenGL函数之前设置当前呈现上下文。否则,所有OpenGL调用都会被忽略。 呈现上下文一次只能更新到一个线程。不能使呈现上下文当前到多个线程。 应用程序可以通过使不同的呈现上下文流到不同的线程来执行多线程绘图,为每个线程提供自己的呈现上下文和设备上下文。
https://stackoverflow.com/questions/47983823
复制相似问题