2013-12-18 90 views
0

最近我在寫我的項目中的遊戲編輯器。我想實現一個具有4個視口的編輯器,如3ds max或其他3D軟件。多窗口支持opengles2

那麼,如何使用opengles2在多窗口上呈現上下文?

回答

0

您通常可以擁有多個視圖,每個視圖都有自己的幀緩衝區。在這種情況下,您只需在繪製到每個視圖之前綁定正確的幀緩衝區。您可能還需要爲每個視圖設置不同的上下文,並在繪製之前將它們設置爲當前(也在綁定幀緩衝區之前)。如果您需要多個上下文,您需要找到一種方法來共享它們之間的資源。

另一種方法是使用單個視圖並簡單地使用glViewport來繪製到不同的部分。在這種情況下,您需要爲特定部分設置glViewport,設置orthofrustum(如果視圖分段大小不同),就是這樣。例如,如果你分割與具有緩衝尺寸bWidthbHeight分爲4個矩形的觀點,並要刷新右上:

glViewport(bWidth*.5f, .0f, bWidth*.5f, bWidth*.5f); 
glOrthof(.0f, bWidth*.5f, bHeight*.5f, .0f, .1, 1.0); //same for each in this case 
//do all the drawing 

,當你所有的成品要更新只是呈現幀緩衝器。

+0

該函數被稱爲'glViewport'(介意小寫字母P) – datenwolf