2014-03-06 41 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