From e19962f736e9a0a7541314d4293c3158794d5f47 Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Sat, 10 Aug 2002 21:25:20 +0000 Subject: syncing my local tree: - removes w32codec syncshutdown hack - vo_driver api changed to support drivers with persistent overlays. that will break binary compatibility xine-lib/xine-ui (xine-ui needs to be recompiled). in order to keep binary compatibility overlay_begin/overlay_end must be added after redraw_needed. - video_overlay cleanups - fix a hard to trigger condition where redraw wouldn't happen (freeing handles) CVS patchset: 2427 CVS date: 2002/08/10 21:25:20 --- src/xine-engine/video_out.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/xine-engine/video_out.h') diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h index 9f52e29a3..9c7e6bf78 100644 --- a/src/xine-engine/video_out.h +++ b/src/xine-engine/video_out.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.h,v 1.56 2002/07/30 00:26:45 miguelfreitas Exp $ + * $Id: video_out.h,v 1.57 2002/08/10 21:25:20 miguelfreitas Exp $ * * * xine version of video_out.h @@ -261,7 +261,7 @@ struct vo_instance_s { * from generic vo functions. */ -#define VIDEO_OUT_DRIVER_IFACE_VERSION 5 +#define VIDEO_OUT_DRIVER_IFACE_VERSION 6 struct vo_driver_s { @@ -285,8 +285,21 @@ struct vo_driver_s { /* display a given frame */ void (*display_frame) (vo_driver_t *this, vo_frame_t *vo_img); - /* overlay functions */ + /* overlay_begin and overlay_end are used by drivers suporting + * persistent overlays. they can be optimized to update only when + * overlay image has changed. + * + * sequence of operation (pseudo-code): + * overlay_begin(this,img,true_if_something_changed_since_last_blend ); + * while(visible_overlays) + * overlay_blend(this,img,overlay[i]); + * overlay_end(this,img); + * + * any function pointer from this group may be set to NULL. + */ + void (*overlay_begin) (vo_driver_t *this, vo_frame_t *vo_img, int changed); void (*overlay_blend) (vo_driver_t *this, vo_frame_t *vo_img, vo_overlay_t *overlay); + void (*overlay_end) (vo_driver_t *this, vo_frame_t *vo_img); /* * these can be used by the gui directly: -- cgit v1.2.3