multithreading - OpenGL 和线程

标签 multithreading opengl sdl

众所周知,OpenGL 驱动程序通常不能容忍[多]线程。
但是,是否必须处理(例如 SDL)的主线程
提出了 GL 上下文?如果一个人产生一个线程,从那时起只有
从那里发送 OpenGL 命令会安全吗?或者它有
仅限于启动 GL 的主线程
语境?

最佳答案

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

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

关于multithreading - OpenGL 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567296/

相关文章:

c - Material 着色不起作用

c++ - 使用 glutPostRedisplay() 绘制锯齿线

javascript - 如何在 WebGl 中使用漫射照明进行 Gouraud 着色?

audio - Mix_Chunk 和 Mix_Music 有什么区别?

c - OpenGL 着色器编译代码位于何处?

android - 杀死线程

android - DB-Activity 架构和/或 Context 泄漏的 ContentProvider 解决方案

java - CompletableFuture 和 CountDownLatch 超时

C++线程死锁

c - SDL双重免费或损坏错误小代码段