diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2016-03-30 16:36:46 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2016-04-06 12:06:34 +0000 |
commit | 0a1ff7aacaf7da52c4345f4c354729d53c2f31c7 (patch) | |
tree | 77bce870823e0db661b7ff95ea1c4910e6f3a828 /src/quick/util/qquickanimatorjob.cpp | |
parent | 7388c6d5f8bf4c9c7f09a36d399e0131c7052c6b (diff) |
D3D12: Fix Animators with non-GL backends
Add a test for render thread Animators.
Change-Id: Iddb11f734ccec00d76ca99cd8349cbb65750e784
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/quick/util/qquickanimatorjob.cpp')
-rw-r--r-- | src/quick/util/qquickanimatorjob.cpp | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index b7e0d6437a..3502a28301 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -174,7 +174,7 @@ void QQuickAnimatorProxyJob::setWindow(QQuickWindow *window) } else if (!m_controller && m_job) { m_controller = QQuickWindowPrivate::get(window)->animationController; - if (window->openglContext()) + if (window->isSceneGraphInitialized()) readyToAnimate(); else connect(window, SIGNAL(sceneGraphInitialized()), this, SLOT(sceneGraphInitialized())); @@ -387,9 +387,7 @@ void QQuickXAnimatorJob::updateCurrentTime(int time) { if (!m_controller) return; -#ifndef QT_NO_OPENGL - Q_ASSERT(!m_controller->m_window->openglContext() || m_controller->m_window->openglContext()->thread() == QThread::currentThread()); -#endif + m_value = m_from + (m_to - m_from) * m_easing.valueForProgress(time / (qreal) m_duration); m_helper->dx = m_value; m_helper->wasChanged = true; @@ -405,9 +403,7 @@ void QQuickYAnimatorJob::updateCurrentTime(int time) { if (!m_controller) return; -#ifndef QT_NO_OPENGL - Q_ASSERT(!m_controller->m_window->openglContext() || m_controller->m_window->openglContext()->thread() == QThread::currentThread()); -#endif + m_value = m_from + (m_to - m_from) * m_easing.valueForProgress(time / (qreal) m_duration); m_helper->dy = m_value; m_helper->wasChanged = true; @@ -476,9 +472,6 @@ void QQuickOpacityAnimatorJob::updateCurrentTime(int time) { if (!m_controller || !m_opacityNode) return; -#ifndef QT_NO_OPENGL - Q_ASSERT(!m_controller->m_window->openglContext() || m_controller->m_window->openglContext()->thread() == QThread::currentThread()); -#endif m_value = m_from + (m_to - m_from) * m_easing.valueForProgress(time / (qreal) m_duration); m_opacityNode->setOpacity(m_value); @@ -494,9 +487,6 @@ void QQuickScaleAnimatorJob::updateCurrentTime(int time) { if (!m_controller) return; -#ifndef QT_NO_OPENGL - Q_ASSERT(!m_controller->m_window->openglContext() || m_controller->m_window->openglContext()->thread() == QThread::currentThread()); -#endif m_value = m_from + (m_to - m_from) * m_easing.valueForProgress(time / (qreal) m_duration); m_helper->scale = m_value; @@ -516,9 +506,6 @@ void QQuickRotationAnimatorJob::updateCurrentTime(int time) { if (!m_controller) return; -#ifndef QT_NO_OPENGL - Q_ASSERT(!m_controller->m_window->openglContext() || m_controller->m_window->openglContext()->thread() == QThread::currentThread()); -#endif float t = m_easing.valueForProgress(time / (qreal) m_duration); switch (m_direction) { @@ -599,9 +586,7 @@ void QQuickUniformAnimatorJob::updateCurrentTime(int time) { if (!m_controller) return; -#ifndef QT_NO_OPENGL - Q_ASSERT(!m_controller->m_window->openglContext() || m_controller->m_window->openglContext()->thread() == QThread::currentThread()); -#endif + if (!m_node || m_uniformIndex == -1 || m_uniformType == -1) return; |