GNOME Bugzilla – Bug 581813
Make clutter the only compositor
Last modified: 2009-06-30 13:48:17 UTC
This patch removes the xrender compositor and make xcomposite, render, and clutter support mandatory. This also allows us to remove all the #ifdefs associated with supported compilation without compositing.
Created attachment 134237 [details] [review]
Always use clutter compositing
Depends on http://bugzilla.gnome.org/show_bug.cgi?id=581238
Generally, looks good. The on problem I saw is that the files
Shouldn't be renamed to compositor-* because they are defining types MutterPlugin, etc. The original Metacity style is probably more
plugin.c plugin-manager.c module.c
And so forth, but naming the files after the namespaced-type names is pretty common throughout GNOME. I'll attach a revised version of your patch:
- That is rebased against the override-redirect-exclusion-branch
- That has those files renamed back to mutter-*
- With a somewhat rewritten log message
(I know that you already did the rebase, but I needed this to work on some other compositor interfaces changes, and you weren't around, so it was easier to just redo it.)
Created attachment 137381 [details] [review]
There can be only one compositor engine
Mutter is a Clutter-based compositing manager. So, remove the code for
the XRender-based compositor, and make it mandatory to have XComposite,
XRender and Clutter.
Run-time support for non-composited operation is left for now.
* src/compositor/mutter/: Move files from this subdirectory into
the main compositor/ directory.
* include/compositor-clutter.h: Remove this stray file, it had been
replaced with compositor-mutter.h some time back.
Created attachment 137387 [details] [review]
Remove MetaCompositor virtualization
Now that we only have one compositor, there's no reason to access the
compositor functions through a vtable. Remove the MetaCompositor virtualization
and make the clutter code implement the meta_compositor_* functions
Move the checks for the compositor being NULL from the vtable wrappers
to the calling code (most of them were already there, so just a few
needed to be added)
Note: the compositor is actually hard-coded on at the moment and the plan
is to remove the non-composited code entirely, so the checks are
added only to keep things neat: they have no practical effect.
Created attachment 137388 [details] [review]
Make MetaCompositor the clutter compositor
* Move compositor-mutter.c to compositor.c
* Remove the 'Mutter' typedef and define the structure for
Created attachment 137389 [details] [review]
Remove unused MetaCompositor functions
Remove a number of functions that were either entirely unimplemented
or had empty implementations for the Clutter-compositor.
Pushed to master