/src/qtbase/src/gui/animation/qguivariantanimation.cpp
Line | Count | Source |
1 | | // Copyright (C) 2016 The Qt Company Ltd. |
2 | | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
3 | | // Qt-Security score:significant reason:default |
4 | | #include <QtGui/qtguiglobal.h> |
5 | | |
6 | | #include <QtCore/qvariantanimation.h> |
7 | | #include <private/qvariantanimation_p.h> |
8 | | #include <QtGui/qcolor.h> |
9 | | #include <QtGui/qvector2d.h> |
10 | | #include <QtGui/qvector3d.h> |
11 | | #include <QtGui/qvector4d.h> |
12 | | #include <QtGui/qquaternion.h> |
13 | | |
14 | | QT_BEGIN_NAMESPACE |
15 | | |
16 | | template<> Q_INLINE_TEMPLATE QColor _q_interpolate(const QColor &f,const QColor &t, qreal progress) |
17 | 0 | { |
18 | 0 | return QColor(qBound(0,_q_interpolate(f.red(), t.red(), progress),255), |
19 | 0 | qBound(0,_q_interpolate(f.green(), t.green(), progress),255), |
20 | 0 | qBound(0,_q_interpolate(f.blue(), t.blue(), progress),255), |
21 | 0 | qBound(0,_q_interpolate(f.alpha(), t.alpha(), progress),255)); |
22 | 0 | } |
23 | | |
24 | | template<> Q_INLINE_TEMPLATE QQuaternion _q_interpolate(const QQuaternion &f,const QQuaternion &t, qreal progress) |
25 | 0 | { |
26 | 0 | return QQuaternion::slerp(f, t, progress); |
27 | 0 | } |
28 | | |
29 | | void qRegisterGuiGetInterpolator() |
30 | 50 | { |
31 | 50 | qRegisterAnimationInterpolator<QColor>(_q_interpolateVariant<QColor>); |
32 | 50 | qRegisterAnimationInterpolator<QVector2D>(_q_interpolateVariant<QVector2D>); |
33 | 50 | qRegisterAnimationInterpolator<QVector3D>(_q_interpolateVariant<QVector3D>); |
34 | 50 | qRegisterAnimationInterpolator<QVector4D>(_q_interpolateVariant<QVector4D>); |
35 | 50 | qRegisterAnimationInterpolator<QQuaternion>(_q_interpolateVariant<QQuaternion>); |
36 | 50 | } |
37 | | Q_CONSTRUCTOR_FUNCTION(qRegisterGuiGetInterpolator) |
38 | | |
39 | | static void qUnregisterGuiGetInterpolator() |
40 | 0 | { |
41 | | // casts required by Sun CC 5.5 |
42 | 0 | qRegisterAnimationInterpolator<QColor>( |
43 | 0 | (QVariant (*)(const QColor &, const QColor &, qreal))nullptr); |
44 | 0 | qRegisterAnimationInterpolator<QVector2D>( |
45 | 0 | (QVariant (*)(const QVector2D &, const QVector2D &, qreal))nullptr); |
46 | 0 | qRegisterAnimationInterpolator<QVector3D>( |
47 | 0 | (QVariant (*)(const QVector3D &, const QVector3D &, qreal))nullptr); |
48 | 0 | qRegisterAnimationInterpolator<QVector4D>( |
49 | 0 | (QVariant (*)(const QVector4D &, const QVector4D &, qreal))nullptr); |
50 | 0 | qRegisterAnimationInterpolator<QQuaternion>( |
51 | 0 | (QVariant (*)(const QQuaternion &, const QQuaternion &, qreal))nullptr); |
52 | 0 | } |
53 | | Q_DESTRUCTOR_FUNCTION(qUnregisterGuiGetInterpolator) |
54 | | |
55 | | QT_END_NAMESPACE |