簡體   English   中英

是否將OpenGL應用程序與Qt集成?

[英]Integrating OpenGL application with Qt?

我是使用OpenGL的新手,並且不知道gl上下文和此類工作原理是如何承受的。 我有一個使用OpenGL for Linux用C ++編寫的應用程序,我希望能夠在全屏模式下繼續在我的機器上運行,然后我想在Qt中創建另一個應用程序以在另一個應用程序位於同一窗口的頂部進行渲染渲染到。 我還希望能夠將數據從OpenGL應用程序發送到Qt應用程序中,然后再發送回來。

我該如何完成這些任務,建議將應用程序分開放置,還是讓Qt封裝另一個應用程序的gl上下文更容易?

我發現了一些可能有用的鏈接,但目前它們已經超出了我的理解范圍,我需要一些指導:

如果要共享由OpenGL處理​​的紋理,vbo等...,則必須在同一應用程序中創建每個上下文。

否則,如果您要將其他數據發送到另一個應用程序,這是IPC案例,則可以閱讀http://en.wikipedia.org/wiki/Inter-process_communication

我不知道在Linux上使用兩個應用程序怎么可能。 在Windows上,我知道這實際上是不可能的,因為您會將Windows欄置於屏幕底部,並且必須強制QT窗口保持在所有內容的頂部。 這不是很實用,但是如果只有兩個運行的應用程序可以這樣做。

具有兩個應用程序的另一種解決方案是在無邊界的無標題窗口中運行OpenGL,並設置為屏幕分辨率的大小。 但是您仍然必須管理第二個應用程序窗口以保持在第一個應用程序窗口之上,這仍然不切實際。

因此,從您繪制的上下文來看,最好的解決方案似乎是僅創建一個應用程序。 使用QT,您可以在其頂部渲染一些OpenGL和一些QWidget。 甚至有可能在OpenGL上有一個QGraphicsView並使用QML。 但是,如果使用過多的透明度,則可能會導致性能下降。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM