* src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses

original, unscaled input values.  Confirmed by Greg Hitchcock from
Microsoft.
This commit is contained in:
Werner Lemberg 2008-05-27 23:24:07 +00:00
parent 35a90b7901
commit c94fa6699c
2 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2008-05-28 Werner Lemberg <wl@gnu.org>
* src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
original, unscaled input values. Confirmed by Greg Hitchcock from
Microsoft.
2008-05-27 Werner Lemberg <wl@gnu.org>
* src/tools/docmaker/tohtml.py (block_footer_start,

View File

@ -4821,7 +4821,28 @@
if ( CUR.opcode & 1 )
D = CUR_Func_project( CUR.zp0.cur + L, CUR.zp1.cur + K );
else
D = CUR_Func_dualproj( CUR.zp0.org + L, CUR.zp1.org + K );
{
FT_Vector* vec1 = CUR.zp0.orus + L;
FT_Vector* vec2 = CUR.zp1.orus + K;
if ( CUR.metrics.x_scale == CUR.metrics.y_scale )
{
/* this should be faster */
D = CUR_Func_dualproj( vec1, vec2 );
D = TT_MULFIX( D, CUR.metrics.x_scale );
}
else
{
FT_Vector vec;
vec.x = TT_MULFIX( vec1->x - vec2->x, CUR.metrics.x_scale );
vec.y = TT_MULFIX( vec1->y - vec2->y, CUR.metrics.y_scale );
D = CUR_fast_dualproj( &vec );
}
}
}
args[0] = D;