シーングラフ - QML下のDirect3D 11
Qt Quick シーンの下で Direct3D 11 を直接レンダリングする方法を紹介します。
Direct3D 11 Under QML の例では、Qt Quick シーンの下にカスタム D3D11 コンテンツを描画するために、アプリケーションがQQuickWindow::beforeRendering() シグナルを利用する方法を示しています。このシグナルは、シーングラフがレンダリングを開始する前の、各フレームの開始時に発せられます。したがって、このシグナルへの応答として行われる D3D11 の描画コールは、Qt Quick の項目の下にスタックされます。
別の方法として、Qt Quick シーンの上に D3D11 コンテンツをレンダリングしたいアプリケーションは、QQuickWindow::afterRendering() シグナルに接続することでレンダリングできます。
この例では、D3D11のレンダリングに影響を与えるような値をQMLに公開することも可能であることを確認します。QMLファイル内のNumberAnimation を使ってしきい値のアニメーションを行い、この値はスクエアを描画するHLSLシェーダプログラムで使用されます。
この例は、OpenGL Under QML、Metal Under QML、Vulkan Under QMLの例とほとんど同じで、ネイティブAPIが異なるだけで、同じカスタムコンテンツをレンダリングします。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.