如何在linux上为多线程创建第二个OpenGL上下文?

时间:2018-01-11 03:57:19

标签: multithreading opengl graphics glfw

我正在使用GLFW来创建我的窗口,而我正在使用OpenGL 4.5。

创建第二个OpenGL上下文与主线程进行多线程共享的第二个OpenGL上下文(如果可能)是什么(如果可能的话)(即每个线程一个上下文)。

1 个答案:

答案 0 :(得分:1)

我不知道这种方法是否足够OS操作系统,但在我的应用程序中,我只是使用另一个隐藏窗口:

//'pWindow' is the main GL context here...
glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
pGLctx[0] = glfwCreateWindow(sw, sh, "slave0", NULL, pWindow);

glfwMakeContextCurrent(pGLctx[0]); //... to make it current in calling thread...

这对我有用。

我必须在这里说,一般来说渲染和多线程(在CPU上)可能是一个需要处理的噩梦,因此确保完全需要它是至关重要的。