diff options
Diffstat (limited to 'src/plugins/scenegraph/softwarecontext/renderloop.cpp')
-rw-r--r-- | src/plugins/scenegraph/softwarecontext/renderloop.cpp | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/src/plugins/scenegraph/softwarecontext/renderloop.cpp b/src/plugins/scenegraph/softwarecontext/renderloop.cpp index dad2c1c9cb..0a10ffa339 100644 --- a/src/plugins/scenegraph/softwarecontext/renderloop.cpp +++ b/src/plugins/scenegraph/softwarecontext/renderloop.cpp @@ -1,23 +1,31 @@ -/****************************************************************************** +/**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Qt Quick 2d Renderer module. -** -** $QT_BEGIN_LICENSE:COMM$ +** This file is part of the Qt Quick 2D Renderer module of the Qt Toolkit. ** +** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** -******************************************************************************/ +****************************************************************************/ #include "renderloop.h" @@ -30,7 +38,6 @@ #include <private/qquickprofiler_p.h> RenderLoop::RenderLoop() - : eventPending(false) { sg = QSGContext::createDefaultContext(); rc = sg->createRenderContext(); @@ -185,12 +192,7 @@ void RenderLoop::maybeUpdate(QQuickWindow *window) return; m_windows[window].updatePending = true; - - if (!eventPending) { - const int exhaust_delay = 5; - m_update_timer = startTimer(exhaust_delay, Qt::PreciseTimer); - eventPending = true; - } + window->requestUpdate(); } QSurface::SurfaceType RenderLoop::windowSurfaceType() const @@ -206,19 +208,7 @@ QSGContext *RenderLoop::sceneGraphContext() const } -bool RenderLoop::event(QEvent *e) +void RenderLoop::handleUpdateRequest(QQuickWindow *window) { - if (e->type() == QEvent::Timer) { - eventPending = false; - killTimer(m_update_timer); - m_update_timer = 0; - for (QHash<QQuickWindow *, WindowData>::const_iterator it = m_windows.constBegin(); - it != m_windows.constEnd(); ++it) { - const WindowData &data = it.value(); - if (data.updatePending) - renderWindow(it.key()); - } - return true; - } - return QObject::event(e); + renderWindow(window); } |