2014-03-06 43 views
2

我想用两个带有SDL2的窗口来创建一个应用程序。为了使绘制过程更快,并且能够运行3D动画,我正在使用OpenGL。但是当我打开第二个窗口时,我怎么能说OpenGL(gl函数)在第二个窗口中绘制? 我搜索到libsdl维基,但无法找到任何东西。有两个窗口的SDL2和OpenGL函数

回答

5

您在寻找SDL_GL_MakeCurrent的功能。

使用此函数可以设置OpenGL上下文以渲染到OpenGL窗口。

例子:

SDL_GL_MakeCurrent(window, gl_context); 
// OpenGL functions will draw to window 
// ... 
SDL_GL_MakeCurrent(window2, gl_context); 
// OpenGL functions will draw to window2 
+0

想必你必须要更新视口呢?至少如果窗户的尺寸不同?也许这是有第二个环境而不是共享环境的原因? – xaxxon

+0

我相信它更像'SDL_GL_MakeCurrent(window1,context1);/* window1/context1 stuff */SDL_GL_MakeCurrent(window2,context2);/* window2/context2 stuff * /',其中您指定GL调用引用哪个窗口+上下文对,并且每个窗口都与其自己的GL上下文相关联。 – rsethc