はじめに
これまで4回に渡ってQtの基本部分について説明して来ました。今回と次回は,
- ※) Qt 4.
5 Technology Previewの前日にSymbian OSへの移植もアナウンスされています。また, Nokiaへの買収に伴い, 社名がTrolltechからQt Software, Nokiaに変更されWebページも一新されました。
Qt 4.5 Technology Preview
Technology Previewには,
パフォーマンス改善
Qt 4.
- Graphics View
setViewpor(QGLWidget(QGLFormat(QGL::SampleBuffers))) を呼び出す。 - ウィジェット
QGLWidget(QGLFormat(QGL::SampleBuffers)) を親ウィジェットにする。
描画精度や描画速度を上げようとすると3つの問題があります。
- プラットフォーム固有の描画機能には,
描画上で細かな差異があります。そこで, プラットフォームに依存せずに正確な描画をしたい場合には, QImageに描画をしてからQImageを表示するという方法を取ることとなります。しかし, 一般にQImageがクライアントアプリケーション中に存在するデータということから, プラットフォームによっては描画コストが高くなります。 - OpenGLを描画エンジンにすると速度は改善されますが描画精度が落ちます。正確な描画のためには各プラットフォームの描画エンジンを用いるか,
1)の方法を取ることとなります。 - OpenGLを描画エンジンに使用するには,
僅かな修正ですがすべてのウィジェットのベースクラスを変更しなければなりません。アプリケーション全体で簡単にOpenGLを描画エンジンに切換える方法はありません。
Qt 4.
$ app -graphicssystem raster $ app -graphicssystem opengl
使い方は簡単で,
表1 2D描画バックエンドのベンチマーク
描画エンジン | Windows | X11 | Mac OS X |
---|---|---|---|
プラットフォームの描画機能 | 60 | 20 | 9 |
ラスター | 60 | 36 | 30 |
OpenGL | 245 | 92 | 215 |
一般に,
Windowsでラスター描画エンジンの効果がないのは,
X11では,
表2 X11でのQPixmapとQImageの変換処理のベンチマーク
4. | 4. | 4. | 4. | |
---|---|---|---|---|
QPixmap::toImage() | 9286 | 0 | 26685 | 0 |
QPixmap::fromImage() | 9185 | 814 | 31185 | 3450 |
かなりの改善結果です。画像のスケールをスライダで変えて表示するコードを書いて,
描画速度は改善されるのですが,
- ※) Windowsでの2D描画には,
Direct Xも実験的に描画エンジンとして用いられるようになっています。ただし, ウィジェットが表示されない場合があるなどの問題があります。 - ※) MIT-SHMを使うコードは,
Qt 1から書かれてはいます。
WebKitの改善
第1回で挙げた機能やキャッシュが実装されていて,
その他
ざっと見ただけですが,
- Qt/
Mac OS XのCocoaブランチの取り込み。 - QtTestモジュールへのベンチマーク機能の追加。
- QtXmlPatternsモジュールでのXSL-Tサポート。
- ODF (Open Document Format) のサポート。
- Qt Designerの操作性改善
- Qt/
Mac OS Xでのバンドル作成支援ツールmacdeployの追加。 - リファレンスマニュアルへのQt for Windows CEについての記述の追加。