2011-06-14 138 views
0

我正在Mac上的OpenGL中編寫一個小程序。考慮到子窗口,我有一個問題。我在主窗口中創建了兩個子窗口。一切工作正常到這一點。我可以畫在他們兩個。但我想要一些不同的東西。我想在一個窗口中繪製(用我的鼠標),同時在另一個窗口中繪製圖形。OpenGL子窗口

現在它甚至不可能在兩個窗口中獲得相同的圖形。如果我想看到某件事,我總是必須在那個特定的窗口中繪製。

你有一些想法,也許該怎麼做。或者你也許有一個例子。不幸的是,我無法找到關於「子窗口」主題的很多信息。

+0

重複在這裏:http://stackoverflow.com/questions/726379/multiple-viewports-in-opengl – holtavolt 2011-06-14 13:18:16

回答

2

OpenGL不是場景圖。所有它給你的是鉛筆和蠟筆的計算機等值。所以你畫一個幀緩衝區,它只會顯示在一個幀緩衝區中。

您想從多個有利位置繪製場景?然後,您必須從那些選定的有利位置多次繪製該場景到指定的視口。

+0

嗯,謝謝你的回覆。所以我必須創建多個視口。但是怎樣才能在不同的子窗口中看到視口。這是我不明白的。任何例子? – buddy 2011-06-15 13:24:35

+0

@buddy:如果你使用多個窗口,那麼每個窗口都有自己的OpenGL上下文;在任何時候一個線程只有一個或沒有OpenGL活動。在MacOS X上,NSOpenGLView在輸入任何繪圖處理程序之前,會先照顧好OpenGL環境。另一種方法是使用單個OpenGL窗口並使用glViewport和glScissor的組合來渲染該窗口的子區域(例如,Blender如何實現它 - 它使用字面形式渲染所有內容,即3D模型,UI,腳本文本等等OpenGL的)。 – datenwolf 2011-06-15 14:30:12

+0

我現在懂了...謝謝 – buddy 2011-06-16 10:08:59