mutter:wip/background-rework

Last commit made on 2014-08-28
Get this branch:
git clone -b wip/background-rework https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
wip/background-rework
Repository:
lp:mutter

Recent commits

3c2284e... by Owen Taylor

Rewrite background code

The old requirement that multiple MetaBackgroundActor objects be
layered on top of each to produce blended backgrounds resulted in
extremely inefficient drawing since the entire framebuffer had
to be read and written multiple times.

 * Replace the MetaBackground ClutterContent with a plain GObject
   that serves to hold the background parameters and prerender
   textures to be used to draw the background. It handles
   colors, gradients, and blended images, but does not handle
   vignetting

 * Add vignetting to MetaBackgroundActor directly.

 * Add MetaBackgroundImage and MetaBackgroundImageCache to allow
   multiple MetaBackground objects to share the same images

By removing the usage of ClutterContent, the following optimizations
were easy to add:

 Blending is turned off when the actor is fully opaque
 Nearest-neighbour filtering is used when drawing 1:1

The GLSL vignette code is slightly improved to use a vertex shader
snippet for computing the texture coordinate => position in actor
mapping.

https://bugzilla.gnome.org/show_bug.cgi?id=735637

c632dcd... by Owen Taylor

Use meta_actor_painting_untransformed() for MetaShapedTexture

The old check for using NEAREST by checking clutter_actor_is_in_clone_paint()
and meta_actor_is_untransformed (actor) doesn't work properly since
clutter_actor_is_in_clone_paint() does not look at ancestors of the
actor; it only applies to a direct clone of the actor. Using
meta_actor_painting_untransformed() allows us to check exactly what we
care about rather than using tricky approximations.

https://bugzilla.gnome.org/show_bug.cgi?id=735632

786f358... by Owen Taylor

Factor out meta_actor_painting_untransformed()

The painting_untransformed() function in MetaWindowGroup is useful
elsewhere, in particular if we want to check whether we can avoid
bilinear filtering when painting a texture 1:1.

https://bugzilla.gnome.org/show_bug.cgi?id=735632

09aefdb... by Jasper St. Pierre

compositor: Conditionalize more Wayland support

4c8a408... by Jasper St. Pierre

Only build Wayland protocols when we have Wayland

4c08d9a... by Jasper St. Pierre

configure: Don't conditionalize gbm

Let's just say it's required for now.

b091cbf... by Jasper St. Pierre

shaped-texture: Don't set a small minimum size

The shaped-texture is effectively fixed size. It doesn't make sense to
have less allocation than requested.

a6fcda6... by Jasper St. Pierre

shaped-texture: Remove the use of MetaWindowActor internals

I want to make this class an independent helper.

9063e45... by Jasper St. Pierre

configure: Conditionalize libinput and gbm too

3d37b5d... by Jasper St. Pierre

configure: Conditionalize WAYLAND_SCANNER too

It seems we forgot this.