diff options
author | atmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-08 19:40:10 +0000 |
---|---|---|
committer | atmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-08 19:40:10 +0000 |
commit | b1d77e6840dfa2343641ccef70b42dfb9a2919da (patch) | |
tree | 121223f73e28ed34e6b0914e7c88a3568618c692 /libvo | |
parent | d53a450b5e3ba164be193c5716afc871051f9134 (diff) |
Deal with unicode subs (-unicode -nounicode).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@727 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r-- | libvo/sub.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libvo/sub.c b/libvo/sub.c index d983324eb5..8610e27bde 100644 --- a/libvo/sub.c +++ b/libvo/sub.c @@ -89,6 +89,7 @@ void vo_draw_text_progbar(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int } subtitle* vo_sub=NULL; +int sub_unicode=0; void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)){ int i; @@ -105,7 +106,7 @@ void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,in for(j=0;j<len;j++){ int c=text[j]; - int w = vo_font->width[(c<0x80)?c:(c<<8)+text[++j]]; + int w = vo_font->width[sub_unicode?((c<0x80)?c:(c<<8)+text[++j]):c]; if(w>100) printf("gazvan: %d (%d=%c)\n",w,c,c); xsize+=w+vo_font->charspace; } @@ -118,7 +119,7 @@ void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,in for(j=0;j<len;j++){ int c=text[j]; int font; - if (c>=0x80) c=(c<<8)+text[++j]; + if (sub_unicode && (c>=0x80)) c=(c<<8)+text[++j]; font = vo_font->font[c]; if(x>=0 && x+vo_font->width[c]<dxs) if(font>=0) |