2

シミュレータウィンドウ内にあるGLWidgetを使用し、フレームバッファオブジェクトを使用してデータをメインウィンドウのglwidgetに送信したいと思います。

私はそれを達成するためにシグナル/スロットを使用しましたが、マルチスレッドの問題と例外に関して多くの問題がありました。

そのシナリオを達成するための最良の方法は何ですか。![やりたいシナリオの写真を添付] [1]

4

1 に答える 1

2

フレームバッファオブジェクトを共有する場合は、Signal / Slotではなく、GLコンテキストリソース共有を使用する必要があります。後者はメインメモリで実行されますが、コンテキスト共有はGPUで行われます。したがって、データのコピー(バスを介した転送とその逆)は含まれません。

QGLWidgetのドキュメントでは、2つのウィジェットが共有コンテキストを持つ方法について説明されています。

shareWidgetが有効なQGLWidgetである場合、このウィジェットはOpenGLディスプレイリストとテクスチャオブジェクトをshareWidgetと共有します。ただし、shareWidgetとこのウィジェットの形式が異なる場合、共有できない場合があります。isSharing()を呼び出すことで、共有が有効になっているかどうかを確認できます。

http://doc.qt.nokia.com/4.7-snapshot/qglwidget.html#QGLWidget

于 2012-07-21T20:50:42.010 に答える