QParameter Class
class Qt3DRender::QParameterBietet Speicherplatz für ein Paar aus Name und Wert. Dieses wird auf eine Shader-Uniform abgebildet. Mehr...
Kopfzeile: | #include <Qt3DRender/QParameter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | Parameter |
Vererbt: | Qt3DCore::QNode |
Status: | Veraltet |
Eigenschaften
Öffentliche Funktionen
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 |
Öffentliche Slots
Signale
void | nameChanged(const QString &name) |
void | valueChanged(const QVariant &value) |
Detaillierte Beschreibung
Ein QParameter kann von einem QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter referenziert werden. Je nachdem, welcher Shader für einen bestimmten Rendering-Schritt ausgewählt wurde, wird der in einem QParameter enthaltene Wert zur Laufzeit konvertiert und hochgeladen, wenn der Shader eine Uniform mit einem Namen enthält, der mit dem des QParameters übereinstimmt.
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;
Hinweis: Es muss sichergestellt werden, dass der in einem QParameter enthaltene Wert tatsächlich in das konvertiert werden kann, was die tatsächliche Uniform erwartet. Die Angabe eines als int gespeicherten Wertes, wenn die tatsächliche Shader-Uniform vom Typ float ist, könnte zu undefiniertem Verhalten führen.
Hinweis: Wenn die Ziel-Uniform ein Array ist, sollte der Name der Name der Uniform mit angehängter [0] sein.
Hinweis: Der QParameter-Knoten kann nicht deaktiviert werden.
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];
Wenn es um Texturunterstützung geht, sollte der QParameter-Wert auf die entsprechende QAbstractTexture Unterklasse gesetzt werden, die dem Sampler-Typ der Shader-Uniform entspricht.
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
Siehe auch QAbstractTexture.
Dokumentation der Eigenschaft
name : QString
Gibt den Namen des Parameters an
Zugriffsfunktionen:
QString | name() const |
void | setName(const QString &name) |
Meldendes Signal:
void | nameChanged(const QString &name) |
value : QVariant
Gibt den Wert des Parameters an
Zugriffsfunktionen:
QVariant | value() const |
void | setValue(const QVariant &dv) |
Benachrichtigungssignal:
void | valueChanged(const QVariant &value) |
Mitgliederfunktion Dokumentation
[explicit]
QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)
Konstruiert einen neuen QParameter mit dem angegebenen parent.
[explicit]
QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
Konstruiert einen neuen QParameter mit dem angegebenen parent name und übernimmt dessen Wert von texture.
[explicit]
QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
Konstruiert einen neuen QParameter mit dem angegebenen parent name und value.
© 2025 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.