summaryrefslogtreecommitdiff
path: root/src/base/ftmm.c
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2023-04-26 08:17:17 +0200
committerWerner Lemberg <wl@gnu.org>2023-04-28 10:44:14 +0200
commit545d0446b6625e8412f379304b0fc0a20741a8c1 (patch)
treebda43cfaae11f76d81009e22da09dd2bf8d6f1b9 /src/base/ftmm.c
parent17a0c5dfd5d94944f091c96145a5c96bba46de0a (diff)
downloadfreetype2-545d0446b6625e8412f379304b0fc0a20741a8c1.tar.gz
New Variation Font function `FT_Get_Default_Named_Instance`.
* include/freetype/ftmm.h, src/base/ftmm.c (FT_Get_Default_Named_Instance): New function. * include/freetype/internal/services/svmm.h (FT_Get_Default_Named_Instance_Func): New typedef. (FT_Service_MultiMasters): New field `get_default_named_instance`. (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. * include/freetype/internal/tttypes.h (TT_Face): New field `var_default_named_instance`. * src/sfnt/sfobjc.s (sfnt_init_face): Initialize `var_default_named_instance`. * src/cff/cffdrivr.c (cff_get_default_named_instance): New function. (cff_service_multi_masters): Updated. * src/truetype/ttgxvar.c (TT_Get_MM_Var): Initialize `var_default_named_instance`. (TT_Get_Default_Named_Instance): New function. * src/truetype/ttgxvar.h: Updated. * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. * src/type1/t1driver.c (t1_service_multi_masters): Updated. * docs/CHANGES: Updated.
Diffstat (limited to 'src/base/ftmm.c')
-rw-r--r--src/base/ftmm.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/base/ftmm.c b/src/base/ftmm.c
index a2b4bd03d..781db315e 100644
--- a/src/base/ftmm.c
+++ b/src/base/ftmm.c
@@ -565,4 +565,32 @@
}
+ /* documentation is in ftmm.h */
+
+ FT_EXPORT_DEF( FT_Error )
+ FT_Get_Default_Named_Instance( FT_Face face,
+ FT_UInt *instance_index )
+ {
+ FT_Error error;
+
+ FT_Service_MultiMasters service_mm = NULL;
+
+
+ /* check of `face' delayed to `ft_face_get_mm_service' */
+
+ error = ft_face_get_mm_service( face, &service_mm );
+ if ( !error )
+ {
+ /* no error if `get_default_named_instance` is not available */
+ if ( service_mm->get_default_named_instance )
+ error = service_mm->get_default_named_instance( face,
+ instance_index );
+ else
+ error = FT_Err_Ok;
+ }
+
+ return error;
+ }
+
+
/* END */