Add functions for surface damage calculate.
authorChris Michael <cp.michael@samsung.com>
Tue, 7 May 2013 12:31:03 +0000 (13:31 +0100)
committerChris Michael <cp.michael@samsung.com>
Tue, 7 May 2013 12:31:03 +0000 (13:31 +0100)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/bin/e_wayland/e_surface.c
src/bin/e_wayland/e_surface.h

index 92444c0309c9e67140f2c533077f54d95c8d54a8..d82f214bfae764f391d7338e267f9c3002e6a074 100644 (file)
@@ -135,6 +135,21 @@ e_surface_destroy(E_Surface *es)
    E_FREE(es);
 }
 
+EAPI void 
+e_surface_damage_calculate(E_Surface *es)
+{
+   /* check for valid surface */
+   if (!es) return;
+
+   /* check for referenced buffer */
+   if (es->buffer.reference)
+     {
+        /* if this is an shm buffer, flush any pending damage */
+        if (wl_buffer_is_shm(es->buffer.reference->buffer))
+          e_compositor_damage_flush(_e_comp, es);
+     }
+}
+
 /* local functions */
 static void 
 _e_surface_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_resource *resource)
index f6f3c399673d1c00311d43808a1f1a1ba6d46e94..c4ee6f8a9dba7fc938e7b14a0603af399e980ca1 100644 (file)
@@ -72,6 +72,7 @@ EAPI void e_surface_attach(E_Surface *es, struct wl_buffer *buffer);
 EAPI void e_surface_unmap(E_Surface *es);
 EAPI void e_surface_damage(E_Surface *es);
 EAPI void e_surface_destroy(E_Surface *es);
+EAPI void e_surface_damage_calculate(E_Surface *es);
 
 # endif
 #endif