2013-10-19 57 views
0

我有了一個OpenGL窗口繪製各種事物在它的程序。與此同時,我正在離屏渲染以獲取圖像蒙版。如何在兩個OpenGL之間切換上下文

他們每個人都有自己繪製到一個獨立的OpenGL上下文。定期調用屏幕外渲染,每秒說。

會發生什麼情況是,離屏幕方面並沒有「切換回」默認情況下的GUI語境,所以我最終從屏幕外繪製的東西到GUI。

什麼是告訴OpenGL的的一種方式「從這一刻開始使用其他背景」?

+0

爲什麼不使用只使用幀緩衝區對象進行離屏渲染。這使您從管理PBuffer中解放出來。此外(與PBuffers不同),FBO的內容不會失效(如果發生這種情況,您必須檢查無效事件並重新繪製PBuffer內容)。 – datenwolf

+0

但我仍然需要與FBO切換調節權嗎? – hakura

+0

不,你不知道。 FBO是創建它們的上下文的一部分。使用FBO時只需要一個上下文。這是關於他們的美麗事物之一。見https://github.com/datenwolf/codesamples/blob/master/samples/OpenGL/minimalfbo/minimalfbo.c對於最小FBO樣品。 – datenwolf

回答

1

隨着GLX,您可以用glXMakeCurrent,其中有簽名:

Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx);