Szenengraph – Direct3D 11 unter QML
Zeigt, wie man unter einer „ Qt Quick “-Szene direkt mit Direct3D 11 rendert.
Qt Quick-Szene mit Textüberlagerung" src="images/d3d11underqml-example.jpg" title="Animiertes „Squircle“, gerendert mit Direct3D 11 in einer Qt Quick-Szene mit Textüberlagerung"/>
Das Beispiel „Direct3D 11 unter QML“ zeigt, wie eine Anwendung das Signal „ QQuickWindow::beforeRendering()“ nutzen kann, um benutzerdefinierte D3D11-Inhalte in einer „ Qt Quick “-Szene zu zeichnen. Dieses Signal wird zu Beginn jedes Frames ausgesendet, bevor der Szenengraph mit dem Rendern beginnt. Daher werden alle D3D11-Zeichenaufrufe, die als Reaktion auf dieses Signal erfolgen, unter den „ Qt Quick “-Elementen gestapelt.
Alternativ können Anwendungen, die D3D11-Inhalte über der „ Qt Quick “-Szene rendern möchten, dies tun, indem sie sich an das Signal „ QQuickWindow::afterRendering()“ anschließen.
In diesem Beispiel werden wir außerdem sehen, wie es möglich ist, Werte in QML bereitzustellen, die das D3D11-Rendering beeinflussen. Wir animieren den Schwellenwert mithilfe eines „ NumberAnimation “ in der QML-Datei, und dieser Wert wird vom HLSL-Shader-Programm verwendet, das die „Squircles“ zeichnet.
Das Beispiel entspricht in vielerlei Hinsicht den Beispielen „OpenGL unter QML“, „Metal unter QML“ und „Vulkan unter QML“ – sie alle rendern denselben benutzerdefinierten Inhalt, lediglich über unterschiedliche native APIs.
© 2026 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.