2011-10-19 11 views
0

私はプロジェクト用にlibqglviewerを使用していますが、私はUSB経由でモーションキャプチャデバイスから入力を読み込み、これを人間としてビューアに表示します。私は、ビューアのdraw()メソッドでOpenGLのものを描画し、うまく動作します。しかし、モーションコントローラが変わると、私は実際に新しい位置値を取得し、ビューアでこれらを描画しますが、ビューア画面をクリックするまでこのアップデートは表示されません。ビューア内のフレームを単独で更新することは可能ですか?libqglviewerでダイナミックシーンを更新する方法

答えて

1

新しい位置の値を取得した直後にupdateGLを投稿する必要があるようです。関数がupdate呼ばれる2Dに塗装用

QGLWidget::updateGL()

void QGLWidget::updateGL() [virtual slot] 
    Updates the widget by calling glDraw(). 

また、drawメソッド内から呼び出さないでください(libQGLViewerドキュメントのupdateGLを参照)。

このノートはQWidget::paintEvent()から来ている:

注意:一般的に、あなたは(更新の呼び出しを控える)または再描画する必要があり()paintEvent(内部)。たとえば、paintevent()内の子に対してupdate()またはrepaint()を呼び出すと、未定義の動作が発生します。子はペイントイベントを取得することも、取得しないこともあります。

おそらくQGLViewerにも同じことが当てはまります。

repaintも使用できますが、お勧めできません(QWidget::repaint()参照)。

+0

こんにちは、お返事ありがとうございます、私はそれを試してみましょう! – mgr

関連する問題