From 96580ad593f3821256dc5a5f5f61ee809fb775a1 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Mon, 9 May 2016 15:09:45 -0400 Subject: [PATCH] vl/dri3: implement funciton for get dirty area MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This will clear presentation area not covered by video content Signed-off-by: Leo Liu Reviewed-by: Alex Deucher Reviewed-by: Christian König --- src/gallium/auxiliary/vl/vl_winsys_dri3.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri3.c b/src/gallium/auxiliary/vl/vl_winsys_dri3.c index afab85acad0..a370315868d 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_dri3.c +++ b/src/gallium/auxiliary/vl/vl_winsys_dri3.c @@ -41,6 +41,7 @@ #include "util/u_memory.h" #include "util/u_inlines.h" +#include "vl/vl_compositor.h" #include "vl/vl_winsys.h" #define BACK_BUFFER_NUM 3 @@ -69,6 +70,8 @@ struct vl_dri3_screen struct vl_dri3_buffer *back_buffers[BACK_BUFFER_NUM]; int cur_back; + + struct u_rect dirty_areas[BACK_BUFFER_NUM]; }; static void @@ -251,6 +254,7 @@ dri3_get_back_buffer(struct vl_dri3_screen *scrn) if (!buffer) return NULL; + vl_compositor_reset_dirty_area(&scrn->dirty_areas[scrn->cur_back]); scrn->back_buffers[scrn->cur_back] = buffer; } @@ -363,8 +367,11 @@ vl_dri3_screen_texture_from_drawable(struct vl_screen *vscreen, void *drawable) static struct u_rect * vl_dri3_screen_get_dirty_area(struct vl_screen *vscreen) { - /* TODO */ - return NULL; + struct vl_dri3_screen *scrn = (struct vl_dri3_screen *)vscreen; + + assert(scrn); + + return &scrn->dirty_areas[scrn->cur_back]; } static uint64_t -- 2.30.2