Add support for quaternion in ShaderEffect
Task-number: QTBUG-32605 Change-Id: I4e90a3505740dd9a8b369dac6ce05ce066d14d44 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
This commit is contained in:
parent
64bbcfa678
commit
cd0f3fba78
|
@ -559,6 +559,7 @@ void QQuickShaderEffectCommon::propertyChanged(QQuickItem *item, int mappedId,
|
|||
\li QVector4D -> vec4
|
||||
\li QTransform -> mat3
|
||||
\li QMatrix4x4 -> mat4
|
||||
\li QQuaternion -> vec4, scalar value is \c w.
|
||||
\li \l Image, \l ShaderEffectSource -> sampler2D - Origin is in the top-left
|
||||
corner, and the color values are premultiplied.
|
||||
\endlist
|
||||
|
|
|
@ -197,6 +197,12 @@ void QQuickCustomMaterialShader::updateState(const RenderState &state, QSGMateri
|
|||
case QMetaType::QVector4D:
|
||||
program()->setUniformValue(loc, qvariant_cast<QVector4D>(d.value));
|
||||
break;
|
||||
case QMetaType::QQuaternion:
|
||||
{
|
||||
QQuaternion q = qvariant_cast<QQuaternion>(d.value);
|
||||
program()->setUniformValue(loc, q.x(), q.y(), q.z(), q.scalar());
|
||||
}
|
||||
break;
|
||||
case QMetaType::QMatrix4x4:
|
||||
program()->setUniformValue(loc, qvariant_cast<QMatrix4x4>(d.value));
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue