Revision f540d14...

Go back to digest for 24th February 2013

Optimization in KDE Base

Martin Gräßlin committed changes in [kde-workspace] /:

Introduce dedicated PaintRedirector subclasses for OpenGL/XRender

PaintRedirector is turned into an abstract class providing a factory
method which returns either an instance of
* OpenGLPaintRedirector
* NativeXRenderPaintRedirector
* RasterXRenderPaintRedirector

OpenGLPaintRedirector is basically doing exactly the same as the parent
class used to do before. Though the idea is to extend the functionality
to have the PaintRedirector write directly into OpenGL textures to limit
copying the complete decorations.

NativeXRenderPaintRedirector is similar to OpenGLPaintRedirector by
rendering into a QPixmap and providing the pictureHandle for the QPixmap
to SceneXRender.

RasterXRenderPaintRedirector is providing the functionality for the case
that the QPixmap/XPixmap relationship is not present. From the QPixmap
containing the pending decoration paint a QImage is created and then the
relevent parts are copied directly into the decoration pixmap.

REVIEW: 109074

File Changes

Modified 5 files
  •   kwin/client.cpp
  •   kwin/paintredirector.cpp
  •   kwin/paintredirector.h
  •   kwin/scene_opengl.cpp
  •   kwin/scene_xrender.cpp
5 files changed in total