Jump to content

KWin/GSoC/Modularization

From KDE Community Wiki

Modularization of KWin

Removing Scene dependency from Core

Use of Workspace

  • scene_open_glx.cpp and scene_opengl_egl.cpp
    • wspace->destroyOverlay();
    • wspace->overlayWindow();
    • wspace->createOverlay();
    • wspace->setupOverlay(buffer);
  • only scene_open_glx.cpp
    • QTimer::singleShot(0, Workspace::self(), SLOT(fallbackToXRenderCompositing()));
  • scene_xrender.cpp
    • wspace->createOverlay();
    • wspace->setupOverlay(None);
    • wspace->overlayWindow()
    • wspace->destroyOverlay();
    • wspace->setOverlayShape(reg);
    • wspace->showOverlay();
    • wspace->hideOverlay();
    • QTimer::singleShot(0, Workspace::self(), SLOT(finishCompositing()));
    • Workspace::self()->decorationHasAlpha()


Use of Toplevel (in Scene::Window)

  • scene.cpp
    • toplevel->shape()
    • toplevel->frameId()
    • toplevel->clientPos()
    • toplevel->clientSize()
    • toplevel->isOnCurrentDesktop()
    • toplevel->isOnCurrentActivity()
    • toplevel->geometry()
    • toplevel->opacity()
    • toplevel->hasAlpha()
    • toplevel->visibleRect().size()
  • scene_opengl.cpp
    • toplevel->damage()
    • toplevel->windowPixmap()
    • toplevel->size()
    • toplevel->depth()
    • toplevel->resetDamage
    • toplevel->clientPos()
    • toplevel->clientSize()
    • toplevel->visibleRect()
    • toplevel->hasAlpha()
  • scene_xrender.cpp
    • toplevel->damage()
    • toplevel->windowPixmap()
    • toplevel->resetDamage
    • toplevel->rect()
    • toplevel)->decorationRect()
    • toplevel->visibleRect()
    • toplevel->clientPos()
    • toplevel->clientSize()
  • scene_open_glx.cpp and scene_opengl_egl.cpp
    • void SceneOpenGL::paint(QRegion damage, ToplevelList toplevels)

Use of Client (in Scene::Window)

  • scene.cpp
    • c->mask()
    • c->isShade()
    • c->isShown(true);
    • c->isMinimized()
    • c->clientGroup()
    • c->isHiddenInternal()
    • client->decorationRect()
    • client->layoutDecorationRects()
    • c->effectWindow()
  • scene_opengl.cpp
    • client->noBorder()
    • client->decorationPixmapRequiresRepaint();
    • client->ensureDecorationPixmapsPainted();
    • client->layoutDecorationRects()
    • client->leftDecoPixmap();
    • client->topDecoPixmap();
    • client->rightDecoPixmap();
    • client->bottomDecoPixmap();
  • scene_xrender.cpp
    • client->decorationRect();
    • client->noBorder()
    • client->ensureDecorationPixmapsPainted();
    • client->leftDecoPixmap();
    • client->topDecoPixmap();
    • client->rightDecoPixmap();
    • client->bottomDecoPixmap();

Use of Deleted (in Scene::Window)

Besides checks, if dynamic_cast< Deleted* >(toplevel) != NULL, Toplevel's sublclass Deleted is used in:

  • scene_opengl.cpp
    • deleted->noBorder()
    • deleted->leftDecoPixmap();
    • deleted->topDecoPixmap();
    • deleted->rightDecoPixmap();
    • deleted->bottomDecoPixmap();
    • deleted->layoutDecorationRects();
  • scene_xrender.cpp
    • deleted->decorationRect()
    • deleted->noBorder()
    • deleted->leftDecoPixmap();
    • deleted->topDecoPixmap();
    • deleted->rightDecoPixmap();
    • deleted->bottomDecoPixmap();
    • deleted->layoutDecorationRects();
    • deleted->decorationRect()