KWin
Loading...
Searching...
No Matches
Public Types | Signals | Public Member Functions | Static Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
KWin::Compositor Class Referenceabstract

#include <compositor.h>

Inheritance diagram for KWin::Compositor:
KWin::WaylandCompositor KWin::X11Compositor

Public Types

enum class  State { On = 0 , Off , Starting , Stopping }
 

Signals

void compositingToggled (bool active)
 
void aboutToDestroy ()
 
void aboutToToggleCompositing ()
 
void sceneCreated ()
 

Public Member Functions

 ~Compositor () override
 
virtual void reinitialize ()
 
bool isActive ()
 
WorkspaceScenescene () const
 
CursorScenecursorScene () const
 
RenderBackendbackend () const
 
void keepSupportProperty (xcb_atom_t atom)
 
void removeSupportProperty (xcb_atom_t atom)
 
virtual bool compositingPossible () const
 
virtual QString compositingNotPossibleReason () const
 
virtual bool openGLCompositingIsBroken () const
 
virtual void inhibit (Window *window)
 
virtual void uninhibit (Window *window)
 

Static Public Member Functions

static Compositorself ()
 
static bool compositing ()
 Static check to test whether the Compositor is available and active.
 

Protected Slots

virtual void composite (RenderLoop *renderLoop)
 

Protected Member Functions

 Compositor (QObject *parent=nullptr)
 
virtual void start ()=0
 
virtual void stop ()=0
 
void deleteUnusedSupportProperties ()
 
OutputfindOutput (RenderLoop *loop) const
 
void addSuperLayer (RenderLayer *layer)
 
void removeSuperLayer (RenderLayer *layer)
 
void prePaintPass (RenderLayer *layer, QRegion *damage)
 
void postPaintPass (RenderLayer *layer)
 
void paintPass (RenderLayer *layer, const RenderTarget &renderTarget, const QRegion &region)
 
void framePass (RenderLayer *layer, OutputFrame *frame)
 

Protected Attributes

State m_state = State::Off
 
QList< xcb_atom_t > m_unusedSupportProperties
 
QTimer m_unusedSupportPropertyTimer
 
std::unique_ptr< WorkspaceScenem_scene
 
std::unique_ptr< CursorScenem_cursorScene
 
std::unique_ptr< RenderBackendm_backend
 
QHash< RenderLoop *, RenderLayer * > m_superlayers
 

Static Protected Attributes

static Compositors_compositor = nullptr
 

Detailed Description

Definition at line 34 of file compositor.h.

Member Enumeration Documentation

◆ State

enum class KWin::Compositor::State
strong
Enumerator
On 
Off 
Starting 
Stopping 

Definition at line 38 of file compositor.h.

Constructor & Destructor Documentation

◆ ~Compositor()

KWin::Compositor::~Compositor ( )
override

Definition at line 67 of file compositor.cpp.

◆ Compositor()

KWin::Compositor::Compositor ( QObject * parent = nullptr)
explicitprotected

Definition at line 45 of file compositor.cpp.

Member Function Documentation

◆ aboutToDestroy

void KWin::Compositor::aboutToDestroy ( )
signal

◆ aboutToToggleCompositing

void KWin::Compositor::aboutToToggleCompositing ( )
signal

◆ addSuperLayer()

void KWin::Compositor::addSuperLayer ( RenderLayer * layer)
protected

Definition at line 84 of file compositor.cpp.

◆ backend()

RenderBackend * KWin::Compositor::backend ( ) const
inline

Definition at line 68 of file compositor.h.

◆ composite

void KWin::Compositor::composite ( RenderLoop * renderLoop)
protectedvirtualslot

Reimplemented in KWin::X11Compositor.

Definition at line 136 of file compositor.cpp.

◆ compositing()

static bool KWin::Compositor::compositing ( )
inlinestatic

Static check to test whether the Compositor is available and active.

Returns
bool true if there is a Compositor and it is active, false otherwise

Definition at line 78 of file compositor.h.

◆ compositingNotPossibleReason()

QString KWin::Compositor::compositingNotPossibleReason ( ) const
virtual

Returns a user facing text explaining why compositing is not possible in case compositingPossible returns false.

The default implementation returns an empty string.

See also
compositingPossible

Reimplemented in KWin::X11Compositor.

Definition at line 282 of file compositor.cpp.

◆ compositingPossible()

bool KWin::Compositor::compositingPossible ( ) const
virtual

Whether Compositing is possible in the Platform. Returning false in this method makes only sense if requiresCompositing returns false.

The default implementation returns true.

See also
requiresCompositing

Reimplemented in KWin::X11Compositor.

Definition at line 277 of file compositor.cpp.

◆ compositingToggled

void KWin::Compositor::compositingToggled ( bool active)
signal

◆ cursorScene()

CursorScene * KWin::Compositor::cursorScene ( ) const
inline

Definition at line 64 of file compositor.h.

◆ deleteUnusedSupportProperties()

void KWin::Compositor::deleteUnusedSupportProperties ( )
protected

Definition at line 108 of file compositor.cpp.

◆ findOutput()

Output * KWin::Compositor::findOutput ( RenderLoop * loop) const
protected

Definition at line 73 of file compositor.cpp.

◆ framePass()

void KWin::Compositor::framePass ( RenderLayer * layer,
OutputFrame * frame )
protected

Definition at line 220 of file compositor.cpp.

◆ inhibit()

void KWin::Compositor::inhibit ( Window * window)
virtual

Reimplemented in KWin::X11Compositor.

Definition at line 292 of file compositor.cpp.

◆ isActive()

bool KWin::Compositor::isActive ( )

Whether the Compositor is active. That is a Scene is present and the Compositor is not shutting down itself.

Definition at line 272 of file compositor.cpp.

◆ keepSupportProperty()

void KWin::Compositor::keepSupportProperty ( xcb_atom_t atom)

Definition at line 97 of file compositor.cpp.

◆ openGLCompositingIsBroken()

bool KWin::Compositor::openGLCompositingIsBroken ( ) const
virtual

Whether OpenGL compositing is broken. The Platform can implement this method if it is able to detect whether OpenGL compositing broke (e.g. triggered a crash in a previous run).

Default implementation returns false.

See also
createOpenGLSafePoint

Reimplemented in KWin::X11Compositor.

Definition at line 287 of file compositor.cpp.

◆ paintPass()

void KWin::Compositor::paintPass ( RenderLayer * layer,
const RenderTarget & renderTarget,
const QRegion & region )
protected

Definition at line 260 of file compositor.cpp.

◆ postPaintPass()

void KWin::Compositor::postPaintPass ( RenderLayer * layer)
protected

Definition at line 249 of file compositor.cpp.

◆ prePaintPass()

void KWin::Compositor::prePaintPass ( RenderLayer * layer,
QRegion * damage )
protected

Definition at line 229 of file compositor.cpp.

◆ reinitialize()

void KWin::Compositor::reinitialize ( )
virtual

Re-initializes the Compositor completely. Connected to the D-Bus signal org.kde.KWin /KWin reinitCompositing

Reimplemented in KWin::X11Compositor.

Definition at line 124 of file compositor.cpp.

◆ removeSuperLayer()

void KWin::Compositor::removeSuperLayer ( RenderLayer * layer)
protected

Definition at line 90 of file compositor.cpp.

◆ removeSupportProperty()

void KWin::Compositor::removeSupportProperty ( xcb_atom_t atom)

Definition at line 102 of file compositor.cpp.

◆ scene()

WorkspaceScene * KWin::Compositor::scene ( ) const
inline

Definition at line 60 of file compositor.h.

◆ sceneCreated

void KWin::Compositor::sceneCreated ( )
signal

◆ self()

Compositor * KWin::Compositor::self ( )
static

Definition at line 40 of file compositor.cpp.

◆ start()

virtual void KWin::Compositor::start ( )
protectedpure virtual

◆ stop()

virtual void KWin::Compositor::stop ( )
protectedpure virtual

◆ uninhibit()

void KWin::Compositor::uninhibit ( Window * window)
virtual

Reimplemented in KWin::X11Compositor.

Definition at line 296 of file compositor.cpp.

Member Data Documentation

◆ m_backend

std::unique_ptr<RenderBackend> KWin::Compositor::m_backend
protected

Definition at line 154 of file compositor.h.

◆ m_cursorScene

std::unique_ptr<CursorScene> KWin::Compositor::m_cursorScene
protected

Definition at line 153 of file compositor.h.

◆ m_scene

std::unique_ptr<WorkspaceScene> KWin::Compositor::m_scene
protected

Definition at line 152 of file compositor.h.

◆ m_state

State KWin::Compositor::m_state = State::Off
protected

Definition at line 149 of file compositor.h.

◆ m_superlayers

QHash<RenderLoop *, RenderLayer *> KWin::Compositor::m_superlayers
protected

Definition at line 155 of file compositor.h.

◆ m_unusedSupportProperties

QList<xcb_atom_t> KWin::Compositor::m_unusedSupportProperties
protected

Definition at line 150 of file compositor.h.

◆ m_unusedSupportPropertyTimer

QTimer KWin::Compositor::m_unusedSupportPropertyTimer
protected

Definition at line 151 of file compositor.h.

◆ s_compositor

Compositor * KWin::Compositor::s_compositor = nullptr
staticprotected

Definition at line 128 of file compositor.h.


The documentation for this class was generated from the following files: