QParameter Class
(Qt3DRender::QParameter)Provides storage for a name and value pair. This maps to a shader uniform. More...
Header: | #include <Qt3DRender/QParameter> |
qmake: | QT += 3drender |
Instantiated By: | Parameter |
Inherits: | Qt3DCore::QNode |
Properties
- 3 properties inherited from Qt3DCore::QNode
- 1 property inherited from QObject
Public Functions
QParameter(Qt3DCore::QNode *parent = nullptr) | |
QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr) | |
QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr) | |
QString | name() const |
QVariant | value() const |
- 13 public functions inherited from Qt3DCore::QNode
- 31 public functions inherited from QObject
Public Slots
- 3 public slots inherited from Qt3DCore::QNode
- 1 public slot inherited from QObject
Signals
void | nameChanged(const QString &name) |
void | valueChanged(const QVariant &value) |
- 4 signals inherited from Qt3DCore::QNode
- 2 signals inherited from QObject
Static Public Members
const QMetaObject | staticMetaObject |
- 9 static public members inherited from QObject
Additional Inherited Members
- 2 protected functions inherited from Qt3DCore::QNode
- 9 protected functions inherited from QObject
Detailed Description
Provides storage for a name and value pair. This maps to a shader uniform.
A QParameter can be referenced by a QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter. At runtime, depending on which shader is selected for a given step of the rendering, the value contained in a QParameter will be converted and uploaded if the shader contains a uniform with a name matching that of the 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;
Note: some care must be taken to ensure the value wrapped by a QParameter can actually be converted to what the real uniform expect. Giving a value stored as an int where the actual shader uniform is of type float could result in undefined behaviors.
Note: when the targeted uniform is an array, the name should be the name of the uniform with [0] appended to it.
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];
When it comes to texture support, the QParameter value should be set to the appropriate QAbstractTexture subclass that matches the sampler type of the shader uniform.
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
See also QAbstractTexture.
Property Documentation
name : QString
Specifies the name of the parameter
Access functions:
QString | name() const |
void | setName(const QString &name) |
Notifier signal:
void | nameChanged(const QString &name) |
value : QVariant
Specifies the value of the parameter
Access functions:
QVariant | value() const |
void | setValue(const QVariant &dv) |
Notifier signal:
void | valueChanged(const QVariant &value) |
Member Function Documentation
QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)
Constructs a new QParameter with the specified parent.
QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
Constructs a new QParameter with the specified parent name and value.
QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
Constructs a new QParameter with the specified parent name and takes its value from texture.
© 2021 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.