src/truetype/ttinterp.c: Give order of operations for some instructions.

This commit is contained in:
Werner Lemberg 2019-05-21 11:23:36 +02:00
parent 262fce445a
commit c3be6f06b7
1 changed files with 26 additions and 7 deletions

View File

@ -1694,6 +1694,32 @@
}
/*
*
* Apple's TrueType specification at
*
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM02/Chap2.html#order
*
* gives the following order of operations in instructions that move
* points.
*
* - check single width cut-in (MIRP, MDRP)
*
* - check control value cut-in (MIRP, MIAP)
*
* - apply engine compensation (MIRP, MDRP)
*
* - round distance (MIRP, MDRP) or value (MIAP, MDAP)
*
* - check minimum distance (MIRP,MDRP)
*
* - move point (MIRP, MDRP, MIAP, MSIRP, MDAP)
*
* For rounding instructions, engine compensation happens before rounding.
*
*/
/**************************************************************************
*
* @Function:
@ -1918,7 +1944,6 @@
zone->org[point].y = ADD_LONG( zone->org[point].y, distance );
}
/**************************************************************************
*
* @Function:
@ -1936,12 +1961,6 @@
*
* @Return:
* The compensated distance.
*
* @Note:
* The TrueType specification says very few about the relationship
* between rounding and engine compensation. However, it seems from
* the description of super round that we should add the compensation
* before rounding.
*/
static FT_F26Dot6
Round_None( TT_ExecContext exc,