Cairo Composite Manager 0.3.0
A versatile and extensible composite manager which use cairo for rendering.
Rendering can be done in 2D or 3D, using Xrender and Glitz backends. Plugins can be used to add some cool effects to your desktop.
The goal of cairo-compmgr is to provide an easy way to multiple rendering for compositing. I created it to fix a few specific problems we faced at work : we need to do compositing without using the GPU in a specific screen or, on the contraty, use only the GPU on another screen. We were also willing to keep Metacity as the window manager for various reasons. We first tried to enhance Metacity compositing features, but it doesn't provide any way to do 2D rendering, and it lead to several regressions.
Cairo is the best solution to do the rendering in 2D, 3D or both, but the main problem is that we cannot use Texture From Pixmap extension because it is an OpenGL feature.
The lack of this extension induces some performance problems. Indeed, cairo-compmgr needs to copy the pixmap provided by Xcomposite onto surface : to do so, cairo-compmgr does a XCopyArea from Pixmap to Ximage, from which it makes the final surface. This solution is a good way to get the surface but it implies some slowness, which cairo-compmgr tries to workaround by using Xshm to accelerate transfers, though this isn't enough to provide correct performances. To minimize these problems, cairo-compmgr tries to optimize the redraw of damaged areas.
CCM is using GObject for object model design and provides a plugin system which can be used to add various effects. At the moment "shadow" and "menu transparency" plugins are available, and others coming soon. To finish, cairo-compmgr aims not to add too many shortcuts and options which could conflict with the window manager, but we'll try to interact with it to add effects.
In the future, I'm planning to add a clutter backend, some means for other applications to interact with cairo-compmgr (especially accessibility applications), some cool plugins, etc.
Cairo Composite Manager
In a hurry? Add it to your Download Basket!
What's New in This Release:
- Drop glitz and openvg backends, we wait for new opengl cairo backend to add 3D support in CCM
- Use more classical dialog box for configuration and snapshot
- Vala is now required to build cairo-compmgr
- Add a mosaic ("exposé") plugin that you can activate with Tab keys