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:
Gunnar Sletta 2013-11-13 09:42:08 +01:00 committed by The Qt Project
parent 64bbcfa678
commit cd0f3fba78
2 changed files with 7 additions and 0 deletions

View File

@ -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

View File

@ -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;