首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wglMakeCurrent、绘图和多线程是否会导致竞赛?

问wglMakeCurrent、绘图和多线程是否会导致竞赛?
EN

Stack Overflow用户
提问于 2017-12-26 21:21:11
回答 1查看 488关注 0票数 2

如果我有两个opengl呈现线程,每个线程都有一个设置其上下文的模式,在一个固定的框架中进行绘图。会有比赛吗?

我担心会发生以下情况:

  1. 线程1调用wglMakeCurrent
  2. 线程2调用wglMakeCurrent
  3. 线程2绘制
  4. 线程1绘制

反过来,两个线程都绘制第二个线程的上下文。

我是否应该在设置呈现上下文时使用锁,并绘制以确保操作不干扰其他呈现线程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-26 21:39:04

只要每个线程都有自己的上下文,就可以安全地绘制两个线程。

只有当您想要在线程之间共享单个上下文时,您才必须确保上下文一次只在单个线程中当前。

文档 of wglMakeCurrent()设置了以下规则:

线程可以有一个当前呈现上下文。进程可以通过多线程具有多个呈现上下文。 线程必须在调用任何OpenGL函数之前设置当前呈现上下文。否则,所有OpenGL调用都会被忽略。 呈现上下文一次只能更新到一个线程。不能使呈现上下文当前到多个线程。 应用程序可以通过使不同的呈现上下文流到不同的线程来执行多线程绘图,为每个线程提供自己的呈现上下文和设备上下文。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47983823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档