众所周知,OpenGL驱动程序通常不支持多线程。但是,是否必须处理主线程(例如SDL的主线程)带来的GL上下文?如果一个线程被创建,并且从那时起只从那里分派OpenGL命令,那么它是安全的吗?还是必须限制在带来GL上下文的主线程中?
众所周知,OpenGL驱动程序通常不支持多线程。但是,是否必须处理主线程(例如SDL的主线程)带来的GL上下文?如果一个线程被创建,并且从那时起只从那里分派OpenGL命令,那么它是安全的吗?还是必须限制在带来GL上下文的主线程中?
您需要将OpenGL上下文设置为所需使用的线程的当前上下文,而且一次只能在一个线程上设置一个上下文。因此,如果将上下文创建并从另一个线程中使用它,只要将其设置为当前上下文,就可以了。
对于使用OpenGL的多个线程,您需要多个OpenGL上下文,每个线程一个。并且您可以在OpenGL上下文之间共享资源。