Qt3DRender::QParameter Class
class Qt3DRender::QParameterProporciona almacenamiento para un par de nombre y valor. Se asigna a un uniforme de sombreado. Más...
| Cabecera: | #include <Qt3DRender/QParameter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender)target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| En QML: | Parameter |
| Hereda: | Qt3DCore::QNode |
| Status: | Obsoleto |
Propiedades
Funciones públicas
| QParameter(Qt3DCore::QNode *parent = nullptr) | |
| QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr) | |
| QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr) | |
| QString | name() const |
| QVariant | value() const |
Ranuras públicas
Señales
| void | nameChanged(const QString &name) |
| void | valueChanged(const QVariant &value) |
Descripción detallada
Un QParameter puede ser referenciado por un QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter. En tiempo de ejecución, dependiendo del shader seleccionado para un determinado paso del renderizado, el valor contenido en un QParameter será convertido y cargado si el shader contiene un uniforme con un nombre que coincida con el del 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;
Nota: debe tenerse cierto cuidado para asegurar que el valor envuelto por un QParameter puede realmente ser convertido a lo que el uniforme real espera. Dar un valor almacenado como int cuando el uniforme real del shader es de tipo float podría resultar en comportamientos indefinidos.
Nota: cuando el uniforme objetivo es un array, el nombre debe ser el nombre del uniforme con [0] añadido.
Nota: El nodo QParameter no puede ser desactivado.
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];
Cuando se trata de soporte de texturas, el valor de QParameter debe establecerse a la subclase QAbstractTexture apropiada que coincida con el tipo de muestreador del uniforme del shader.
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
Ver también QAbstractTexture.
Documentación de propiedades
name : QString
Especifica el nombre del parámetro
Funciones de acceso:
| QString | name() const |
| void | setName(const QString &name) |
Señal del notificador:
| void | nameChanged(const QString &name) |
value : QVariant
Especifica el valor del parámetro
Funciones de acceso:
| QVariant | value() const |
| void | setValue(const QVariant &dv) |
Señal del notificador:
| void | valueChanged(const QVariant &value) |
Documentación de la función miembro
[explicit] QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)
Construye un nuevo QParameter con el parent especificado.
[explicit] QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
Construye un nuevo QParameter con el parent name especificado y toma su valor de texture.
[explicit] QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
Construye un nuevo QParameter con el parent name y value especificados.
© 2026 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.