Update e_wayland surface and renderer for changes in wayland protocol.
authorChris Michael <cp.michael@samsung.com>
Mon, 24 Jun 2013 09:29:56 +0000 (10:29 +0100)
committerChris Michael <cp.michael@samsung.com>
Mon, 24 Jun 2013 09:29:56 +0000 (10:29 +0100)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/bin/e_wayland/e_renderer.c
src/bin/e_wayland/e_surface.c

index 7ea1523c957820207bd5e3fb3334f7de25cb6e9d..13904b36a62cdbacc0eb3fa6134eff48991f2183 100644 (file)
@@ -267,6 +267,7 @@ _e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer)
    Evas_Coord w = 0, h = 0;
    void *data;
    int stride = 0;
+   struct wl_shm_buffer *shm_buffer;
 
    state = surface->state;
 
@@ -277,7 +278,13 @@ _e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer)
 
    if (!buffer) return;
 
-   switch (wl_shm_buffer_get_format(buffer))
+   if (!(shm_buffer = wl_shm_buffer_get(&buffer->resource)))
+     {
+        e_buffer_reference(&state->buffer_reference, NULL);
+        return;
+     }
+
+   switch (wl_shm_buffer_get_format(shm_buffer))
      {
       case WL_SHM_FORMAT_XRGB8888:
         format = PIXMAN_x8r8g8b8;
@@ -287,10 +294,10 @@ _e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer)
         break;
      }
 
-   w = wl_shm_buffer_get_width(buffer);
-   h = wl_shm_buffer_get_height(buffer);
-   data = wl_shm_buffer_get_data(buffer);
-   stride = wl_shm_buffer_get_stride(buffer);
+   w = wl_shm_buffer_get_width(shm_buffer);
+   h = wl_shm_buffer_get_height(shm_buffer);
+   data = wl_shm_buffer_get_data(shm_buffer);
+   stride = wl_shm_buffer_get_stride(shm_buffer);
 
    state->image = pixman_image_create_bits(format, w, h, data, stride);
 }
index 785b3b17ea2a93e3cbca0d3ff82e0c39c9c6c258..6567bd5f4bca47f75a79f469f4350b281cf0e0c3 100644 (file)
@@ -191,7 +191,7 @@ e_surface_damage_calculate(E_Surface *es, pixman_region32_t *opaque)
    if (es->buffer.reference.buffer)
      {
         /* if this is an shm buffer, flush any pending damage */
-        if (wl_buffer_is_shm(es->buffer.reference.buffer))
+        if (wl_shm_buffer_get(es->buffer.reference.buffer))
           {
              if (_e_comp->renderer->damage_flush)
                _e_comp->renderer->damage_flush(es);