0

私は OpenGL を使用するのが初めてで、gl コンテキストなどがどのように機能するのかわかりません。Linux 用の OpenGL を使用して C++ で記述されたアプリケーションがあり、自分のマシンで全画面モードで実行し続けられるようにしたいのですが、Qt で別のアプリケーションを作成して、他のアプリケーションと同じウィンドウの上にレンダリングしたいと考えています。にレンダリングします。また、OpenGL アプリケーションから Qt アプリケーションにデータを送受信できるようにしたいと考えています。

これらのタスクをどのように達成できますか?また、アプリケーションを分離しておくことをお勧めしますか?それとも、Qt に他のアプリケーションの gl コンテキストをラップさせる方が簡単ですか?

役立つかもしれないリンクをいくつか見つけましたが、現時点ではそれらは私の頭をはるかに超えているため、いくつかのガイダンスが必要です。

4

2 に答える 2

2

OpenGL によって操作されるテクスチャ、vbo などを共有する場合は、各コンテキストを同じアプリケーションで作成する必要があります。

それ以外の場合、他のデータを他のアプリケーションに送信する場合は、IPC ケースです。http://en.wikipedia.org/wiki/Inter-process_communicationを読むことができます。

于 2013-10-29T18:47:20.680 に答える
1

Linux 上の 2 つのアプリケーションでどのようにそれが可能になるのか、私にはわかりません。Windows では、画面の下部に Windows バーがあり、QT ウィンドウを強制的にすべての上に置く必要があるという意味で、実際には不可能であることを私は知っています。これはあまり実用的ではありませんが、実行中のアプリケーションが 2 つだけの場合は可能です。

2 つのアプリケーションを使用する別の解決策は、画面解像度のサイズに設定されたボーダーレス タイトルバーレス ウィンドウで OpenGL を実行することです。ただし、最初のアプリケーション ウィンドウを維持するには、2 番目のアプリケーション ウィンドウを管理する必要があり、まだ実用的ではありません。

したがって、あなたが描いているコンテキストから、最善の解決策はアプリケーションを 1 つだけ作成することだと思われます。QT を使用すると、いくつかの OpenGL とその上にいくつかの QWidget をレンダリングできます。OpenGL の上に QGraphicsView を配置し、QML を使用することも可能です。ただし、透明度が高すぎると、パフォーマンスが低下する可能性があります。

于 2013-10-30T18:09:02.160 に答える