12#include <kwin_export.h>
52 virtual void reinitialize();
66 return m_cursorScene.get();
70 return m_backend.get();
80 return s_compositor !=
nullptr && s_compositor->isActive();
84 void keepSupportProperty(xcb_atom_t atom);
85 void removeSupportProperty(xcb_atom_t atom);
94 virtual bool compositingPossible()
const;
102 virtual QString compositingNotPossibleReason()
const;
111 virtual bool openGLCompositingIsBroken()
const;
113 virtual void inhibit(
Window *window);
114 virtual void uninhibit(
Window *window);
123 explicit Compositor(QObject *parent =
nullptr);
131 virtual void composite(
RenderLoop *renderLoop);
134 void handleFrameRequested(
RenderLoop *renderLoop);
137 void deleteUnusedSupportProperties();
144 void prePaintPass(
RenderLayer *layer, QRegion *damage);
CursorScene * cursorScene() const
void compositingToggled(bool active)
static Compositor * s_compositor
std::unique_ptr< RenderBackend > m_backend
std::unique_ptr< CursorScene > m_cursorScene
QTimer m_unusedSupportPropertyTimer
void aboutToToggleCompositing()
WorkspaceScene * scene() const
static bool compositing()
Static check to test whether the Compositor is available and active.
QList< xcb_atom_t > m_unusedSupportProperties
RenderBackend * backend() const
std::unique_ptr< WorkspaceScene > m_scene
QHash< RenderLoop *, RenderLayer * > m_superlayers