OpenGL 和线程

发布于 2024-10-10 06:30:58 字数 125 浏览 2 评论 0原文

众所周知,OpenGL 驱动程序通常不支持多线程。 然而,是否必须处理主线程(例如 SDL) 调出 GL 上下文?如果一个线程产生一个线程并且从那时起 从那里发送 OpenGL 命令安全吗?或者有没有 仅限于启动 GL 的主线程 语境?

It's known that OpenGL drivers usually don't tolerate [multi]threading.
However, does one have to deal with the main thread (of e.g. SDL) that
brought up a GL context? If one spawns a thread and from then on only
from there dispatches OpenGL commands will it be safe? Or does it have
to be restricted to the main thread that brought up the GL
context?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盗琴音 2024-10-17 06:30:58

您需要将 OpenGL 上下文设置为要使用它的线程上的当前上下文,并且上下文一次只能在一个线程上设置为当前上下文。因此,如果将其设为当前上下文,则创建上下文并从另一个线程使用它就可以了。

对于使用 OpenGL 的多线程,您需要多个 OpenGL 上下文,每个线程一个。并且您可以在 OpenGL 上下文之间共享资源。

You need to make the OpenGL context current on the thread you want to use it, and a context can be made current only on one thread at a time. So creating a context and using it from another thread is fine if you make it current.

For multiple threads using OpenGL, you need multiple OpenGL contexts, one for each thread. And you can share resources between OpenGL contexts.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文