Класс QShaderProgram
(Qt3DRender::QShaderProgram)Оборачивает программу шейдеров. Подробнее...
| Заголовок: | #include <QShaderProgram> |
| qmake: | QT += 3drender |
| С версии: | Qt 5.5 |
| Инициализируется: | ShaderProgram |
| Наследует: | Qt3DCore::QNode |
Открытые типы
| перечисление | ТипШейдера { Вершинный, Фрагментный, УправлениеТисслером, ОценкаТисслера, Геометрия, Вычисление } |
| перечисление | Статус { НеГотово, Готово, Ошибка } |
Свойства
|
|
- 3 свойства унаследованы от Qt3DCore::QNode
- 1 свойство унаследовано от QObject
Открытые функции
| QShaderProgram(Qt3DCore::QNode *parent = nullptr) | |
| ~QShaderProgram() | |
| QByteArray | computeShaderCode() const |
| QByteArray | fragmentShaderCode() const |
| QByteArray | geometryShaderCode() const |
| QString | лог() const |
| void | setShaderCode(ТипШейдера type, const QByteArray &shaderCode) |
| QByteArray | shaderCode(ТипШейдера type) const |
| Статус | статус() const |
| QByteArray | tessellationControlShaderCode() const |
| QByteArray | tessellationEvaluationShaderCode() const |
| QByteArray | vertexShaderCode() const |
- 11 открытых функций унаследовано от Qt3DCore::QNode
- 32 открытых функции унаследовано от QObject
Открытые слоты
| void | setComputeShaderCode(const QByteArray &computeShaderCode) |
| void | setFragmentShaderCode(const QByteArray &fragmentShaderCode) |
| void | setGeometryShaderCode(const QByteArray &geometryShaderCode) |
| void | setTessellationControlShaderCode(const QByteArray &tessellationControlShaderCode) |
| void | setTessellationEvaluationShaderCode(const QByteArray &tessellationEvaluationShaderCode) |
| void | setVertexShaderCode(const QByteArray &vertexShaderCode) |
- 3 открытых слота унаследовано от Qt3DCore::QNode
- 1 открытый слот унаследовано от QObject
Сигналы
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
| void | logChanged(const QString &log) |
| void | statusChanged(Статус status) |
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
- 4 сигнала унаследовано от Qt3DCore::QNode
- 2 сигнала унаследовано от QObject
Статические открытые члены
| QByteArray | loadSource(const QUrl &sourceUrl) |
- 11 статических открытых членов унаследовано от QObject
Защищенные функции
| QShaderProgram(QShaderProgramPrivate &dd, Qt3DCore::QNode *parent = nullptr) | |
| void | sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) |
- 2 защищенных функции унаследовано от Qt3DCore::QNode
- 9 защищенных функций унаследовано от QObject
Подробное описание
Оборачивает программу шейдеров.
Программа шейдеров состоит из нескольких различных шейдеров, таких как шейдеры вершин и фрагментов.
Документация типов членов
перечисление QShaderProgram::ТипШейдера
Это перечисление идентифицирует тип используемого шейдера.
| Постоянная | Значение | Описание |
|---|---|---|
Qt3DRender::QShaderProgram::Vertex |
0 |
Вершинный шейдер |
Qt3DRender::QShaderProgram::Fragment |
1 |
Фрагментный шейдер |
Qt3DRender::QShaderProgram::TessellationControl |
2 |
Шейдер управления разбивкой |
Qt3DRender::QShaderProgram::TessellationEvaluation |
3 |
Шейдер вычисления разбивки |
Qt3DRender::QShaderProgram::Geometry |
4 |
Геометрический шейдер |
Qt3DRender::QShaderProgram::Compute |
5 |
Шейдер вычислений |
enum QShaderProgram::Status
Этот перечисление определяет состояние используемого шейдера.
| Постоянная | Значение | Описание |
|---|---|---|
Qt3DRender::QShaderProgram::NotReady |
0 |
Шейдер еще не был скомпилирован и связан |
Qt3DRender::QShaderProgram::Ready |
1 |
Шейдер был успешно скомпилирован |
Qt3DRender::QShaderProgram::Error |
2 |
При компиляции шейдера произошла ошибка |
Документация свойств
computeShaderCode : QByteArray
Содержит код шейдера вычислений, используемый этой программой шейдеров.
Функции доступа:
| QByteArray | computeShaderCode() const |
| void | setComputeShaderCode(const QByteArray &computeShaderCode) |
Сигнал уведомления:
| void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
fragmentShaderCode : QByteArray
Содержит код фрагментного шейдера, используемый этой программой шейдеров.
Функции доступа:
| QByteArray | fragmentShaderCode() const |
| void | setFragmentShaderCode(const QByteArray &fragmentShaderCode) |
Сигнал уведомления:
| void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
geometryShaderCode : QByteArray
Содержит код геометрического шейдера, используемый этой программой шейдеров.
Функции доступа:
| QByteArray | geometryShaderCode() const |
| void | setGeometryShaderCode(const QByteArray &geometryShaderCode) |
Сигнал уведомления:
| void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
log : const QString
Содержит журнал текущей программы шейдеров. Это полезно для диагностики сбоев при компиляции программы шейдеров.
Функции доступа:
| QString | log() const |
Сигнал уведомления:
| void | logChanged(const QString &log) |
status : const Status
Содержит состояние текущей программы шейдеров.
Функции доступа:
| Status | status() const |
Сигнал уведомления:
| void | statusChanged(Status status) |
tessellationControlShaderCode : QByteArray
Содержит код шейдера управления разбивкой, используемый этой программой шейдеров.
Функции доступа:
| QByteArray | tessellationControlShaderCode() const |
| void | setTessellationControlShaderCode(const QByteArray &tessellationControlShaderCode) |
Сигнал уведомления:
| void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationEvaluationShaderCode : QByteArray
Содержит код шейдера вычисления разбивки, используемый этой программой шейдеров.
Функции доступа:
| QByteArray | tessellationEvaluationShaderCode() const |
| void | setTessellationEvaluationShaderCode(const QByteArray &tessellationEvaluationShaderCode) |
Сигнал уведомления:
| void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
vertexShaderCode : QByteArray
Содержит код вершинного шейдера, используемый этой программой шейдеров.
Функции доступа:
| QByteArray | vertexShaderCode() const |
| void | setVertexShaderCode(const QByteArray &vertexShaderCode) |
Сигнал уведомления:
| void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
Документация по функциям-членам
QShaderProgram::QShaderProgram(Qt3DCore::QNode *parent = nullptr)
Инициализирует экземпляр QShaderProgram.
[protected] QShaderProgram::QShaderProgram(QShaderProgramPrivate &dd, Qt3DCore::QNode *parent = nullptr)
Копирующий конструктор.
QShaderProgram::~QShaderProgram()
Удаляет экземпляр QShaderProgram.
[static] QByteArray QShaderProgram::loadSource(const QUrl &sourceUrl)
Возвращает код шейдера, загруженный из sourceUrl.
[protected] void QShaderProgram::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)
Публикует изменение сцены с параметром change.
void QShaderProgram::setShaderCode(ShaderType type, const QByteArray &shaderCode)
Устанавливает код шейдера для type шейдера на shaderCode.
См. также shaderCode().
QByteArray QShaderProgram::shaderCode(ShaderType type) const
Возвращает код шейдера для type.
См. также setShaderCode().
Состояние QShaderProgram::status() const
Возвращает состояние текущей программы шейдера.
Примечание: Функция-получатель свойства состояние.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qt3drender-qshaderprogram.html