diff options
Diffstat (limited to 'src/psaux/psobjs.c')
-rw-r--r-- | src/psaux/psobjs.c | 13 |
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; |