Класс QShaderProgramBuilder
класс Qt3DRender::QShaderProgramBuilderГенерирует содержимое программы шейдеров из загруженных графов. Подробнее...
| Заголовок: | #include <QShaderProgramBuilder> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С момента: | Qt 5.10 |
| Инициализируется: | ShaderProgramBuilder |
| Наследуется от: | Qt3DCore::QNode |
Свойства
|
|
Открытые функции
| 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 |
Открытые слоты
| 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) |
Сигналы
| 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) |
Подробное описание
Библиотека для создания программы шейдеров содержит несколько различных графов шейдеров, используемых для генерации кода шейдеров.
Сохраняется кэш сгенерированного кода шейдеров. Сгенерированные шейдеры по умолчанию сохраняются в QStandardPaths::writableLocation(QStandardPaths::TempLocation)). Этот путь может быть изменён, установив переменную окружения QT3D_WRITABLE_CACHE_PATH на допустимый путь для записи.
Использование кэша может быть отключено путём установки переменной окружения QT3D_DISABLE_SHADER_CACHE.
В большинстве случаев изменения, внесённые в граф, обнаруживаются Qt 3D, и будет сгенерирован новый элемент кэша. Один из случаев, когда этого не произойдёт, — это изменение фрагментов кода, включённых в графы. Для решения этой проблемы можно очистить каталог кэша или установить переменную окружения QT3D_REBUILD_SHADER_CACHE, чтобы принудительно перегенерировать код шейдеров.
Документация свойств
[read-only, since 5.13] computeShaderCode : const QByteArray
Содержит сгенерированный код compute шейдера.
Это свойство было добавлено в Qt 5.13.
Функции доступа:
| QByteArray | computeShaderCode() const |
Сигнал уведомления:
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
computeShaderGraph : QUrl
Содержит URL графа compute шейдера, используемого этим строителем программы шейдеров.
Функции доступа:
| QUrl | computeShaderGraph() const |
| void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
Сигнал уведомления:
| void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
enabledLayers : QStringList
Содержит список слоёв, которые этот строитель активирует в графах шейдеров во время генерации кода.
Функции доступа:
| QStringList | enabledLayers() const |
| void | setEnabledLayers(const QStringList &layers) |
Сигнал уведомления:
| void | enabledLayersChanged(const QStringList &layers) |
[read-only, since 5.13] fragmentShaderCode : const QByteArray
Содержит сгенерированный код фрагментного шейдера.
Это свойство было добавлено в Qt 5.13.
Функции доступа:
| QByteArray | fragmentShaderCode() const |
Сигнал уведомления:
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
fragmentShaderGraph : QUrl
Содержит URL графа фрагментного шейдера, используемого этим строителем программы шейдеров.
Функции доступа:
| QUrl | fragmentShaderGraph() const |
| void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
Сигнал уведомления:
| void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
[read-only, since 5.13] geometryShaderCode : const QByteArray
Содержит сгенерированный код геометрического шейдера.
Это свойство было добавлено в Qt 5.13.
Функции доступа:
| QByteArray | geometryShaderCode() const |
Сигнал уведомления:
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
geometryShaderGraph : QUrl
Содержит URL графа геометрического шейдера, используемого этим строителем программы шейдеров.
Функции доступа:
| QUrl | geometryShaderGraph() const |
| void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
Сигнал уведомления:
| void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
shaderProgram : Qt3DRender::QShaderProgram*
Содержит программу шейдеров, для которой этот строитель генерирует код.
Функции доступа:
| Qt3DRender::QShaderProgram * | shaderProgram() const |
| void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
Сигнал уведомления:
| void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
[read-only, since 5.13] tessellationControlShaderCode : const QByteArray
Содержит сгенерированный код шейдера управления разбивкой.
Это свойство было добавлено в Qt 5.13.
Функции доступа:
| QByteArray | tessellationControlShaderCode() const |
Сигнал уведомления:
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationControlShaderGraph : QUrl
Содержит URL графа шейдера управления разбивкой, используемого этим строителем программы шейдеров.
Функции доступа:
| QUrl | tessellationControlShaderGraph() const |
| void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
Сигнал уведомления:
| void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
[read-only, since 5.13] tessellationEvaluationShaderCode : const QByteArray
Содержит сгенерированный код шейдера оценки разбивки.
Это свойство было добавлено в Qt 5.13.
Функции доступа:
| QByteArray | tessellationEvaluationShaderCode() const |
Сигнал уведомления:
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
tessellationEvaluationShaderGraph : QUrl
Содержит URL графа шейдера оценки разбивки, используемого этим строителем программы шейдеров.
Функции доступа:
| QUrl | tessellationEvaluationShaderGraph() const |
| void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
Сигнал уведомления:
| void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
[read-only, since 5.13] vertexShaderCode : const QByteArray
Содержит сгенерированный код вершинного шейдера.
Это свойство было добавлено в Qt 5.13.
Функции доступа:
| QByteArray | vertexShaderCode() const |
Сигнал уведомления:
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
vertexShaderGraph : QUrl
Содержит URL графа вершинного шейдера, используемого этим создателем программы шейдеров.
Функции доступа:
| QUrl | vertexShaderGraph() const |
| void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
Сигнал уведомления:
| void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3drender-qshaderprogrambuilder.html