summaryrefslogtreecommitdiffstats
path: root/src/truetype/ttinterp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/truetype/ttinterp.c')
-rw-r--r--src/truetype/ttinterp.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 3a8680f..3acb24a 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -52,7 +52,7 @@
/* */
/* In order to detect infinite loops in the code, we set up a counter */
/* within the run loop. A single stroke of interpretation is now */
- /* limited to a maximum number of opcodes defined below. */
+ /* limited to a maximal number of opcodes defined below. */
/* */
#define MAX_RUNNABLE_OPCODES 1000000L
@@ -1463,7 +1463,7 @@
#else
- /* compute (a*b)/2^14 with maximum accuracy and rounding */
+ /* compute (a*b)/2^14 with maximal accuracy and rounding */
static FT_Int32
TT_MulFix14( FT_Int32 a,
FT_Int b )
@@ -1493,7 +1493,7 @@
#endif
- /* compute (ax*bx+ay*by)/2^14 with maximum accuracy and rounding */
+ /* compute (ax*bx+ay*by)/2^14 with maximal accuracy and rounding */
static FT_Int32
TT_DotFix14( FT_Int32 ax,
FT_Int32 ay,
@@ -3110,9 +3110,14 @@
CUR.GS.single_width_cutin = (FT_F26Dot6)args[0];
-#define DO_SSW \
- CUR.GS.single_width_value = TT_MULFIX( args[0], \
- CUR.tt_metrics.scale );
+ /* XXX: UNDOCUMENTED! or bug in the Windows engine? */
+ /* */
+ /* It seems that the value that is read here is */
+ /* expressed in 16.16 format rather than in font */
+ /* units. */
+ /* */
+#define DO_SSW \
+ CUR.GS.single_width_value = (FT_F26Dot6)( args[0] >> 10 );
#define DO_FLIPON \
@@ -5767,7 +5772,7 @@
/* */
/* UNDOCUMENTED: According to Greg Hitchcock, there is one (virtual) */
/* contour in the twilight zone, namely contour number */
- /* zero which includes all points of it. */
+ /* zero. */
/* */
static void
Ins_SHC( INS_ARG )