2011-10-14 18 views
6

私はQMLアイテムのレイアウトを含むQMLファイルを持っています。これらのアイテムの1つをQGLWidgetにします。つまり、特定のQMLアイテムにレンダリングしたいとします。QMLアイテムへのOpenGLレンダリング

これを行う方法を知っている人はいますか?

答えて

3

C++で実装された新しいカスタムコンポーネントをQMLに提供するのが最も簡単な方法です。私は何か準備ができていなかった。

QPainter::beginNative()関数を使用した後で、QDeclarativeItemをサブクラス化し、OpenGLコードをペイント関数で実装することができます。その後、新しいカスタムアイテムをQML this wayに「エクスポート」できます。これは非常に簡単で、動作するはずですが、あなたはあなたのビューポートQDeclarativeViewがQGLWidgetであることをセットアップする必要があります、このような何か:

QDeclarativeView view; 
// This is needed because OpenGL viewport doesn't support partial updates. 
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode); 
view.setViewport(new QGLWidget); 

またはあなたが全体のためのOpenGLグラフィックスシステムを使用する必要があります応用。 もう1つの方法はQML/3Dです。

This threadは、他の情報を提供します。

+0

QML/3Dドキュメントへのリンクが変更されました。私はそれを更新しました。 –

関連する問題