summaryrefslogtreecommitdiffstats
path: root/libvo/font_load.c
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-03-29 16:06:36 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-03-29 16:06:36 +0000
commit4eff90e3800079ebe14b125d518f6abd773d368f (patch)
tree47f1c28f356f23fd860c21e57f7e3e88be994a37 /libvo/font_load.c
parentc7e505508a26ec5117082ab75669853325cffac7 (diff)
downloadmpv-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.c20
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");