- class QParameter¶
Provides storage for a name and value pair. This maps to a shader uniform. More…
Synopsis¶
Properties¶
Methods¶
def
__init__()
def
name()
def
value()
Slots¶
def
setName()
def
setValue()
Signals¶
def
nameChanged()
def
valueChanged()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description¶
A
QParameter
can be referenced by aQRenderPass
,QTechnique
,QEffect
,QMaterial
,QTechniqueFilter
,QRenderPassFilter
. At runtime, depending on which shader is selected for a given step of the rendering, the value contained in aQParameter
will be converted and uploaded if the shader contains a uniform with a name matching that of theQParameter
.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.
Note
QParameter
node can not be disabled.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 appropriateQAbstractTexture
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
Note
Properties can be used directly when
from __feature__ import true_property
is used or via accessor functions otherwise.- property nameᅟ: str¶
Specifies the name of the parameter
- Access functions:
Signal
nameChanged()
- property valueᅟ: object¶
Specifies the value of the parameter
- Access functions:
Signal
valueChanged()
- __init__([parent=None])¶
- Parameters:
parent –
QNode
Constructs a new
QParameter
with the specifiedparent
.- __init__(name, texture[, parent=None])
- Parameters:
name – str
texture –
QAbstractTexture
parent –
QNode
Constructs a new
QParameter
with the specifiedparent
name
and takes its value fromtexture
.- __init__(name, value[, parent=None])
- Parameters:
name – str
value – object
parent –
QNode
Constructs a new
QParameter
with the specifiedparent
name
andvalue
.- name()¶
- Return type:
str
See also
setName()
Getter of property
nameᅟ
.- nameChanged(name)¶
- Parameters:
name – str
Notification signal of property
nameᅟ
.- setName(name)¶
- Parameters:
name – str
See also
name()
Setter of property
nameᅟ
.- setValue(dv)¶
- Parameters:
dv – object
See also
value()
Setter of property
valueᅟ
.- value()¶
- Return type:
object
See also
setValue()
Getter of property
valueᅟ
.- valueChanged(value)¶
- Parameters:
value – object
Notification signal of property
valueᅟ
.