diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 510825359..66395f149 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -28,6 +28,8 @@ #include FT_TRUETYPE_TABLES_H #include FT_TRUETYPE_TAGS_H #include FT_TRUETYPE_IDS_H +#include FT_INTERNAL_POSTSCRIPT_AUX_H +#include FT_TYPE1_DRIVER_H #include FT_SERVICE_PROPERTIES_H #include FT_SERVICE_SFNT_H @@ -833,7 +835,9 @@ else { FT_Render_Mode mode = FT_LOAD_TARGET_MODE( load_flags ); - + FT_Bool isType1FontWithLightHinter = + ( strncmp(driver->root.clazz->module_name, "type1", 5) == 0 && + ((PS_Driver)driver)->hinting_engine == FT_T1_HINTING_ADOBE ); /* the check for `num_locations' assures that we actually */ /* test for instructions in a TTF and not in a CFF-based OTF */ @@ -843,7 +847,8 @@ /* the assumption is that there don't exist real TTFs where */ /* both `fpgm' and `prep' tables are missing */ if ( ( mode == FT_RENDER_MODE_LIGHT && - !FT_DRIVER_HINTS_LIGHTLY( driver ) ) || + ( !FT_DRIVER_HINTS_LIGHTLY( driver ) && + !isType1FontWithLightHinter ) ) || ( FT_IS_SFNT( face ) && ttface->num_locations && ttface->max_profile.maxSizeOfInstructions == 0 &&