Spec-Zone.ru › Qt 5.9

Класс QParameter

(Qt3DRender::QParameter)

Обеспечивает хранение пары «имя-значение». Сопоставляется с униформой шейдера. Подробнее...

Заголовок: #include <Qt3DRender/QParameter>
qmake: QT += 3drender
Создается из: Parameter
Наследует: Qt3DCore::QNode
  • Список всех членов, включая наследуемые

Свойства

  • name : QString
  • value : QVariant
  • 3 свойства унаследованы от Qt3DCore::QNode
  • 1 свойство унаследовано от QObject

Открытые функции

QParameter(Qt3DCore::QNode *parent = nullptr)
QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
QParameter(const QString &name, QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
QString name() const
QVariant value() const
  • 11 открытых функций унаследованы от Qt3DCore::QNode
  • 32 открытых функций унаследованы от QObject

Открытые слоты

void setName(const QString &name)
void setValue(const QVariant &dv)
  • 3 открытых слота унаследованы от Qt3DCore::QNode
  • 1 открытый слот унаследован от QObject

Сигналы

void nameChanged(const QString &name)
void valueChanged(const QVariant &value)
  • 4 сигнала унаследованы от Qt3DCore::QNode
  • 2 сигнала унаследованы от QObject

Защищенные функции

QParameter(QParameterPrivate &dd, Qt3DCore::QNode *parent = nullptr)
  • 2 защищенные функции унаследованы от Qt3DCore::QNode
  • 9 защищенных функций унаследованы от QObject

Дополнительные наследуемые члены

  • 11 статических открытых членов, унаследованных от QObject

Подробное описание

Обеспечивает хранение пары «имя-значение». Сопоставляется с униформой шейдера.

QParameter может быть сослаться на QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter. Во время выполнения, в зависимости от того, какой шейдер выбран для данного шага рендеринга, значение, содержащееся в QParameter, будет преобразовано и загружено, если шейдер содержит униформу с именем, соответствующим имени QParameter.

QParameter *param = new QParameter();
param->setName(QStringLiteral("diffuseColor"));
param->setValue(QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Alternatively you can create and set a QParameter this way
QParameter *param2 = new QParameter(QStringLiteral("diffuseColor"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Such QParameters will work with the following GLSL uniform shader declarations
// uniform vec4 diffuseColor;
// uniform vec3 diffuseColor;
// uniform vec2 diffuseColor;
// uniform float diffuseColor;

Примечание: необходимо соблюдать осторожность, чтобы значение, заключенное в QParameter, можно было фактически преобразовать в то, что ожидает реальная униформа. Указание значения, хранящегося как целое число, где фактическая униформа шейдера имеет тип float, может привести к неопределенному поведению.

Примечание: если целевая униформа является массивом, имя должно быть именем униформы с добавленным [0].

QParameter *param = new QParameter();
QVariantList values = QVariantList() << 0.0f << 1.0f << 2.0f << 3.0f << 4.0f << 883.0f << 1340.0f << 1584.0f;

param->setName(QStringLiteral("diffuseValues[0]"));
param->setValue(values);

// Matching GLSL shader uniform  declaration
// uniform float diffuseValues[8];

Что касается поддержки текстур, значение QParameter должно быть установлено на соответствующий подкласс QAbstractTexture, который соответствует типу саплера униформы шейдера.

QTexture2D *texture = new QTexture2D();
...
QParameter *param = new QParameter();
param->setName(QStringLiteral("diffuseTexture"));
param->setValue(QVariant::fromValue(texture));

// Works with the following GLSL uniform shader declaration
// uniform sampler2D diffuseTexture

См. также QAbstractTexture.

Документация по свойствам

name : QString

Указывает имя параметра

Функции доступа:

QString name() const
void setName(const QString &name)

Сигнал уведомления:

void nameChanged(const QString &name)

value : QVariant

Указывает значение параметра

Функции доступа:

QVariant value() const
void setValue(const QVariant &dv)

Сигнал уведомления:

void valueChanged(const QVariant &value)

Документация по функциям-членам

QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)

Создает новый QParameter со указанным parent.

QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)

Создает экземпляр QParameter по умолчанию.

QParameter::QParameter(const QString &name, QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)

Создает экземпляр QParameter по умолчанию.

[protected] QParameter::QParameter(QParameterPrivate &dd, Qt3DCore::QNode *parent = nullptr)

Копирующий конструктор.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qt3drender-qparameter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API