Qt3DRender::QShaderProgramBuilder Class
class Qt3DRender::QShaderProgramBuilderErzeugt aus geladenen Graphen den Inhalt eines Shader-Programms. Mehr...
| Header: | #include <qshaderprogrambuilder.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| In QML: | ShaderProgramBuilder |
| Erbt von: | Qt3DCore::QNode |
| Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
Eigenschaften
|
|
Öffentliche Funktionen
| QByteArray | computeShaderCode() const |
| QUrl | computeShaderGraph() const |
| QStringList | enabledLayers() const |
| QByteArray | fragmentShaderCode() const |
| QUrl | fragmentShaderGraph() const |
| QByteArray | geometryShaderCode() const |
| QUrl | geometryShaderGraph() const |
| Qt3DRender::QShaderProgram * | shaderProgram() const |
| QByteArray | tessellationControlShaderCode() const |
| QUrl | tessellationControlShaderGraph() const |
| QByteArray | tessellationEvaluationShaderCode() const |
| QUrl | tessellationEvaluationShaderGraph() const |
| QByteArray | vertexShaderCode() const |
| QUrl | vertexShaderGraph() const |
Öffentliche Slots
| void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
| void | setEnabledLayers(const QStringList &layers) |
| void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
| void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
| void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
| void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
| void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
| void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
Signale
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
| void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
| void | enabledLayersChanged(const QStringList &layers) |
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
| void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
| void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
| void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
| void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
| void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
| void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
Ausführliche Beschreibung
Ein Shader-Programm-Generator besteht aus mehreren verschiedenen Shader-Graphen, die zur Erzeugung von Shader-Code verwendet werden.
Es wird ein Cache mit generiertem Shader-Code verwaltet. Generierte Shader werden standardmäßig unter „ QStandardPaths::writableLocation “ (QStandardPaths::TempLocation) gespeichert. Dieser Pfad kann überschrieben werden, indem die Umgebungsvariable QT3D_WRITABLE_CACHE_PATH auf einen gültigen, beschreibbaren Pfad gesetzt wird.
Die Verwendung des Caches kann durch Setzen der Umgebungsvariable QT3D_DISABLE_SHADER_CACHE deaktiviert werden.
In den meisten Fällen werden Änderungen an einem Graphen von „ Qt 3D “ erkannt und ein neuer Cache-Eintrag generiert. Ein Fall, in dem dies nicht geschieht, ist, wenn Code-Schnipsel, die von einem Graphen eingebunden werden, geändert werden. Um dies zu umgehen, kann das Leeren des Cache-Verzeichnisses oder das Setzen der Umgebungsvariable QT3D_REBUILD_SHADER_CACHE verwendet werden, um die Neugenerierung des Shader-Codes zu erzwingen.
Dokumentation zu den Eigenschaften
[read-only] computeShaderCode : QByteArray
Enthält den generierten Compute-Shader-Code.
Zugriffsfunktionen:
| QByteArray | computeShaderCode() const |
Notifier-Signal:
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
computeShaderGraph : QUrl
Enthält die URL zum Compute-Shader-Graph, der von diesem Shader-Programmier-Generator verwendet wird.
Zugriffsfunktionen:
| QUrl | computeShaderGraph() const |
| void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
Notifier-Signal:
| void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
enabledLayers : QStringList
Enthält die Liste der Ebenen, die dieser Builder bei der Codegenerierung in den Shader-Graphen aktivieren wird.
Zugriffsfunktionen:
| QStringList | enabledLayers() const |
| void | setEnabledLayers(const QStringList &layers) |
Notifier-Signal:
| void | enabledLayersChanged(const QStringList &layers) |
[read-only] fragmentShaderCode : QByteArray
Enthält den generierten Fragment-Shader-Code.
Zugriffsfunktionen:
| QByteArray | fragmentShaderCode() const |
Notifier-Signal:
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
fragmentShaderGraph : QUrl
Enthält die URL zum Fragment-Shader-Graph, der von diesem Shader-Programmier-Tool verwendet wird.
Zugriffsfunktionen:
| QUrl | fragmentShaderGraph() const |
| void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
Notifier-Signal:
| void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
[read-only] geometryShaderCode : QByteArray
Enthält den generierten Geometrie-Shader-Code.
Zugriffsfunktionen:
| QByteArray | geometryShaderCode() const |
Notifier-Signal:
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
geometryShaderGraph : QUrl
Enthält die URL zum Geometrie-Shader-Graphen, der von diesem Shader-Programmierwerkzeug verwendet wird.
Zugriffsfunktionen:
| QUrl | geometryShaderGraph() const |
| void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
Notifier-Signal:
| void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
shaderProgram : Qt3DRender::QShaderProgram*
Enthält das Shader-Programm, auf dessen Grundlage dieser Builder Code generiert.
Zugriffsfunktionen:
| Qt3DRender::QShaderProgram * | shaderProgram() const |
| void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
Notifier-Signal:
| void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
[read-only] tessellationControlShaderCode : QByteArray
Enthält den Shader-Code zur Steuerung der Tessellationsgenerierung.
Zugriffsfunktionen:
| QByteArray | tessellationControlShaderCode() const |
Notifier-Signal:
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationControlShaderGraph : QUrl
Enthält die URL zum Shader-Graphen für die Tesselierung, der von diesem Shader-Programmierwerkzeug verwendet wird.
Zugriffsfunktionen:
| QUrl | tessellationControlShaderGraph() const |
| void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
Notifier-Signal:
| void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
[read-only] tessellationEvaluationShaderCode : QByteArray
Enthält den Shader-Code zur Berechnung der Tessellation.
Zugriffsfunktionen:
| QByteArray | tessellationEvaluationShaderCode() const |
Notifier-Signal:
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
tessellationEvaluationShaderGraph : QUrl
Enthält die URL zum Shadergraphen für die Tesselationsauswertung, der von diesem Shader-Programmierwerkzeug verwendet wird.
Zugriffsfunktionen:
| QUrl | tessellationEvaluationShaderGraph() const |
| void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
Notifier-Signal:
| void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
[read-only] vertexShaderCode : QByteArray
Enthält den generierten Vertex-Shader-Code.
Zugriffsfunktionen:
| QByteArray | vertexShaderCode() const |
Notifier-Signal:
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
vertexShaderGraph : QUrl
Enthält die URL zum Vertex-Shader-Graph, der von diesem Shader-Programmier-Generator verwendet wird.
Zugriffsfunktionen:
| QUrl | vertexShaderGraph() const |
| void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
Notifier-Signal:
| void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
© 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.