[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master c3be6f0: src/truetype/ttinterp.c: Give order of opera
From: |
Werner LEMBERG |
Subject: |
[freetype2] master c3be6f0: src/truetype/ttinterp.c: Give order of operations for some instructions. |
Date: |
Tue, 21 May 2019 05:24:51 -0400 (EDT) |
branch: master
commit c3be6f06b70bd6636cfdef0e3cf892151d6c7a1d
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>
src/truetype/ttinterp.c: Give order of operations for some instructions.
---
src/truetype/ttinterp.c | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 920d042..70434e1 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -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,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master c3be6f0: src/truetype/ttinterp.c: Give order of operations for some instructions.,
Werner LEMBERG <=