From b770537332c6f96f5fbc1c01dcbcb4af0df4632a Mon Sep 17 00:00:00 2001 From: Taekyun Kim Date: Tue, 20 Oct 2015 17:56:04 +0900 Subject: [PATCH] render: Call begin/end_access when accessing shm buffer Change-Id: I1d55ff55603c2db2b4b1556842faffefee6dec87 --- src/lib/render/pixman-renderer.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/render/pixman-renderer.c b/src/lib/render/pixman-renderer.c index b550956..028a93b 100644 --- a/src/lib/render/pixman-renderer.c +++ b/src/lib/render/pixman-renderer.c @@ -20,11 +20,12 @@ struct pixman_renderer struct pixman_surface_state { - pixman_renderer_t *renderer; + pixman_renderer_t *renderer; - pepper_surface_t *surface; - int buffer_width, buffer_height; - pixman_image_t *image; + pepper_surface_t *surface; + struct wl_shm_buffer *shm_buffer; + int buffer_width, buffer_height; + pixman_image_t *image; pepper_event_listener_t *buffer_destroy_listener; pepper_event_listener_t *surface_destroy_listener; @@ -147,6 +148,7 @@ surface_state_attach_shm(pixman_surface_state_t *state, pepper_buffer_t *buffer) state->buffer_width = w; state->buffer_height = h; state->image = image; + state->shm_buffer = shm_buffer; return PEPPER_TRUE;; } @@ -283,12 +285,14 @@ repaint_view(pepper_renderer_t *renderer, pepper_render_item_t *node, pixman_reg pixman_image_set_transform(ps->image, &trans); pixman_image_set_filter(ps->image, filter, NULL, 0); + wl_shm_buffer_begin_access(ps->shm_buffer); pixman_image_composite32(PIXMAN_OP_OVER, ps->image, NULL, target->image, 0, 0, /* src_x, src_y */ 0, 0, /* mask_x, mask_y */ 0, 0, /* dest_x, dest_y */ pixman_image_get_width(target->image), pixman_image_get_height(target->image)); + wl_shm_buffer_end_access(ps->shm_buffer); } pixman_region32_fini(&repaint); -- 2.7.4