2
我想用兩個帶有SDL2的窗口來創建一個應用程序。爲了使繪製過程更快,並且能夠運行3D動畫,我正在使用OpenGL。但是當我打開第二個窗口時,我怎麼能說OpenGL(gl函數)在第二個窗口中繪製? 我搜索到libsdl維基,但無法找到任何東西。有兩個窗口的SDL2和OpenGL函數
我想用兩個帶有SDL2的窗口來創建一個應用程序。爲了使繪製過程更快,並且能夠運行3D動畫,我正在使用OpenGL。但是當我打開第二個窗口時,我怎麼能說OpenGL(gl函數)在第二個窗口中繪製? 我搜索到libsdl維基,但無法找到任何東西。有兩個窗口的SDL2和OpenGL函數
您在尋找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
想必你必須要更新視口呢?至少如果窗戶的尺寸不同?也許這是有第二個環境而不是共享環境的原因? – xaxxon
我相信它更像'SDL_GL_MakeCurrent(window1,context1);/* window1/context1 stuff */SDL_GL_MakeCurrent(window2,context2);/* window2/context2 stuff * /',其中您指定GL調用引用哪個窗口+上下文對,並且每個窗口都與其自己的GL上下文相關聯。 – rsethc