diff options
author | marha <marha@users.sourceforge.net> | 2014-06-26 09:53:21 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-06-26 09:53:21 +0200 |
commit | 90137f4c5e30b1c6f9a262e8c853494540dad2d7 (patch) | |
tree | 7da9d06a291a853f0d17b2ee49a2d31d86a5d757 /freetype/src/cff/cffdrivr.c | |
parent | d47db8d4713de42ccca071c9e8401fc7a213ed49 (diff) | |
parent | fba3b6d1979c1d1ad0d56d46fc2d787f111c07fb (diff) | |
download | vcxsrv-90137f4c5e30b1c6f9a262e8c853494540dad2d7.tar.gz vcxsrv-90137f4c5e30b1c6f9a262e8c853494540dad2d7.tar.bz2 vcxsrv-90137f4c5e30b1c6f9a262e8c853494540dad2d7.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
Updated to freetype 2.5.3
Diffstat (limited to 'freetype/src/cff/cffdrivr.c')
-rw-r--r-- | freetype/src/cff/cffdrivr.c | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/freetype/src/cff/cffdrivr.c b/freetype/src/cff/cffdrivr.c index fd9472947..39e3f7b2d 100644 --- a/freetype/src/cff/cffdrivr.c +++ b/freetype/src/cff/cffdrivr.c @@ -164,6 +164,8 @@ if ( !slot ) return FT_THROW( Invalid_Slot_Handle ); + FT_TRACE1(( "cff_glyph_load: glyph index %d\n", glyph_index )); + /* check whether we want a scaled outline or bitmap */ if ( !size ) load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING; @@ -586,7 +588,38 @@ CFF_Driver driver = (CFF_Driver)module; - if ( !ft_strcmp( property_name, "hinting-engine" ) ) + if ( !ft_strcmp( property_name, "darkening-parameters" ) ) + { + FT_Int* darken_params = (FT_Int*)value; + + FT_Int x1 = darken_params[0]; + FT_Int y1 = darken_params[1]; + FT_Int x2 = darken_params[2]; + FT_Int y2 = darken_params[3]; + FT_Int x3 = darken_params[4]; + FT_Int y3 = darken_params[5]; + FT_Int x4 = darken_params[6]; + FT_Int y4 = darken_params[7]; + + + if ( x1 < 0 || x2 < 0 || x3 < 0 || x4 < 0 || + y1 < 0 || y2 < 0 || y3 < 0 || y4 < 0 || + x1 > x2 || x2 > x3 || x3 > x4 || + y1 > 500 || y2 > 500 || y3 > 500 || y4 > 500 ) + return FT_THROW( Invalid_Argument ); + + driver->darken_params[0] = x1; + driver->darken_params[1] = y1; + driver->darken_params[2] = x2; + driver->darken_params[3] = y2; + driver->darken_params[4] = x3; + driver->darken_params[5] = y3; + driver->darken_params[6] = x4; + driver->darken_params[7] = y4; + + return error; + } + else if ( !ft_strcmp( property_name, "hinting-engine" ) ) { FT_UInt* hinting_engine = (FT_UInt*)value; @@ -624,13 +657,28 @@ FT_Error error = FT_Err_Ok; CFF_Driver driver = (CFF_Driver)module; - FT_UInt hinting_engine = driver->hinting_engine; - FT_Bool no_stem_darkening = driver->no_stem_darkening; + if ( !ft_strcmp( property_name, "darkening-parameters" ) ) + { + FT_Int* darken_params = driver->darken_params; + FT_Int* val = (FT_Int*)value; + + + val[0] = darken_params[0]; + val[1] = darken_params[1]; + val[2] = darken_params[2]; + val[3] = darken_params[3]; + val[4] = darken_params[4]; + val[5] = darken_params[5]; + val[6] = darken_params[6]; + val[7] = darken_params[7]; - if ( !ft_strcmp( property_name, "hinting-engine" ) ) + return error; + } + else if ( !ft_strcmp( property_name, "hinting-engine" ) ) { - FT_UInt* val = (FT_UInt*)value; + FT_UInt hinting_engine = driver->hinting_engine; + FT_UInt* val = (FT_UInt*)value; *val = hinting_engine; @@ -639,7 +687,8 @@ } else if ( !ft_strcmp( property_name, "no-stem-darkening" ) ) { - FT_Bool* val = (FT_Bool*)value; + FT_Bool no_stem_darkening = driver->no_stem_darkening; + FT_Bool* val = (FT_Bool*)value; *val = no_stem_darkening; |