diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-29 16:06:36 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-29 16:06:36 +0000 |
commit | 4eff90e3800079ebe14b125d518f6abd773d368f (patch) | |
tree | 47f1c28f356f23fd860c21e57f7e3e88be994a37 /libvo/font_load.c | |
parent | c7e505508a26ec5117082ab75669853325cffac7 (diff) | |
download | mpv-4eff90e3800079ebe14b125d518f6abd773d368f.tar.bz2 mpv-4eff90e3800079ebe14b125d518f6abd773d368f.tar.xz |
OSD/SUB image quality & speed improvement
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@250 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/font_load.c')
-rw-r--r-- | libvo/font_load.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/libvo/font_load.c b/libvo/font_load.c index dd12cafabe..184349000f 100644 --- a/libvo/font_load.c +++ b/libvo/font_load.c @@ -199,7 +199,8 @@ for(i=0;i<=fontdb;i++){ printf("font: Missing bitmap(s) for sub-font #%d\n",i); return NULL; } - if(factor!=1.0f){ + //if(factor!=1.0f) + { // re-sample alpha int f=factor*256.0f; int size=desc->pic_a[i]->w*desc->pic_a[i]->h; @@ -208,12 +209,21 @@ for(i=0;i<=fontdb;i++){ for(j=0;j<size;j++){ int x=desc->pic_a[i]->bmp[j]; int y=desc->pic_b[i]->bmp[j]; - - x=((x*f*(255-y))>>16)+y; + + x=((x*f)>>8); // scale + if(x<0) x=0; else if(x>255) x=255; + x^=255; // invert + + if(x+y>255) x=255-y; // to avoid overflows + + //x=0; + //x=((x*f*(255-y))>>16); + //x=((x*f*(255-y))>>16)+y; //x=(x*f)>>8;if(x<y) x=y; - if(x<0) x=0; else - if(x>255) x=255; + if(x<1) x=1; else + if(x>=252) x=0; + desc->pic_a[i]->bmp[j]=x; } printf("DONE!\n"); |