diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-11-29 11:57:16 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-11-29 11:57:16 +0000 |
commit | b2dce56aad897f25861427abac5fa4592fca1edb (patch) | |
tree | df4da2362de3ebf6d8122aa9e9d75078ba1951d2 /libvo/sub.c | |
parent | cbe3bc88999ae11e03640bcdb8a0739fcb6c4181 (diff) | |
download | mpv-b2dce56aad897f25861427abac5fa4592fca1edb.tar.bz2 mpv-b2dce56aad897f25861427abac5fa4592fca1edb.tar.xz |
EMISSINGBRAIN: No, OSD objects of size 0 sure are _not_ visible.
Fixes massive slowdown after adding dvdnav highlight support, at least
with -vo xvmc, potentially others too.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21380 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/sub.c')
-rw-r--r-- | libvo/sub.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libvo/sub.c b/libvo/sub.c index e4a3978113..c51dbd05cf 100644 --- a/libvo/sub.c +++ b/libvo/sub.c @@ -221,7 +221,9 @@ inline static void vo_update_nav (mp_osd_obj_t *obj, int dxs, int dys) { len = obj->stride * (obj->bbox.y2 - obj->bbox.y1); memset (obj->bitmap_buffer, OSD_NAV_BOX_ALPHA, len); memset (obj->alpha_buffer, OSD_NAV_BOX_ALPHA, len); - obj->flags |= OSDFLAG_BBOX | OSDFLAG_VISIBLE | OSDFLAG_CHANGED; + obj->flags |= OSDFLAG_BBOX | OSDFLAG_CHANGED; + if (obj->bbox.y2 > obj->bbox.y1 && obj->bbox.x2 > obj->bbox.x1) + obj->flags |= OSDFLAG_VISIBLE; } #endif @@ -1003,7 +1005,9 @@ int vo_osd_check_range_update(int x1,int y1,int x2,int y2){ 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->bbox.y1<=y2 && obj->bbox.y2>=y1) && + obj->bbox.y2 > obj->bbox.y1 && obj->bbox.x1 > obj->bbox.x2 + ) return 1; } obj=obj->next; } |