[PATCH] pixman-renderer: fail to zoom more gracefully
Ryo Munakata
ryomnktml at gmail.com
Mon Sep 1 09:13:10 PDT 2014
On Mon, 1 Sep 2014 10:33:28 -0500
Derek Foreman <derekf at osg.samsung.com> wrote:
> When zoom is activated in the pixman rendered the log is filled with warnings
> and all rendering stops. With this patch the warning is generated once and
> rendering continues without zooming.
>
> Closes bug 80258
> ---
> src/pixman-renderer.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c
> index 4fdcb05..351f00e 100644
> --- a/src/pixman-renderer.c
> +++ b/src/pixman-renderer.c
> @@ -385,6 +385,7 @@ static void
> draw_view(struct weston_view *ev, struct weston_output *output,
> pixman_region32_t *damage) /* in global coordinates */
> {
> + static int zoom_logged = 0;
> struct pixman_surface_state *ps = get_surface_state(ev->surface);
> /* repaint bounding region in global coordinates: */
> pixman_region32_t repaint;
> @@ -403,9 +404,9 @@ draw_view(struct weston_view *ev, struct weston_output *output,
> if (!pixman_region32_not_empty(&repaint))
> goto out;
>
> - if (output->zoom.active) {
> + if (output->zoom.active && !zoom_logged) {
> weston_log("pixman renderer does not support zoom\n");
> - goto out;
> + zoom_logged = 1;
> }
>
> /* TODO: Implement repaint_region_complex() using pixman_composite_trapezoids() */
> --
You might want to use bool instead of int in this case like:
#include <stdbool.h>
static bool zoom_logged = false;
Thanks.
--
Ryo Munakata <ryomnktml at gmail.com>
More information about the wayland-devel
mailing list