[PATCH] pixman-renderer: fail to zoom more gracefully

Derek Foreman derekf at osg.samsung.com
Mon Sep 1 08:33:28 PDT 2014


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() */
-- 
2.1.0.rc1



More information about the wayland-devel mailing list