summaryrefslogtreecommitdiff
path: root/src/xine-engine/video_out.h
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-08-10 21:25:20 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-08-10 21:25:20 +0000
commite19962f736e9a0a7541314d4293c3158794d5f47 (patch)
tree674c1cceb6222e7152b57ee0cd282e5cfa94f8e7 /src/xine-engine/video_out.h
parent6235752f3a263fb44fdbc8dca6aaa096a813ce6c (diff)
downloadxine-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.h19
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: