30 BlockRuleSuspend = 1 << 1,
31 AllReasonSuspend = 0xff
33 Q_DECLARE_FLAGS(SuspendReasons, SuspendReason)
35 Q_FLAG(SuspendReasons)
59 void suspend(SuspendReason reason);
78 void resume(SuspendReason reason);
95 void createOpenGLSafePoint(OpenGLSafePoint safePoint);
97 void inhibit(
Window *window)
override;
98 void uninhibit(
Window *window)
override;
100 void reinitialize()
override;
101 bool compositingPossible()
const override;
102 QString compositingNotPossibleReason()
const override;
103 bool openGLCompositingIsBroken()
const override;
108 void start()
override;
109 void stop()
override;
110 void composite(
RenderLoop *renderLoop)
override;
115 bool attemptOpenGLCompositing();
117 void releaseCompositorSelection();
118 void destroyCompositorSelection();
120 std::unique_ptr<QThread> m_openGLFreezeProtectionThread;
121 std::unique_ptr<QTimer> m_openGLFreezeProtection;
122 std::unique_ptr<X11SyncManager> m_syncManager;
123 std::unique_ptr<X11CompositorSelectionOwner> m_selectionOwner;
124 QTimer m_releaseSelectionTimer;
128 SuspendReasons m_suspended;
129 QSet<Window *> m_inhibitors;
130 int m_framesToTestForSafety = 3;