一個方面,我最近問了一個關於如何解決跨多個環境頂點數組對象和幀緩衝對象共享問題的問題,我當時確信,使用多個上下文只是造成更多的麻煩則解決方案。的Qt和OpenGL,使用多個小部件
我正在使用Qt,目前我的設置是我有一個隱形QGLWidget,然後在我的可見QGLWidget的構造函數中使用,以便共享資源,這非常有效,我無法在上下文中共享某些內容。
我想找到我在哪裏能夠使用單個上下文來渲染我的所有不同的widget的一個解決方案,this question是指通過使用自己的QGLContext傳遞你的願望將被共享的QGLWidget來繪圖構造,然而,這並不似乎使用一個共同的上下文,而是設置上下文以供一個QGLWidget使用,當您嘗試在第二個小部件上使用它時,會調用qWarning,通知您QGLContext必須引用您傳遞給它的小部件。
我的應用程序的目標是有2個獨立的GUI呈現不同的場景,但共享相同的上下文。目前,我有一個「世界」編輯器,它編輯一個場景並將其保存到我的遊戲引擎中使用的文件中,並且我還有一個「材質」編輯器,它允許您以圖形方式編輯類似於UDK材質編輯器的材質,是一個利用OpenGL的預覽窗口。
理想情況下,我希望保持目前的設計,即擁有一個可通過製表符導航的統一遊戲編輯器,而不是爲編輯器的每個部分分別製作程序。
,似乎就像是一個體面的解決辦法是使用的QGraphicsView和設置QGLWidget來繪圖視口的唯一的事情,但是這似乎並沒有在所有的工作。我可以渲染基本的基本圖形,但是更多的是它會分崩離析。
有沒有人有處理這個問題的多個OpenGL小部件的經驗,如果是的話,你可以解釋一下你爲達到目標而採取的過程嗎?
我不斷使用QGraphicsView,它實際上效果很好。它有什麼問題? –
我簡單地用QGraphicsScene創建一個QGraphicsView,然後將QGraphicsView視口設置爲我的派生QGLWidget,如果我在我的QGLWidget的繪製函數中渲染基本基元,但是當我嘗試使用着色器渲染某些東西時它不起作用,當我註釋掉行並用我的QGLWidget替換QGraphicsView小部件時,一切再次正常工作,它似乎與圖形視圖一起使用它會導致它死亡 – user1294021
它實際上阻止了我的其他QGLWidgets工作以及 – user1294021