QShaderProgramBuilder Class
class Qt3DRender::QShaderProgramBuilderErzeugt den Inhalt eines Shaderprogramms aus geladenen Graphen. Mehr...
Kopfzeile: | #include <QShaderProgramBuilder> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | ShaderProgramBuilder |
Vererbt: | Qt3DCore::QNode |
Status: | Veraltet |
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 Program Builder besteht aus mehreren verschiedenen Shader-Graphen, die zur Erzeugung von Shader-Code verwendet werden.
Ein Cache des generierten Shader-Codes wird verwaltet. Die erzeugten Shader werden standardmäßig in 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 Umgebungsvariablen 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 wird erzeugt. Ein Fall, in dem dies nicht geschieht, ist, wenn Code-Schnipsel, die in einem Graphen enthalten sind, geändert werden. Um dies zu umgehen, kann das Cache-Verzeichnis gelöscht oder die Umgebungsvariable QT3D_REBUILD_SHADER_CACHE gesetzt werden, um die erneute Generierung von Shader-Code zu erzwingen.
Dokumentation der Eigenschaften
[read-only]
computeShaderCode : const QByteArray
Enthält den generierten Compute-Shader-Code.
Zugriffsfunktionen:
QByteArray | computeShaderCode() const |
Benachrichtigungssignal:
void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
computeShaderGraph : QUrl
Enthält die URL zu dem von diesem Shader Program Builder verwendeten Compute Shader Graph.
Zugriffsfunktionen:
QUrl | computeShaderGraph() const |
void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
Benachrichtigungssignal:
void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
enabledLayers : QStringList
Enthält die Liste der Ebenen, die dieser Builder während der Codegenerierung in den Shadergraphen aktiviert.
Zugriffsfunktionen:
QStringList | enabledLayers() const |
void | setEnabledLayers(const QStringList &layers) |
Benachrichtigungssignal:
void | enabledLayersChanged(const QStringList &layers) |
[read-only]
fragmentShaderCode : const QByteArray
Enthält den generierten Fragment-Shader-Code.
Zugriffsfunktionen:
QByteArray | fragmentShaderCode() const |
Benachrichtigungssignal:
void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
fragmentShaderGraph : QUrl
Enthält die URL zum Fragment-Shader-Graphen, der von diesem Shader-Programmersteller verwendet wird.
Zugriffsfunktionen:
QUrl | fragmentShaderGraph() const |
void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
Benachrichtigungssignal:
void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
[read-only]
geometryShaderCode : const QByteArray
Enthält den generierten Geometrie-Shader-Code.
Zugriffsfunktionen:
QByteArray | geometryShaderCode() const |
Benachrichtigungssignal:
void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
geometryShaderGraph : QUrl
Enthält die URL zum Geometrie-Shader-Graphen, der von diesem Shader-Programmersteller verwendet wird.
Zugriffsfunktionen:
QUrl | geometryShaderGraph() const |
void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
Benachrichtigungssignal:
void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
shaderProgram : Qt3DRender::QShaderProgram*
Enthält das Shader-Programm, auf dem dieser Builder Code erzeugt.
Zugriffsfunktionen:
Qt3DRender::QShaderProgram * | shaderProgram() const |
void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
Benachrichtigungssignal:
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
[read-only]
tessellationControlShaderCode : const QByteArray
Enthält den Code für die Erzeugung des Tessellierungssteuerungs-Shaders.
Zugriffsfunktionen:
QByteArray | tessellationControlShaderCode() const |
Benachrichtigungssignal:
void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationControlShaderGraph : QUrl
Enthält die URL zu dem von diesem Shader Program Builder verwendeten Tesselation Control Shader Graph.
Zugriffsfunktionen:
QUrl | tessellationControlShaderGraph() const |
void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
Benachrichtigungssignal:
void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
[read-only]
tessellationEvaluationShaderCode : const QByteArray
Enthält den generierten Shader-Code für die Tesselationsauswertung.
Zugriffsfunktionen:
QByteArray | tessellationEvaluationShaderCode() const |
Benachrichtigungssignal:
void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
tessellationEvaluationShaderGraph : QUrl
Enthält die URL zum Tesselation Evaluation Shader Graph, der von diesem Shader Program Builder verwendet wird.
Zugriffsfunktionen:
QUrl | tessellationEvaluationShaderGraph() const |
void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
Benachrichtigungssignal:
void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
[read-only]
vertexShaderCode : const QByteArray
Enthält den generierten Vertex-Shader-Code.
Zugriffsfunktionen:
QByteArray | vertexShaderCode() const |
Benachrichtigungssignal:
void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
vertexShaderGraph : QUrl
Enthält die URL zum Vertex-Shader-Graphen, der von diesem Shader-Programmersteller verwendet wird.
Zugriffsfunktionen:
QUrl | vertexShaderGraph() const |
void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
Benachrichtigungssignal:
void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
© 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.