0

私はOpenGLのラッパーとしてOpenGLSceneを使用しており、インターネットで見つけた最も単純な例から始めました。zipがあるリンクからすべてをコピーしました。

私はプログラムをコンパイルして実行しましたが、どうやらこの警告は常に発生しています(欠点のある方法で):

if (painter->paintEngine()->type()
                != QPaintEngine::OpenGL) {
            qWarning("OpenGLScene: drawBackground needs a "
                     "QGLWidget to be set as viewport on the "
                     "graphics view");
            return;

誰かが理由を知っていますか(私はMacを使用しています)?誰かがもっと「安定した」例を持っていますか?この警告は関係がありますか?

基本的に、なぜこの警告が表示されるのか、そしてどうすればそれを取り除くことができるのか知りたいです...

どこから始めたらいいのかわからない。私はいくつかの簡単なことを試しましたが(たとえば、QGLWidgetを現在のコンテキストにする)、欠点のあるメソッドがいつどのように呼び出されるかを理解するのに十分なQtがわかりません。

4

4 に答える 4

0

あなたは何をしようとしているのですか ?

IIRC qq26の例は4.7では機能しませんでした(4.8ではテストされていません)。

しかし、openGLシーンの上にQWidgetsをオーバーペイントすることは、その例のハックではなく、 4.8( http://qt-project.org/doc/qt-4.8/opengl-overpainting.html )に追加されました。

編集:Qtでopenglディスプレイを使用するだけで簡単です。QWidgetから派生し、initializeGL、resizeGL、paintGLを実装するだけです。テクスチャ、VBO、PBO、その他すべてのopenglをラップするQt関数があります。ディストリビューションのOpenGLの例を参照してください。

于 2012-05-24T18:10:00.247 に答える
0

あなたは持っていますOpenGLOpenGL2

このコードを試してください

   if (painter->paintEngine()->type() != QPaintEngine::OpenGL
   || painter->paintEngine()->type() != QPaintEngine::OpenGL2)
于 2012-05-24T05:53:56.473 に答える
0

QtOpenGLSceneの作業例

Qt 4の「ボックス」デモ。qtdemoを起動し、「デモンストレーション」->「ボックス」を選択します。または、すべてオンラインで読んでください。それか、オーバーペイントHelloGL、またはその他のOpenGLの例に関するドキュメントを読んでください。

Qtを使用してOpenGLへの「ラッパー」を作成しようとしています。GUIとしてQtを使用し、視覚化としてOpenGLを使用する

QGLWidget

于 2012-05-24T19:24:57.537 に答える
0

私は小さな最小限のOpenGL+Qtを作成しましたが、これは要点に答えることができると思います。

どこから始めたらいいのかわからない。私はいくつかの簡単なことを試しましたが(たとえば、QGLWidgetを現在のコンテキストにする)、欠点のあるメソッドがいつどのように呼び出されるかを理解するのに十分なQtがわかりません。

私がこの質問をしたときに私がいた立場にいた誰かを助けることができると思います。

于 2012-09-23T07:49:39.580 に答える