summaryrefslogtreecommitdiff
path: root/freetype/src/cff/cffdrivr.c
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2018-11-14 22:29:24 +0000
committerChris Liddell <chris.liddell@artifex.com>2018-11-28 09:11:20 +0000
commitbfddf70400bb1fd4b3f7bfd72f333ad09a0b6cba (patch)
tree427e640f7e282844dee108a4101a3ccfa23710b1 /freetype/src/cff/cffdrivr.c
parent3f93e079aa448a202329fd08a350485c3504b9dd (diff)
downloadghostpdl-bfddf70400bb1fd4b3f7bfd72f333ad09a0b6cba.tar.gz
Add a setweightvector analogue in Freetype
Avoids the need to recreate the FT font everytime the weightvector changes. These Freetype changes have been accepted upstream: http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=78a1e69517ca067224d6e33beffd25e2ec8361d2
Diffstat (limited to 'freetype/src/cff/cffdrivr.c')
-rw-r--r--freetype/src/cff/cffdrivr.c46
1 files changed, 35 insertions, 11 deletions
diff --git a/freetype/src/cff/cffdrivr.c b/freetype/src/cff/cffdrivr.c
index df896848d..06e2d743d 100644
--- a/freetype/src/cff/cffdrivr.c
+++ b/freetype/src/cff/cffdrivr.c
@@ -859,6 +859,28 @@
return mm->get_mm_blend( FT_FACE( face ), num_coords, coords );
}
+ static FT_Error
+ cff_set_mm_weightvector( CFF_Face face,
+ FT_UInt len,
+ FT_Fixed* weightvector )
+ {
+ FT_Service_MultiMasters mm = (FT_Service_MultiMasters)face->mm;
+
+
+ return mm->set_mm_weightvector( FT_FACE( face ), len, weightvector );
+ }
+
+
+ static FT_Error
+ cff_get_mm_weightvector( CFF_Face face,
+ FT_UInt* len,
+ FT_Fixed* weightvector )
+ {
+ FT_Service_MultiMasters mm = (FT_Service_MultiMasters)face->mm;
+
+
+ return mm->get_mm_weightvector( FT_FACE( face ), len, weightvector );
+ }
static FT_Error
cff_get_mm_var( CFF_Face face,
@@ -909,17 +931,19 @@
FT_DEFINE_SERVICE_MULTIMASTERSREC(
cff_service_multi_masters,
- (FT_Get_MM_Func) NULL, /* get_mm */
- (FT_Set_MM_Design_Func) NULL, /* set_mm_design */
- (FT_Set_MM_Blend_Func) cff_set_mm_blend, /* set_mm_blend */
- (FT_Get_MM_Blend_Func) cff_get_mm_blend, /* get_mm_blend */
- (FT_Get_MM_Var_Func) cff_get_mm_var, /* get_mm_var */
- (FT_Set_Var_Design_Func)cff_set_var_design, /* set_var_design */
- (FT_Get_Var_Design_Func)cff_get_var_design, /* get_var_design */
- (FT_Set_Instance_Func) cff_set_instance, /* set_instance */
-
- (FT_Get_Var_Blend_Func) cff_get_var_blend, /* get_var_blend */
- (FT_Done_Blend_Func) cff_done_blend /* done_blend */
+ (FT_Get_MM_Func) NULL, /* get_mm */
+ (FT_Set_MM_Design_Func) NULL, /* set_mm_design */
+ (FT_Set_MM_Blend_Func) cff_set_mm_blend, /* set_mm_blend */
+ (FT_Get_MM_Blend_Func) cff_get_mm_blend, /* get_mm_blend */
+ (FT_Get_MM_Var_Func) cff_get_mm_var, /* get_mm_var */
+ (FT_Set_Var_Design_Func) cff_set_var_design, /* set_var_design */
+ (FT_Get_Var_Design_Func) cff_get_var_design, /* get_var_design */
+ (FT_Set_Instance_Func) cff_set_instance, /* set_instance */
+ (FT_Set_MM_WeightVector_Func) cff_set_mm_weightvector,/* set_mm_weightvector */
+ (FT_Get_MM_WeightVector_Func) cff_get_mm_weightvector,/* get_mm_weightvector */
+
+ (FT_Get_Var_Blend_Func) cff_get_var_blend, /* get_var_blend */
+ (FT_Done_Blend_Func) cff_done_blend /* done_blend */
)