/**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of Qt Quick 2d Renderer module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE$ ** 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. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef RENDERLOOP_H #define RENDERLOOP_H #include class RenderLoop : public QSGRenderLoop { Q_OBJECT public: RenderLoop(); ~RenderLoop(); void show(QQuickWindow *window); void hide(QQuickWindow *window); void windowDestroyed(QQuickWindow *window); void renderWindow(QQuickWindow *window); void exposureChanged(QQuickWindow *window); QImage grab(QQuickWindow *window); void maybeUpdate(QQuickWindow *window); void update(QQuickWindow *window) { maybeUpdate(window); } // identical for this implementation. void releaseResources(QQuickWindow *) { } virtual QSurface::SurfaceType windowSurfaceType() const; QAnimationDriver *animationDriver() const { return 0; } QSGContext *sceneGraphContext() const; QSGRenderContext *createRenderContext(QSGContext *) const { return rc; } bool event(QEvent *); struct WindowData { bool updatePending : 1; bool grabOnly : 1; }; QHash m_windows; QSGContext *sg; QSGRenderContext *rc; QImage grabContent; int m_update_timer; bool eventPending; }; #endif // RENDERLOOP_H