[PATCH weston 1/2] compositor: Adds functions for backends to call around weston_surface_draw.

Zoxc zoxc32 at gmail.com
Fri Sep 7 15:42:31 PDT 2012


---
 src/compositor-android.c |  4 ++++
 src/compositor-drm.c     |  4 ++++
 src/compositor-wayland.c |  4 ++++
 src/compositor-x11.c     |  4 ++++
 src/compositor.c         | 10 ++++++++++
 src/compositor.h         |  4 ++++
 6 files changed, 30 insertions(+)

diff --git a/src/compositor-android.c b/src/compositor-android.c
index bfa2e95..ec05771 100644
--- a/src/compositor-android.c
+++ b/src/compositor-android.c
@@ -159,9 +159,13 @@ android_output_repaint(struct weston_output *base, pixman_region32_t *damage,
 	if (android_output_make_current(output) < 0)
 		return;
 
+	weston_output_repaint_start(&output->base, damage);
+
 	wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
 		weston_surface_draw(surface, &output->base, damage);
 
+	weston_output_repaint_finish(&output->base, damage);
+
 	if (!flip)
 		return;
 
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index c6634a0..b01fcae 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -336,10 +336,14 @@ drm_output_render(struct drm_output *output, pixman_region32_t *damage, int flip
 		return;
 	}
 
+	weston_output_repaint_start(&output->base, damage);
+
 	wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
 		if (surface->plane == &compositor->base.primary_plane)
 			weston_surface_draw(surface, &output->base, damage);
 
+	weston_output_repaint_finish(&output->base, damage);
+
 	if (!flip)
 		return;
 
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 1f45def..705a4e6 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -345,9 +345,13 @@ wayland_output_repaint(struct weston_output *output_base,
 		return;
 	}
 
+	weston_output_repaint_start(output_base, damage);
+
 	wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
 		weston_surface_draw(surface, &output->base, damage);
 
+	weston_output_repaint_finish(output_base, damage);
+
 	if (!flip)
 		return;
 
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index d5fa0c6..f95a827 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -336,9 +336,13 @@ x11_output_repaint(struct weston_output *output_base,
 		return;
 	}
 
+	weston_output_repaint_start(output_base, damage);
+
 	wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
 		weston_surface_draw(surface, &output->base, damage);
 
+	weston_output_repaint_finish(output_base, damage);
+
 	if (!flip)
 		return;
 
diff --git a/src/compositor.c b/src/compositor.c
index 2b963f5..7013b4a 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1327,6 +1327,16 @@ weston_shader_uniforms(struct weston_shader *shader,
 }
 
 WL_EXPORT void
+weston_output_repaint_start(struct weston_output *output, pixman_region32_t *damage)
+{
+}
+
+WL_EXPORT void
+weston_output_repaint_finish(struct weston_output *output, pixman_region32_t *damage)
+{
+}
+
+WL_EXPORT void
 weston_surface_draw(struct weston_surface *es, struct weston_output *output,
 		    pixman_region32_t *damage) /* in global coordinates */
 {
diff --git a/src/compositor.h b/src/compositor.h
index 38c2657..27505f4 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -548,6 +548,10 @@ weston_output_schedule_repaint(struct weston_output *output);
 void
 weston_output_damage(struct weston_output *output);
 void
+weston_output_repaint_start(struct weston_output *output, pixman_region32_t *damage);
+void
+weston_output_repaint_finish(struct weston_output *output, pixman_region32_t *damage);
+void
 weston_compositor_schedule_repaint(struct weston_compositor *compositor);
 void
 weston_compositor_fade(struct weston_compositor *compositor, float tint);
-- 
1.7.12



More information about the wayland-devel mailing list