summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derek.foreman@collabora.co.uk>2012-04-24 20:20:12 (GMT)
committerDerek Foreman <derek.foreman@collabora.co.uk>2012-04-24 20:30:57 (GMT)
commitaff1b7036e9635500526ade4fdf367a14499d0e1 (patch)
treeab83b5e75b6ea4e0f05837f757c6011de801d1e7
parentf254f526b7ef615e1dc6d5b3a9694ee6b05ec2f1 (diff)
downloadxf86-video-ti81xx-aff1b7036e9635500526ade4fdf367a14499d0e1.tar.gz
xf86-video-ti81xx-aff1b7036e9635500526ade4fdf367a14499d0e1.tar.xz
Allow fb_id==0 to draw just the color key so we can use it as an "expose" event
-rw-r--r--src/xv.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/xv.c b/src/xv.c
index 26c984c..30e6e44 100644
--- a/src/xv.c
+++ b/src/xv.c
@@ -840,7 +840,8 @@ ti81xx_video_image_put_gem(ScrnInfoPtr xf86_screen,
width_src_image = width_src_image & ~(TI81XX_ALIGNMENT - 1);
/* update cliplist */
- if (!REGION_EQUAL(xf86_screen->pScreen, &video_priv->clip, clip_list)) {
+ if (!REGION_EQUAL(xf86_screen->pScreen, &video_priv->clip, clip_list) ||
+ !fb_id) {
RegionRec clist;
REGION_COPY(xf86_screen->pScreen, &video_priv->clip, clip_list);
REGION_NULL(xf86_screen->pScreen, &clist);
@@ -850,6 +851,13 @@ ti81xx_video_image_put_gem(ScrnInfoPtr xf86_screen,
&clist);
REGION_UNINIT(xf86_screen->pScreen, &clist);
}
+ /*
+ * if fb_id == 0 then we're just being asked to "expose" the old video frame
+ * so we draw the color key, update the clip list, then get out without
+ * sending any completion events
+ */
+ if (!fb_id)
+ return Success;
ret = validate_video_params(xf86_screen, width_dst, width_src, format);
if (ret == BadMatch)