Mercurial > mplayer.hg
changeset 5645:bd5c0d8346f0
vo_osd_check_range_update() added + 10l fix
author | arpi |
---|---|
date | Tue, 16 Apr 2002 00:35:01 +0000 |
parents | f1465a280612 |
children | 8bec4d7d04f0 |
files | libvo/sub.c libvo/sub.h |
diffstat | 2 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/sub.c Tue Apr 16 00:34:04 2002 +0000 +++ b/libvo/sub.c Tue Apr 16 00:35:01 2002 +0000 @@ -443,6 +443,7 @@ } // obj->flags&=~OSDFLAG_OLD_BBOX; } + obj=obj->next; } } @@ -493,3 +494,19 @@ return ret; } +// BBBBBBBBBBBB AAAAAAAAAAAAA BBBBBBBBBBB +// BBBBBBBBBBBB BBBBBBBBBBBBB +// BBBBBBB + +// return TRUE if we have osd in the specified rectangular area: +int vo_osd_check_range_update(int x1,int y1,int x2,int y2){ + mp_osd_obj_t* obj=vo_osd_list; + while(obj){ + if(obj->flags&OSDFLAG_VISIBLE){ + if( (obj->bbox.x1<=x2 && obj->bbox.x2>=x1) && + (obj->bbox.y1<=y2 && obj->bbox.y2>=y1) ) return 1; + } + obj=obj->next; + } + return 0; +}
--- a/libvo/sub.h Tue Apr 16 00:34:04 2002 +0000 +++ b/libvo/sub.h Tue Apr 16 00:35:01 2002 +0000 @@ -89,6 +89,7 @@ //extern void vo_draw_text_progbar(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); //extern void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); extern void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); +extern void vo_remove_text(int dxs,int dys,void (*remove)(int x0,int y0, int w,int h)); void vo_init_osd(); int vo_update_osd(int dxs,int dys);