On Sat, Apr 05, 2014 at 05:31:37AM +0200, Manuel Bachmann wrote:
> When the alpha channel of a surface is changed and the surface
> refreshed, pixman renderer will now apply a mask corresponding
> to the alpha channel value.
> 
> This allows visual effects like shell fade in, shell fade out,
> window switching, to work when using pixman renderer.
> 
> Signed-off-by: Manuel Bachmann <[email protected]>
> ---
>  src/pixman-renderer.c |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c
> index b999343..eff7201 100644
> --- a/src/pixman-renderer.c
> +++ b/src/pixman-renderer.c
> @@ -340,9 +340,16 @@ repaint_region(struct weston_view *ev, struct 
> weston_output *output,
>       if (ps->buffer_ref.buffer)
>               wl_shm_buffer_begin_access(ps->buffer_ref.buffer->shm_buffer);
>  
> +     pixman_image_t *mask_image;
> +     if (ev->alpha < 1.0) {
> +             pixman_color_t mask = { 0x0000, 0x0000, 0x0000, 
> 0xffff*ev->alpha };
> +             mask_image = pixman_image_create_solid_fill(&mask);
> +     } else
> +             mask_image = NULL;

I like this but it doesn't quite look right, it looks like the surface also 
fades
from black.  I also doesn't see it trigger on the close window fade anmation.
And stylistically, please don't mix code and declarations (move mask_image
declartion up) and use braces for both branches (the rule is both or none).

>       pixman_image_composite32(pixman_op,
>                                ps->image, /* src */
> -                              NULL /* mask */,
> +                              mask_image, /* mask */
>                                po->shadow_image, /* dest */
>                                0, 0, /* src_x, src_y */
>                                0, 0, /* mask_x, mask_y */

We're leaking mask_image.

Kristian

> -- 
> 1.7.10.4
> 
> _______________________________________________
> wayland-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to