diff options
Diffstat (limited to 'src/quick/scenegraph/qsgthreadedrenderloop_p.h')
-rw-r--r-- | src/quick/scenegraph/qsgthreadedrenderloop_p.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/quick/scenegraph/qsgthreadedrenderloop_p.h b/src/quick/scenegraph/qsgthreadedrenderloop_p.h index b943739a0d..844d180788 100644 --- a/src/quick/scenegraph/qsgthreadedrenderloop_p.h +++ b/src/quick/scenegraph/qsgthreadedrenderloop_p.h @@ -60,18 +60,17 @@ public: void show(QQuickWindow *window); void hide(QQuickWindow *window); + void resize(QQuickWindow *window); void windowDestroyed(QQuickWindow *window); void exposureChanged(QQuickWindow *window); - void handleExposure(QQuickWindow *window); - void handleObscurity(QQuickWindow *window); - QImage grab(QQuickWindow *); void update(QQuickWindow *window); void maybeUpdate(QQuickWindow *window); QSGContext *sceneGraphContext() const; + QSGRenderContext *createRenderContext(QSGContext *) const; QAnimationDriver *animationDriver() const; @@ -86,6 +85,14 @@ public Q_SLOTS: void animationStopped(); private: + struct Window { + QQuickWindow *window; + QSGRenderThread *thread; + int timerId; + uint updateDuringSync : 1; + uint gotBrokenExposeFromPlatformPlugin : 1; + }; + friend class QSGRenderThread; void releaseResources(QQuickWindow *window, bool inDestructor); @@ -94,25 +101,24 @@ private: bool anyoneShowing() const; void initialize(); - void maybePostPolishRequest(); - + void startOrStopAnimationTimer(); + void maybePostPolishRequest(Window *w); void waitForReleaseComplete(); + void polishAndSync(Window *w); + void maybeUpdate(Window *window); - void polishAndSync(); + void handleExposure(Window *w); + void handleObscurity(Window *w); - struct Window { - QQuickWindow *window; - }; - QSGRenderThread *m_thread; + QSGContext *sg; QAnimationDriver *m_animation_driver; QList<Window> m_windows; int m_animation_timer; - int m_update_timer; int m_exhaust_delay; - bool m_sync_triggered_update; + bool m_locked; }; |