Upgrade to Pro — share decks privately, control downloads, hide ads and more …

QML上にOpenGLのカスタムエレメントを表示する

 QML上にOpenGLのカスタムエレメントを表示する

OpenGLで描画するQMLのカスタムエレメントを作成し、
それをQMLの標準のエレメントと一緒に表示します。

Avatar for Noboru Murakami

Noboru Murakami

June 15, 2013

Other Decks in Programming

Transcript

  1. 自己紹介 • 名前  村上 昇 • 仕事  車載機器(IVI)のHMI開発環境の構築 • Qt歴  2年数ヶ月 • 興味 –

    Qt – HTML5 – TIZEN(特にIVI) • ブログ(基本的には自分用の学習メモ) – http://ameblo.jp/dumbobambino/
  2. 実装方法概要 Qt Version 利用クラス 特徴 4.8.4 QDeclarativeItem 4.8系だとこれを使うしかない? 5.0.2 QQuickItem

    直接描画面へ描画する。消費メモリや速度で有利。 5.0.2 QQuickPaintedItem 間接的な2D surfaceを使う。ラスタライズ、描画の 2段階処理になる。 QPainterを使って描画したいときに使う。 (z方向を)QMLの標準のElementの間にしたい時はこ れを使えば出来るのかもしれない。(未確認) ▪参考URL Mixing Scene Graph and OpenGL http://qt-project.org/doc/qt-5.0/qtquick/qtquick-visualcanvas-scenegraph.html#mixing-scen e-graph-and-opengl QQuickItem http://qt-project.org/doc/qt-5.0/qtquick/qquickitem.html#details QQuickPaintedItem http://qt-project.org/doc/qt-5.0/qtquick/qquickpainteditem.html#details
  3. Qt5.0.2での実装のポイント ※描画面へ直接描画する方式についての説明 • QQuickItemを継承するクラスを作成 • paint() slotを定義 • QQuickWindowのbeforeRendering() かafterRendering()

    signal とpaint() slotをconnect • paint() slotに描画処理を記述 サンプルはこちら(自作のものは色々トライ&エラー中なのでまだ アップしてません) • http://qt-project.org/doc/qt-5.0/qtquick/scenegraph-openglunde rqml.html
  4. 参考資料 • Mixing Scene Graph and OpenGL – http://qt-project.org/doc/qt-5.0/qtquick/qtquick-visualcanvas-scene graph.html#mixing-scene-graph-and-opengl

    • QQuickItem – http://qt-project.org/doc/qt-5.0/qtquick/qquickitem.html#details • QQuickPaintedItem – http://qt-project.org/doc/qt-5.0/qtquick/qquickpainteditem.html#detai ls