Update of /cvsroot/xine/xine-lib/src/video_out
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv5372/src/video_out
Modified Files:
video_out_xcbxv.c video_out_xv.c
Log Message:
Properly repaint the whole surface during expose events. Patch by Christoph
Pfister.
Index: video_out_xcbxv.c
===================================================================
RCS file: /cvsroot/xine/xine-lib/src/video_out/video_out_xcbxv.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- video_out_xcbxv.c 15 Feb 2007 15:19:33 -0000 1.1
+++ video_out_xcbxv.c 15 Feb 2007 18:26:55 -0000 1.2
@@ -898,6 +898,9 @@
/* XExposeEvent * xev = (XExposeEvent *) data; */
if (this->cur_frame) {
+ int i;
+ xcb_rectangle_t rects[4];
+ int rects_count = 0;
pthread_mutex_lock(&this->main_mutex);
@@ -920,6 +923,21 @@
this->cur_frame->xv_data_size, this->cur_frame->image);
}
+ xcb_change_gc(this->connection, this->gc, XCB_GC_FOREGROUND,
&this->screen->black_pixel);
+
+ for( i = 0; i < 4; i++ ) {
+ if( this->sc.border[i].w && this->sc.border[i].h ) {
+ rects[rects_count].x = this->sc.border[i].x;
+ rects[rects_count].y = this->sc.border[i].y;
+ rects[rects_count].width = this->sc.border[i].w;
+ rects[rects_count].height = this->sc.border[i].h;
+ rects_count++;
+ }
+ }
+
+ if (rects_count > 0)
+ xcb_poly_fill_rectangle(this->connection, this->window, this->gc,
rects_count, rects);
+
if(this->xoverlay)
xcbosd_expose(this->xoverlay);
Index: video_out_xv.c
===================================================================
RCS file: /cvsroot/xine/xine-lib/src/video_out/video_out_xv.c,v
retrieving revision 1.221
retrieving revision 1.222
diff -u -r1.221 -r1.222
--- video_out_xv.c 25 Dec 2006 15:19:51 -0000 1.221
+++ video_out_xv.c 15 Feb 2007 18:26:55 -0000 1.222
@@ -953,6 +953,7 @@
/* XExposeEvent * xev = (XExposeEvent *) data; */
if (this->cur_frame) {
+ int i;
LOCK_DISPLAY(this);
@@ -972,6 +973,16 @@
this->sc.output_width, this->sc.output_height);
}
+ XSetForeground (this->display, this->gc, this->black.pixel);
+
+ for( i = 0; i < 4; i++ ) {
+ if( this->sc.border[i].w && this->sc.border[i].h ) {
+ XFillRectangle(this->display, this->drawable, this->gc,
+ this->sc.border[i].x, this->sc.border[i].y,
+ this->sc.border[i].w, this->sc.border[i].h);
+ }
+ }
+
if(this->xoverlay)
x11osd_expose(this->xoverlay);
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Xine-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xine-cvslog