From: Pekka Paalanen <[email protected]> Only needed in the source-clipped case, otherwise the boundingbox is already doing the necessary clipping.
Signed-off-by: Pekka Paalanen <[email protected]> --- src/pixman-renderer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c index d3f1342..33cf541 100644 --- a/src/pixman-renderer.c +++ b/src/pixman-renderer.c @@ -558,6 +558,10 @@ draw_view_source_clipped(struct weston_view *view, pixman_region32_init_rect(&surf_region, 0, 0, surface->width, surface->height); + if (view->geometry.scissor_enabled) + pixman_region32_intersect(&surf_region, &surf_region, + &view->geometry.scissor); + pixman_region32_init(&buffer_region); weston_surface_to_buffer_region(surface, &surf_region, &buffer_region); @@ -604,6 +608,8 @@ draw_view(struct weston_view *ev, struct weston_output *output, * etc. are convertible to global coordinate space. * There is no need to use a source clip region. * It is possible to paint opaque region as PIXMAN_OP_SRC. + * Also the boundingbox is accurate rather than an + * approximation. */ draw_view_translated(ev, output, &repaint); } else { @@ -953,6 +959,7 @@ pixman_renderer_init(struct weston_compositor *ec) ec->renderer = &renderer->base; ec->capabilities |= WESTON_CAP_ROTATION_ANY; ec->capabilities |= WESTON_CAP_CAPTURE_YFLIP; + ec->capabilities |= WESTON_CAP_VIEW_CLIP_MASK; renderer->debug_binding = weston_compositor_add_debug_binding(ec, KEY_R, -- 2.0.5 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
