KWin/GSoC/Modularization: Difference between revisions

From KDE Community Wiki
Line 2: Line 2:
== Removing Scene dependency from Core ==
== Removing Scene dependency from Core ==
=== Use of Workspace ===
=== 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
* only scene_open_glx.cpp
Line 12: Line 7:


* scene_xrender.cpp
* 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()));
** QTimer::singleShot(0, Workspace::self(), SLOT(finishCompositing()));
** Workspace::self()->decorationHasAlpha()
** Workspace::self()->decorationHasAlpha()


== Use of Toplevel (in Scene::Window) ==
== Use of Toplevel (in Scene::Window) ==

Revision as of 09:38, 10 July 2011

Modularization of KWin

Removing Scene dependency from Core

Use of Workspace

  • only scene_open_glx.cpp
    • QTimer::singleShot(0, Workspace::self(), SLOT(fallbackToXRenderCompositing()));
  • scene_xrender.cpp
    • 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()