Mercurial > mplayer.hg
changeset 1824:33035a1d897e
small fixes, and Y check put back to avoid sig11
author | arpi |
---|---|
date | Sat, 01 Sep 2001 17:56:31 +0000 |
parents | a6c67352ccac |
children | 1791c7930776 |
files | libvo/sub.c |
diffstat | 1 files changed, 21 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/sub.c Sat Sep 01 17:53:07 2001 +0000 +++ b/libvo/sub.c Sat Sep 01 17:56:31 2001 +0000 @@ -162,7 +162,10 @@ 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 @@ 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 (dxs<xsize){ if (lastStripPosition>0){ @@ -216,21 +229,24 @@ 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 (i<lines){ x= xtbl[i++]; while ((c=utbl[j++])){ - if ((font=vo_font->font[c])>=0) + if ((font=vo_font->font[c])>=0 && y<dys) draw_alpha(x,y, vo_font->width[c], - vo_font->pic_a[font]->h, + vo_font->pic_a[font]->h+y<dys ? vo_font->pic_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);