diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-08-10 21:25:20 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-08-10 21:25:20 +0000 |
commit | e19962f736e9a0a7541314d4293c3158794d5f47 (patch) | |
tree | 674c1cceb6222e7152b57ee0cd282e5cfa94f8e7 /src/xine-engine/video_out.h | |
parent | 6235752f3a263fb44fdbc8dca6aaa096a813ce6c (diff) | |
download | xine-lib-e19962f736e9a0a7541314d4293c3158794d5f47.tar.gz xine-lib-e19962f736e9a0a7541314d4293c3158794d5f47.tar.bz2 |
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
Diffstat (limited to 'src/xine-engine/video_out.h')
-rw-r--r-- | src/xine-engine/video_out.h | 19 |
1 files changed, 16 insertions, 3 deletions
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: |