Qt OpenGL
Qtには、UI開発に対する2つの主なアプローチがある:Qt Quickと Qt Widgetsです。これらは異なるタイプのユーザーインターフェースをサポートするために存在し、それぞれのタイプに最適化された別々のグラフィックエンジンをベースにしています。
Qtでは、OpenGLグラフィックスAPIで書かれたコードと、これら両方のユーザーインターフェイスを組み合わせることができます。これは、アプリケーションが独自のOpenGL依存のコードを持っている場合や、サードパーティのOpenGLベースのレンダラーと統合する場合に便利です。
Qt OpenGLモジュールには、この種の統合をより簡単かつ高速にするための便利なクラスが含まれています。
Qt OpenGLとQt Widgets
Qt Widgetsは通常、高度に最適化された正確なソフトウェア・ラスタライザによってレンダリングされ、アプリケーションが動作しているプラットフォームに適した方法で最終的なコンテンツが画面上に再現されます。
しかし、QtウィジェットをOpenGLと組み合わせることも可能です。そのための主なエントリーポイントはQOpenGLWidget クラスです。このクラスは、ウィジェットツリーの特定の部分に対してOpenGLレンダリングを有効にするために使用することができ、Qt OpenGLモジュールのクラスは、アプリケーション側のOpenGLコードを容易にするために使用することができます。
Qt OpenGL と Qt Quick
Qt Quickはハードウェアアクセラレーションによるレンダリングに最適化されています。デフォルトでは、ターゲット・プラットフォームに最も適した低レベルのグラフィックスAPIでビルドされます。
例えば、WindowsではデフォルトでDirect3D
、macOSではMetal
。しかし、OpenGLがサポートされているプラットフォームでは、アクティブなグラフィックスAPIとしてOpenGLを手動で選択することも可能です。
Qt QuickでOpenGLを有効にする詳細については、scenegraph renderer documentationを参照してください。
モジュールの使用
Qt モジュールの C++ API を使用するには、モジュール・ライブラリを直接、または他の依存関係を介してリンクする必要があります。CMakeや qmakeなど、いくつかのビルドツールはこのための専用サポートを持っています。
CMake でのビルド
find_package()
コマンドを使用して、必要なモジュール・コンポーネントをQt6
パッケージから探します:
find_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
詳細については、CMakeによるビルドの概要を参照してください。
qmakeでのビルド
モジュールをqmakeでビルドするように設定するには、プロジェクトの.proファイルにQT
変数の値としてモジュールを追加します:
QT += opengl
例
リファレンス
モジュールの進化
Qt OpenGL の変更点には、Qt 6 シリーズの Qt で行われたモジュール API と機能の重要な変更点が記載されています。
ライセンスと商標
Qt OpenGL モジュールはThe Qt Company の商用ライセンスで利用できます。さらに、フリーソフトウェアライセンスでも利用可能です:GNU Lesser General Public License, version 3, またはGNU General Public License, version 2.詳細はQt ライセンスを参照してください。
OpenGL®は、米国およびその他の国における Silicon Graphics, Inc.の商標です。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。