summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-29 11:57:16 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-29 11:57:16 +0000
commitb2dce56aad897f25861427abac5fa4592fca1edb (patch)
treedf4da2362de3ebf6d8122aa9e9d75078ba1951d2 /libvo
parentcbe3bc88999ae11e03640bcdb8a0739fcb6c4181 (diff)
downloadmpv-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')
-rw-r--r--libvo/sub.c8
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;
}