2018-06-03 09:01:17 +02:00
|
|
|
/****************************************************************************
|
|
|
|
*
|
|
|
|
* ftpsprop.c
|
|
|
|
*
|
|
|
|
* Get and set properties of PostScript drivers (body).
|
|
|
|
* See `ftdriver.h' for available properties.
|
|
|
|
*
|
2019-02-23 10:07:09 +01:00
|
|
|
* Copyright (C) 2017-2019 by
|
2018-06-03 09:01:17 +02:00
|
|
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
|
|
*
|
|
|
|
* This file is part of the FreeType project, and may only be used,
|
|
|
|
* modified, and distributed under the terms of the FreeType project
|
|
|
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
|
|
|
* this file you indicate that you have read the license and
|
|
|
|
* understand and accept it fully.
|
|
|
|
*
|
|
|
|
*/
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
|
|
|
|
|
2017-12-27 08:19:09 +01:00
|
|
|
#include <ft2build.h>
|
|
|
|
#include FT_DRIVER_H
|
|
|
|
#include FT_INTERNAL_DEBUG_H
|
|
|
|
#include FT_INTERNAL_POSTSCRIPT_AUX_H
|
|
|
|
#include FT_INTERNAL_OBJECTS_H
|
2017-12-27 08:59:46 +01:00
|
|
|
#include FT_INTERNAL_POSTSCRIPT_PROPS_H
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
|
2017-12-27 08:19:09 +01:00
|
|
|
|
2018-06-03 09:01:17 +02:00
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* The macro FT_COMPONENT is used in trace mode. It is an implicit
|
|
|
|
* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log
|
|
|
|
* messages during execution.
|
|
|
|
*/
|
2017-12-27 08:19:09 +01:00
|
|
|
#undef FT_COMPONENT
|
2018-08-15 18:13:17 +02:00
|
|
|
#define FT_COMPONENT psprops
|
2017-12-27 08:19:09 +01:00
|
|
|
|
|
|
|
|
|
|
|
FT_BASE_CALLBACK_DEF( FT_Error )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
ps_property_set( FT_Module module, /* PS_Driver */
|
|
|
|
const char* property_name,
|
|
|
|
const void* value,
|
|
|
|
FT_Bool value_is_string )
|
|
|
|
{
|
|
|
|
FT_Error error = FT_Err_Ok;
|
|
|
|
PS_Driver driver = (PS_Driver)module;
|
|
|
|
|
|
|
|
#ifndef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
|
|
|
|
FT_UNUSED( value_is_string );
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
if ( !ft_strcmp( property_name, "darkening-parameters" ) )
|
|
|
|
{
|
|
|
|
FT_Int* darken_params;
|
|
|
|
FT_Int x1, y1, x2, y2, x3, y3, x4, y4;
|
|
|
|
|
|
|
|
#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
|
|
|
|
FT_Int dp[8];
|
|
|
|
|
|
|
|
|
|
|
|
if ( value_is_string )
|
|
|
|
{
|
|
|
|
const char* s = (const char*)value;
|
|
|
|
char* ep;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
/* eight comma-separated numbers */
|
|
|
|
for ( i = 0; i < 7; i++ )
|
|
|
|
{
|
|
|
|
dp[i] = (FT_Int)ft_strtol( s, &ep, 10 );
|
|
|
|
if ( *ep != ',' || s == ep )
|
|
|
|
return FT_THROW( Invalid_Argument );
|
|
|
|
|
|
|
|
s = ep + 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
dp[7] = (FT_Int)ft_strtol( s, &ep, 10 );
|
|
|
|
if ( !( *ep == '\0' || *ep == ' ' ) || s == ep )
|
|
|
|
return FT_THROW( Invalid_Argument );
|
|
|
|
|
|
|
|
darken_params = dp;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
#endif
|
|
|
|
darken_params = (FT_Int*)value;
|
|
|
|
|
|
|
|
x1 = darken_params[0];
|
|
|
|
y1 = darken_params[1];
|
|
|
|
x2 = darken_params[2];
|
|
|
|
y2 = darken_params[3];
|
|
|
|
x3 = darken_params[4];
|
|
|
|
y3 = darken_params[5];
|
|
|
|
x4 = darken_params[6];
|
|
|
|
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;
|
|
|
|
}
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
else if ( !ft_strcmp( property_name, "hinting-engine" ) )
|
|
|
|
{
|
2017-12-27 08:06:47 +01:00
|
|
|
#if defined( CFF_CONFIG_OPTION_OLD_ENGINE ) || \
|
|
|
|
defined( T1_CONFIG_OPTION_OLD_ENGINE )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
const char* module_name = module->clazz->module_name;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
|
|
|
|
if ( value_is_string )
|
|
|
|
{
|
|
|
|
const char* s = (const char*)value;
|
|
|
|
|
|
|
|
|
|
|
|
if ( !ft_strcmp( s, "adobe" ) )
|
|
|
|
driver->hinting_engine = FT_HINTING_ADOBE;
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
|
|
|
|
else if ( !ft_strcmp( module_name, "cff" ) &&
|
2017-12-27 08:06:47 +01:00
|
|
|
!ft_strcmp( s, "freetype" ) )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
driver->hinting_engine = FT_HINTING_FREETYPE;
|
|
|
|
#endif
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
#ifdef T1_CONFIG_OPTION_OLD_ENGINE
|
|
|
|
else if ( ( !ft_strcmp( module_name, "type1" ) ||
|
|
|
|
!ft_strcmp( module_name, "t1cid" ) ) &&
|
2017-12-27 08:06:47 +01:00
|
|
|
!ft_strcmp( s, "freetype" ) )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
driver->hinting_engine = FT_HINTING_FREETYPE;
|
|
|
|
#endif
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
else
|
|
|
|
return FT_THROW( Invalid_Argument );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
#endif /* FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES */
|
|
|
|
{
|
|
|
|
FT_UInt* hinting_engine = (FT_UInt*)value;
|
|
|
|
|
|
|
|
|
|
|
|
if ( *hinting_engine == FT_HINTING_ADOBE
|
|
|
|
#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
|
|
|
|
|| ( *hinting_engine == FT_HINTING_FREETYPE &&
|
2017-12-27 08:06:47 +01:00
|
|
|
!ft_strcmp( module_name, "cff" ) )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
#endif
|
|
|
|
#ifdef T1_CONFIG_OPTION_OLD_ENGINE
|
|
|
|
|| ( *hinting_engine == FT_HINTING_FREETYPE &&
|
|
|
|
( !ft_strcmp( module_name, "type1" ) ||
|
|
|
|
!ft_strcmp( module_name, "t1cid" ) ) )
|
|
|
|
#endif
|
|
|
|
)
|
|
|
|
driver->hinting_engine = *hinting_engine;
|
|
|
|
else
|
|
|
|
error = FT_ERR( Unimplemented_Feature );
|
|
|
|
}
|
2020-01-04 19:28:36 +01:00
|
|
|
|
|
|
|
return error;
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
}
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
|
|
|
|
{
|
|
|
|
#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
|
|
|
|
if ( value_is_string )
|
|
|
|
{
|
|
|
|
const char* s = (const char*)value;
|
|
|
|
long nsd = ft_strtol( s, NULL, 10 );
|
|
|
|
|
|
|
|
|
|
|
|
if ( !nsd )
|
|
|
|
driver->no_stem_darkening = FALSE;
|
|
|
|
else
|
|
|
|
driver->no_stem_darkening = TRUE;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
#endif
|
|
|
|
{
|
|
|
|
FT_Bool* no_stem_darkening = (FT_Bool*)value;
|
|
|
|
|
|
|
|
|
|
|
|
driver->no_stem_darkening = *no_stem_darkening;
|
|
|
|
}
|
|
|
|
|
|
|
|
return error;
|
|
|
|
}
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
else if ( !ft_strcmp( property_name, "random-seed" ) )
|
|
|
|
{
|
|
|
|
FT_Int32 random_seed;
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
|
|
|
|
if ( value_is_string )
|
|
|
|
{
|
|
|
|
const char* s = (const char*)value;
|
|
|
|
|
|
|
|
|
|
|
|
random_seed = (FT_Int32)ft_strtol( s, NULL, 10 );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
#endif
|
|
|
|
random_seed = *(FT_Int32*)value;
|
|
|
|
|
|
|
|
if ( random_seed < 0 )
|
|
|
|
random_seed = 0;
|
|
|
|
|
|
|
|
driver->random_seed = random_seed;
|
|
|
|
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
|
|
|
FT_TRACE0(( "ps_property_set: missing property `%s'\n",
|
|
|
|
property_name ));
|
|
|
|
return FT_THROW( Missing_Property );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-12-27 08:19:09 +01:00
|
|
|
FT_BASE_CALLBACK_DEF( FT_Error )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
ps_property_get( FT_Module module, /* PS_Driver */
|
|
|
|
const char* property_name,
|
2017-12-27 08:19:09 +01:00
|
|
|
void* value )
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
{
|
|
|
|
FT_Error error = FT_Err_Ok;
|
|
|
|
PS_Driver driver = (PS_Driver)module;
|
|
|
|
|
|
|
|
|
|
|
|
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];
|
|
|
|
|
|
|
|
return error;
|
|
|
|
}
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
else if ( !ft_strcmp( property_name, "hinting-engine" ) )
|
|
|
|
{
|
|
|
|
FT_UInt hinting_engine = driver->hinting_engine;
|
|
|
|
FT_UInt* val = (FT_UInt*)value;
|
|
|
|
|
|
|
|
|
|
|
|
*val = hinting_engine;
|
|
|
|
|
|
|
|
return error;
|
|
|
|
}
|
2017-12-27 08:06:47 +01:00
|
|
|
|
Move PostScript drivers' property handlers to `base'
This reduces the amount of duplicated code across PostScript drivers.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
({cff,cid,t1}_property_{get,set}): Moved to...
* include/freetype/internal/ftpsprop.h: ...this new file.
(ps_property_{get,set}): New functions to replace moved ones.
* src/base/ftpsprop.c: Implement above functions.
* include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H):
New macro.
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated.
* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
2017-12-25 05:34:37 +01:00
|
|
|
else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
|
|
|
|
{
|
|
|
|
FT_Bool no_stem_darkening = driver->no_stem_darkening;
|
|
|
|
FT_Bool* val = (FT_Bool*)value;
|
|
|
|
|
|
|
|
|
|
|
|
*val = no_stem_darkening;
|
|
|
|
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
|
|
|
FT_TRACE0(( "ps_property_get: missing property `%s'\n",
|
|
|
|
property_name ));
|
|
|
|
return FT_THROW( Missing_Property );
|
|
|
|
}
|
|
|
|
|
2017-12-27 08:06:47 +01:00
|
|
|
|
|
|
|
/* END */
|