OpenGL和线程

j r*_*riv 4 opengl multithreading sdl

众所周知,OpenGL驱动程序通常不会容忍[多线程]线程.但是,是否必须处理带来GL上下文的主线程(例如SDL)?如果一个产生一个线程,然后从那里开始发送OpenGL命令会安全吗?或者它是否必须限制在提升GL上下文的主线程中?

Mat*_*gro 6

您需要在要使用它的线程上使OpenGL上下文最新,并且一次只能在一个线程上使上下文成为当前.因此,创建一个上下文并从另一个线程使用它是好的,如果你把它当前.

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