From acc7b7085fe3908fc230fd15e2f0c4cfefcfaedb Mon Sep 17 00:00:00 2001 From: arpi Date: Sat, 1 Sep 2001 17:56:31 +0000 Subject: [PATCH] small fixes, and Y check put back to avoid sig11 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1825 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/sub.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/libvo/sub.c b/libvo/sub.c index 5fe28abf4a..c9ee16d6e0 100644 --- a/libvo/sub.c +++ b/libvo/sub.c @@ -162,7 +162,10 @@ inline static void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,in while (l--){ t=vo_sub->text[i++]; len=strlen(t)-1; - + + printf("sub(%d) '%s'\n",len,t); +// if(len<0) memy -=h; // according to max of vo_font->pic_a[font]->h +// else for (j=0;j<=len;j++){ if ((c=t[j])>=0x80){ if (sub_unicode) @@ -184,11 +187,21 @@ inline static void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,in lastk=k; lastStripPosition=j; lastxsize=xsize; - } else if ((font=vo_font->font[c])>=0){ + } +#if 1 + else if ((font=vo_font->font[c])>=0){ if (vo_font->pic_a[font]->h > h){ h=vo_font->pic_a[font]->h; } } +#endif +#if 0 + else if ((font=vo_font->font[c])>=0){ + if ((memy-h)+vo_font->pic_a[font]->h > dys){ + h=vo_font->pic_a[font]->h; + } + } +#endif xsize+=vo_font->width[c]+vo_font->charspace; if (dxs0){ @@ -216,21 +229,24 @@ inline static void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,in lasth=h; h=vo_font->height; } + printf("h: %d -> %d \n",vo_font->height,h); memy -=h; // according to max of vo_font->pic_a[font]->h } } } y = memy; + +// printf("lines=%d y=%d\n",lines,y); i=j=0; l=lines; - while (l--){ + while (ifont[c])>=0) + if ((font=vo_font->font[c])>=0 && ywidth[c], - vo_font->pic_a[font]->h, + vo_font->pic_a[font]->h+ypic_a[font]->h : dys-y, vo_font->pic_b[font]->bmp+vo_font->start[c], vo_font->pic_a[font]->bmp+vo_font->start[c], vo_font->pic_a[font]->w);