mirror of
https://github.com/mpv-player/mpv
synced 2025-03-25 04:38:01 +00:00
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
This commit is contained in:
parent
8d3a427378
commit
acc7b7085f
26
libvo/sub.c
26
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--){
|
while (l--){
|
||||||
t=vo_sub->text[i++];
|
t=vo_sub->text[i++];
|
||||||
len=strlen(t)-1;
|
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++){
|
for (j=0;j<=len;j++){
|
||||||
if ((c=t[j])>=0x80){
|
if ((c=t[j])>=0x80){
|
||||||
if (sub_unicode)
|
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;
|
lastk=k;
|
||||||
lastStripPosition=j;
|
lastStripPosition=j;
|
||||||
lastxsize=xsize;
|
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){
|
if (vo_font->pic_a[font]->h > h){
|
||||||
h=vo_font->pic_a[font]->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;
|
xsize+=vo_font->width[c]+vo_font->charspace;
|
||||||
if (dxs<xsize){
|
if (dxs<xsize){
|
||||||
if (lastStripPosition>0){
|
if (lastStripPosition>0){
|
||||||
@ -216,21 +229,24 @@ inline static void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,in
|
|||||||
lasth=h;
|
lasth=h;
|
||||||
h=vo_font->height;
|
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
|
memy -=h; // according to max of vo_font->pic_a[font]->h
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
y = memy;
|
y = memy;
|
||||||
|
|
||||||
|
// printf("lines=%d y=%d\n",lines,y);
|
||||||
|
|
||||||
i=j=0; l=lines;
|
i=j=0; l=lines;
|
||||||
while (l--){
|
while (i<lines){
|
||||||
x= xtbl[i++];
|
x= xtbl[i++];
|
||||||
while ((c=utbl[j++])){
|
while ((c=utbl[j++])){
|
||||||
if ((font=vo_font->font[c])>=0)
|
if ((font=vo_font->font[c])>=0 && y<dys)
|
||||||
draw_alpha(x,y,
|
draw_alpha(x,y,
|
||||||
vo_font->width[c],
|
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_b[font]->bmp+vo_font->start[c],
|
||||||
vo_font->pic_a[font]->bmp+vo_font->start[c],
|
vo_font->pic_a[font]->bmp+vo_font->start[c],
|
||||||
vo_font->pic_a[font]->w);
|
vo_font->pic_a[font]->w);
|
||||||
|
Loading…
Reference in New Issue
Block a user