我正在尝试在同一个程序上设置多个OpenGL(3.3)窗口。我创建了2个窗口,第二个窗口具有第一个窗口的共享上下文(使用hglrc [i] = wglCreateContextAttribsARB(hdc [n_windows],hglrc [0],ctxattribs),而第一个窗口有0而不是hglrc [ 0]),有一个简单的循环:
for(unsigned i = 0; i < n_windows; ++i)
{
wglMakeCurrent(hdc[i], hglrc[i]);
glClearColor((float)rand() / RAND_MAX, (float)rand() / RAND_MAX, (float)rand() / RAND_MAX, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
SwapBuffers(hdc[i]);
}
但是只有一个窗口渲染,当我将窗口移动到另一个屏幕时,现在渲染的窗口会渲染,而另一个窗口会停止渲染。
这是我第一次尝试使用共享上下文在同一个应用程序上打开几个OpenGL窗口,所以我可能做错了什么。我的代码与一个窗口完美配合,我忠实的旧gDEBugger没有显示任何错误。关于我可能做错什么的任何想法?