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 mutter-plugin.c mutter-plugin-manager.[ch] mutter-module.[ch] 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. * compositor/compositor-xrender.ccompositor/compositor-xrender.h: Remove * 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 directly. 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 MetaCompositor directly.
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. meta_compositor_begin_move() meta_compositor_update_move() meta_compositor_end_move() meta_compositor_set_active_window() meta_compositor_free_window()
Pushed to master