summaryrefslogtreecommitdiff
path: root/src/psaux/psobjs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/psaux/psobjs.c')
-rw-r--r--src/psaux/psobjs.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c
index eecbda65e..8d0f0fe9b 100644
--- a/src/psaux/psobjs.c
+++ b/src/psaux/psobjs.c
@@ -20,6 +20,8 @@
#include FT_INTERNAL_POSTSCRIPT_AUX_H
#include FT_INTERNAL_DEBUG_H
#include FT_INTERNAL_CALC_H
+#include FT_CFF_DRIVER_H
+#include FT_TYPE1_DRIVER_H
#include "psobjs.h"
#include "psconv.h"
@@ -2160,25 +2162,24 @@
FT_Vector* point = outline->points + outline->n_points;
FT_Byte* control = (FT_Byte*)outline->tags + outline->n_points;
-#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
PS_Driver driver = (PS_Driver)FT_FACE_DRIVER( builder->face );
-
- if ( driver->hinting_engine == FT_CFF_HINTING_FREETYPE )
+#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
+ if ( !builder->is_t1 &&
+ driver->hinting_engine == FT_CFF_HINTING_FREETYPE )
{
point->x = x >> 16;
point->y = y >> 16;
}
else
#endif
-#ifdef T1_CONFIG_OPTION_OLD_ENGINE
- if ( builder->is_t1 )
+ if ( builder->is_t1 &&
+ driver->hinting_engine == FT_T1_HINTING_FREETYPE )
{
point->x = FIXED_TO_INT( x );
point->y = FIXED_TO_INT( y );
}
else
-#endif
{
/* cf2_decoder_parse_charstrings uses 16.16 coordinates */
point->x = x >> 10;