summaryrefslogtreecommitdiff
path: root/3rdparty/include/freetype/internal/services
diff options
context:
space:
mode:
authorNikolas <nikolas@boutalas.com>2024-10-27 12:52:55 +0200
committerNikolas <nikolas@boutalas.com>2024-10-27 12:52:55 +0200
commit43394c8a8908442982e3a7e25975c31b3c952923 (patch)
tree2facd563e29f48fe3b0653ac5c113998940b4d5e /3rdparty/include/freetype/internal/services
Diffstat (limited to '3rdparty/include/freetype/internal/services')
-rw-r--r--3rdparty/include/freetype/internal/services/svbdf.h82
-rw-r--r--3rdparty/include/freetype/internal/services/svcfftl.h112
-rw-r--r--3rdparty/include/freetype/internal/services/svcid.h90
-rw-r--r--3rdparty/include/freetype/internal/services/svfntfmt.h55
-rw-r--r--3rdparty/include/freetype/internal/services/svgldict.h91
-rw-r--r--3rdparty/include/freetype/internal/services/svgxval.h72
-rw-r--r--3rdparty/include/freetype/internal/services/svkern.h51
-rw-r--r--3rdparty/include/freetype/internal/services/svmetric.h153
-rw-r--r--3rdparty/include/freetype/internal/services/svmm.h172
-rw-r--r--3rdparty/include/freetype/internal/services/svotval.h55
-rw-r--r--3rdparty/include/freetype/internal/services/svpfr.h66
-rw-r--r--3rdparty/include/freetype/internal/services/svpostnm.h81
-rw-r--r--3rdparty/include/freetype/internal/services/svprop.h82
-rw-r--r--3rdparty/include/freetype/internal/services/svpscmap.h177
-rw-r--r--3rdparty/include/freetype/internal/services/svpsinfo.h111
-rw-r--r--3rdparty/include/freetype/internal/services/svsfnt.h103
-rw-r--r--3rdparty/include/freetype/internal/services/svttcmap.h106
-rw-r--r--3rdparty/include/freetype/internal/services/svtteng.h53
-rw-r--r--3rdparty/include/freetype/internal/services/svttglyf.h69
-rw-r--r--3rdparty/include/freetype/internal/services/svwinfnt.h50
20 files changed, 1831 insertions, 0 deletions
diff --git a/3rdparty/include/freetype/internal/services/svbdf.h b/3rdparty/include/freetype/internal/services/svbdf.h
new file mode 100644
index 0000000..4a9ec20
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svbdf.h
@@ -0,0 +1,82 @@
+/***************************************************************************/
+/* */
+/* svbdf.h */
+/* */
+/* The FreeType BDF services (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVBDF_H_
+#define SVBDF_H_
+
+#include FT_BDF_H
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_BDF "bdf"
+
+ typedef FT_Error
+ (*FT_BDF_GetCharsetIdFunc)( FT_Face face,
+ const char* *acharset_encoding,
+ const char* *acharset_registry );
+
+ typedef FT_Error
+ (*FT_BDF_GetPropertyFunc)( FT_Face face,
+ const char* prop_name,
+ BDF_PropertyRec *aproperty );
+
+
+ FT_DEFINE_SERVICE( BDF )
+ {
+ FT_BDF_GetCharsetIdFunc get_charset_id;
+ FT_BDF_GetPropertyFunc get_property;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_BDFRec( class_, \
+ get_charset_id_, \
+ get_property_ ) \
+ static const FT_Service_BDFRec class_ = \
+ { \
+ get_charset_id_, get_property_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_BDFRec( class_, \
+ get_charset_id_, \
+ get_property_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_BDFRec* clazz ) \
+ { \
+ clazz->get_charset_id = get_charset_id_; \
+ clazz->get_property = get_property_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVBDF_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svcfftl.h b/3rdparty/include/freetype/internal/services/svcfftl.h
new file mode 100644
index 0000000..db623e6
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svcfftl.h
@@ -0,0 +1,112 @@
+/***************************************************************************/
+/* */
+/* svcfftl.h */
+/* */
+/* The FreeType CFF tables loader service (specification). */
+/* */
+/* Copyright 2017-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVCFFTL_H_
+#define SVCFFTL_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_INTERNAL_CFF_TYPES_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_CFF_LOAD "cff-load"
+
+
+ typedef FT_UShort
+ (*FT_Get_Standard_Encoding_Func)( FT_UInt charcode );
+
+ typedef FT_Error
+ (*FT_Load_Private_Dict_Func)( CFF_Font font,
+ CFF_SubFont subfont,
+ FT_UInt lenNDV,
+ FT_Fixed* NDV );
+
+ typedef FT_Byte
+ (*FT_FD_Select_Get_Func)( CFF_FDSelect fdselect,
+ FT_UInt glyph_index );
+
+ typedef FT_Bool
+ (*FT_Blend_Check_Vector_Func)( CFF_Blend blend,
+ FT_UInt vsindex,
+ FT_UInt lenNDV,
+ FT_Fixed* NDV );
+
+ typedef FT_Error
+ (*FT_Blend_Build_Vector_Func)( CFF_Blend blend,
+ FT_UInt vsindex,
+ FT_UInt lenNDV,
+ FT_Fixed* NDV );
+
+
+ FT_DEFINE_SERVICE( CFFLoad )
+ {
+ FT_Get_Standard_Encoding_Func get_standard_encoding;
+ FT_Load_Private_Dict_Func load_private_dict;
+ FT_FD_Select_Get_Func fd_select_get;
+ FT_Blend_Check_Vector_Func blend_check_vector;
+ FT_Blend_Build_Vector_Func blend_build_vector;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_CFFLOADREC( class_, \
+ get_standard_encoding_, \
+ load_private_dict_, \
+ fd_select_get_, \
+ blend_check_vector_, \
+ blend_build_vector_ ) \
+ static const FT_Service_CFFLoadRec class_ = \
+ { \
+ get_standard_encoding_, \
+ load_private_dict_, \
+ fd_select_get_, \
+ blend_check_vector_, \
+ blend_build_vector_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_CFFLOADREC( class_, \
+ get_standard_encoding_, \
+ load_private_dict_, \
+ fd_select_get_, \
+ blend_check_vector_, \
+ blend_build_vector_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_CFFLoadRec* clazz ) \
+ { \
+ clazz->get_standard_encoding = get_standard_encoding_; \
+ clazz->load_private_dict = load_private_dict_; \
+ clazz->fd_select_get = fd_select_get_; \
+ clazz->blend_check_vector = blend_check_vector_; \
+ clazz->blend_build_vector = blend_build_vector_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+
+FT_END_HEADER
+
+
+#endif
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svcid.h b/3rdparty/include/freetype/internal/services/svcid.h
new file mode 100644
index 0000000..cb59ac6
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svcid.h
@@ -0,0 +1,90 @@
+/***************************************************************************/
+/* */
+/* svcid.h */
+/* */
+/* The FreeType CID font services (specification). */
+/* */
+/* Copyright 2007-2018 by */
+/* Derek Clegg and Michael Toftdal. */
+/* */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVCID_H_
+#define SVCID_H_
+
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_CID "CID"
+
+ typedef FT_Error
+ (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face,
+ const char* *registry,
+ const char* *ordering,
+ FT_Int *supplement );
+ typedef FT_Error
+ (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face,
+ FT_Bool *is_cid );
+ typedef FT_Error
+ (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face,
+ FT_UInt glyph_index,
+ FT_UInt *cid );
+
+ FT_DEFINE_SERVICE( CID )
+ {
+ FT_CID_GetRegistryOrderingSupplementFunc get_ros;
+ FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid;
+ FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_CIDREC( class_, \
+ get_ros_, \
+ get_is_cid_, \
+ get_cid_from_glyph_index_ ) \
+ static const FT_Service_CIDRec class_ = \
+ { \
+ get_ros_, get_is_cid_, get_cid_from_glyph_index_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_CIDREC( class_, \
+ get_ros_, \
+ get_is_cid_, \
+ get_cid_from_glyph_index_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Library library, \
+ FT_Service_CIDRec* clazz ) \
+ { \
+ FT_UNUSED( library ); \
+ \
+ clazz->get_ros = get_ros_; \
+ clazz->get_is_cid = get_is_cid_; \
+ clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVCID_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svfntfmt.h b/3rdparty/include/freetype/internal/services/svfntfmt.h
new file mode 100644
index 0000000..3b732be
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svfntfmt.h
@@ -0,0 +1,55 @@
+/***************************************************************************/
+/* */
+/* svfntfmt.h */
+/* */
+/* The FreeType font format service (specification only). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVFNTFMT_H_
+#define SVFNTFMT_H_
+
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*
+ * A trivial service used to return the name of a face's font driver,
+ * according to the XFree86 nomenclature. Note that the service data
+ * is a simple constant string pointer.
+ */
+
+#define FT_SERVICE_ID_FONT_FORMAT "font-format"
+
+#define FT_FONT_FORMAT_TRUETYPE "TrueType"
+#define FT_FONT_FORMAT_TYPE_1 "Type 1"
+#define FT_FONT_FORMAT_BDF "BDF"
+#define FT_FONT_FORMAT_PCF "PCF"
+#define FT_FONT_FORMAT_TYPE_42 "Type 42"
+#define FT_FONT_FORMAT_CID "CID Type 1"
+#define FT_FONT_FORMAT_CFF "CFF"
+#define FT_FONT_FORMAT_PFR "PFR"
+#define FT_FONT_FORMAT_WINFNT "Windows FNT"
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVFNTFMT_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svgldict.h b/3rdparty/include/freetype/internal/services/svgldict.h
new file mode 100644
index 0000000..f1a68e3
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svgldict.h
@@ -0,0 +1,91 @@
+/***************************************************************************/
+/* */
+/* svgldict.h */
+/* */
+/* The FreeType glyph dictionary services (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVGLDICT_H_
+#define SVGLDICT_H_
+
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*
+ * A service used to retrieve glyph names, as well as to find the
+ * index of a given glyph name in a font.
+ *
+ */
+
+#define FT_SERVICE_ID_GLYPH_DICT "glyph-dict"
+
+
+ typedef FT_Error
+ (*FT_GlyphDict_GetNameFunc)( FT_Face face,
+ FT_UInt glyph_index,
+ FT_Pointer buffer,
+ FT_UInt buffer_max );
+
+ typedef FT_UInt
+ (*FT_GlyphDict_NameIndexFunc)( FT_Face face,
+ FT_String* glyph_name );
+
+
+ FT_DEFINE_SERVICE( GlyphDict )
+ {
+ FT_GlyphDict_GetNameFunc get_name;
+ FT_GlyphDict_NameIndexFunc name_index; /* optional */
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \
+ get_name_, \
+ name_index_ ) \
+ static const FT_Service_GlyphDictRec class_ = \
+ { \
+ get_name_, name_index_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \
+ get_name_, \
+ name_index_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Library library, \
+ FT_Service_GlyphDictRec* clazz ) \
+ { \
+ FT_UNUSED( library ); \
+ \
+ clazz->get_name = get_name_; \
+ clazz->name_index = name_index_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVGLDICT_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svgxval.h b/3rdparty/include/freetype/internal/services/svgxval.h
new file mode 100644
index 0000000..ed79ebe
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svgxval.h
@@ -0,0 +1,72 @@
+/***************************************************************************/
+/* */
+/* svgxval.h */
+/* */
+/* FreeType API for validating TrueTypeGX/AAT tables (specification). */
+/* */
+/* Copyright 2004-2018 by */
+/* Masatake YAMATO, Red Hat K.K., */
+/* 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. */
+/* */
+/***************************************************************************/
+
+/***************************************************************************/
+/* */
+/* gxvalid is derived from both gxlayout module and otvalid module. */
+/* Development of gxlayout is supported by the Information-technology */
+/* Promotion Agency(IPA), Japan. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVGXVAL_H_
+#define SVGXVAL_H_
+
+#include FT_GX_VALIDATE_H
+#include FT_INTERNAL_VALIDATE_H
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_GX_VALIDATE "truetypegx-validate"
+#define FT_SERVICE_ID_CLASSICKERN_VALIDATE "classickern-validate"
+
+ typedef FT_Error
+ (*gxv_validate_func)( FT_Face face,
+ FT_UInt gx_flags,
+ FT_Bytes tables[FT_VALIDATE_GX_LENGTH],
+ FT_UInt table_length );
+
+
+ typedef FT_Error
+ (*ckern_validate_func)( FT_Face face,
+ FT_UInt ckern_flags,
+ FT_Bytes *ckern_table );
+
+
+ FT_DEFINE_SERVICE( GXvalidate )
+ {
+ gxv_validate_func validate;
+ };
+
+ FT_DEFINE_SERVICE( CKERNvalidate )
+ {
+ ckern_validate_func validate;
+ };
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVGXVAL_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svkern.h b/3rdparty/include/freetype/internal/services/svkern.h
new file mode 100644
index 0000000..c7e8f6e
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svkern.h
@@ -0,0 +1,51 @@
+/***************************************************************************/
+/* */
+/* svkern.h */
+/* */
+/* The FreeType Kerning service (specification). */
+/* */
+/* Copyright 2006-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVKERN_H_
+#define SVKERN_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_TRUETYPE_TABLES_H
+
+
+FT_BEGIN_HEADER
+
+#define FT_SERVICE_ID_KERNING "kerning"
+
+
+ typedef FT_Error
+ (*FT_Kerning_TrackGetFunc)( FT_Face face,
+ FT_Fixed point_size,
+ FT_Int degree,
+ FT_Fixed* akerning );
+
+ FT_DEFINE_SERVICE( Kerning )
+ {
+ FT_Kerning_TrackGetFunc get_track;
+ };
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVKERN_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svmetric.h b/3rdparty/include/freetype/internal/services/svmetric.h
new file mode 100644
index 0000000..abaacdd
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svmetric.h
@@ -0,0 +1,153 @@
+/***************************************************************************/
+/* */
+/* svmetric.h */
+/* */
+/* The FreeType services for metrics variations (specification). */
+/* */
+/* Copyright 2016-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVMETRIC_H_
+#define SVMETRIC_H_
+
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*
+ * A service to manage the `HVAR, `MVAR', and `VVAR' OpenType tables.
+ *
+ */
+
+#define FT_SERVICE_ID_METRICS_VARIATIONS "metrics-variations"
+
+
+ /* HVAR */
+
+ typedef FT_Error
+ (*FT_HAdvance_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ typedef FT_Error
+ (*FT_LSB_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ typedef FT_Error
+ (*FT_RSB_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ /* VVAR */
+
+ typedef FT_Error
+ (*FT_VAdvance_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ typedef FT_Error
+ (*FT_TSB_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ typedef FT_Error
+ (*FT_BSB_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ typedef FT_Error
+ (*FT_VOrg_Adjust_Func)( FT_Face face,
+ FT_UInt gindex,
+ FT_Int *avalue );
+
+ /* MVAR */
+
+ typedef void
+ (*FT_Metrics_Adjust_Func)( FT_Face face );
+
+
+ FT_DEFINE_SERVICE( MetricsVariations )
+ {
+ FT_HAdvance_Adjust_Func hadvance_adjust;
+ FT_LSB_Adjust_Func lsb_adjust;
+ FT_RSB_Adjust_Func rsb_adjust;
+
+ FT_VAdvance_Adjust_Func vadvance_adjust;
+ FT_TSB_Adjust_Func tsb_adjust;
+ FT_BSB_Adjust_Func bsb_adjust;
+ FT_VOrg_Adjust_Func vorg_adjust;
+
+ FT_Metrics_Adjust_Func metrics_adjust;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \
+ hadvance_adjust_, \
+ lsb_adjust_, \
+ rsb_adjust_, \
+ vadvance_adjust_, \
+ tsb_adjust_, \
+ bsb_adjust_, \
+ vorg_adjust_, \
+ metrics_adjust_ ) \
+ static const FT_Service_MetricsVariationsRec class_ = \
+ { \
+ hadvance_adjust_, \
+ lsb_adjust_, \
+ rsb_adjust_, \
+ vadvance_adjust_, \
+ tsb_adjust_, \
+ bsb_adjust_, \
+ vorg_adjust_, \
+ metrics_adjust_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_METRICSVARIATIONSREC( class_, \
+ hadvance_adjust_, \
+ lsb_adjust_, \
+ rsb_adjust_, \
+ vadvance_adjust_, \
+ tsb_adjust_, \
+ bsb_adjust_, \
+ vorg_adjust_, \
+ metrics_adjust_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_MetricsVariationsRec* clazz ) \
+ { \
+ clazz->hadvance_adjust = hadvance_adjust_; \
+ clazz->lsb_adjust = lsb_adjust_; \
+ clazz->rsb_adjust = rsb_adjust_; \
+ clazz->vadvance_adjust = vadvance_adjust_; \
+ clazz->tsb_adjust = tsb_adjust_; \
+ clazz->bsb_adjust = bsb_adjust_; \
+ clazz->vorg_adjust = vorg_adjust_; \
+ clazz->metrics_adjust = metrics_adjust_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+#endif /* SVMETRIC_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svmm.h b/3rdparty/include/freetype/internal/services/svmm.h
new file mode 100644
index 0000000..bcbb38e
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svmm.h
@@ -0,0 +1,172 @@
+/***************************************************************************/
+/* */
+/* svmm.h */
+/* */
+/* The FreeType Multiple Masters and GX var services (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVMM_H_
+#define SVMM_H_
+
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*
+ * A service used to manage multiple-masters data in a given face.
+ *
+ * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
+ *
+ */
+
+#define FT_SERVICE_ID_MULTI_MASTERS "multi-masters"
+
+
+ typedef FT_Error
+ (*FT_Get_MM_Func)( FT_Face face,
+ FT_Multi_Master* master );
+
+ typedef FT_Error
+ (*FT_Get_MM_Var_Func)( FT_Face face,
+ FT_MM_Var* *master );
+
+ typedef FT_Error
+ (*FT_Set_MM_Design_Func)( FT_Face face,
+ FT_UInt num_coords,
+ FT_Long* coords );
+
+ /* use return value -1 to indicate that the new coordinates */
+ /* are equal to the current ones; no changes are thus needed */
+ typedef FT_Error
+ (*FT_Set_Var_Design_Func)( FT_Face face,
+ FT_UInt num_coords,
+ FT_Fixed* coords );
+
+ /* use return value -1 to indicate that the new coordinates */
+ /* are equal to the current ones; no changes are thus needed */
+ typedef FT_Error
+ (*FT_Set_MM_Blend_Func)( FT_Face face,
+ FT_UInt num_coords,
+ FT_Long* coords );
+
+ typedef FT_Error
+ (*FT_Get_Var_Design_Func)( FT_Face face,
+ FT_UInt num_coords,
+ FT_Fixed* coords );
+
+ typedef FT_Error
+ (*FT_Set_Instance_Func)( FT_Face face,
+ FT_UInt instance_index );
+
+ typedef FT_Error
+ (*FT_Get_MM_Blend_Func)( FT_Face face,
+ FT_UInt num_coords,
+ FT_Long* coords );
+
+ typedef FT_Error
+ (*FT_Get_Var_Blend_Func)( FT_Face face,
+ FT_UInt *num_coords,
+ FT_Fixed* *coords,
+ FT_Fixed* *normalizedcoords,
+ FT_MM_Var* *mm_var );
+
+ typedef void
+ (*FT_Done_Blend_Func)( FT_Face );
+
+
+ FT_DEFINE_SERVICE( MultiMasters )
+ {
+ FT_Get_MM_Func get_mm;
+ FT_Set_MM_Design_Func set_mm_design;
+ FT_Set_MM_Blend_Func set_mm_blend;
+ FT_Get_MM_Blend_Func get_mm_blend;
+ FT_Get_MM_Var_Func get_mm_var;
+ FT_Set_Var_Design_Func set_var_design;
+ FT_Get_Var_Design_Func get_var_design;
+ FT_Set_Instance_Func set_instance;
+
+ /* for internal use; only needed for code sharing between modules */
+ FT_Get_Var_Blend_Func get_var_blend;
+ FT_Done_Blend_Func done_blend;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
+ get_mm_, \
+ set_mm_design_, \
+ set_mm_blend_, \
+ get_mm_blend_, \
+ get_mm_var_, \
+ set_var_design_, \
+ get_var_design_, \
+ set_instance_, \
+ get_var_blend_, \
+ done_blend_ ) \
+ static const FT_Service_MultiMastersRec class_ = \
+ { \
+ get_mm_, \
+ set_mm_design_, \
+ set_mm_blend_, \
+ get_mm_blend_, \
+ get_mm_var_, \
+ set_var_design_, \
+ get_var_design_, \
+ set_instance_, \
+ get_var_blend_, \
+ done_blend_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \
+ get_mm_, \
+ set_mm_design_, \
+ set_mm_blend_, \
+ get_mm_blend_, \
+ get_mm_var_, \
+ set_var_design_, \
+ get_var_design_, \
+ set_instance_, \
+ get_var_blend_, \
+ done_blend_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \
+ { \
+ clazz->get_mm = get_mm_; \
+ clazz->set_mm_design = set_mm_design_; \
+ clazz->set_mm_blend = set_mm_blend_; \
+ clazz->get_mm_blend = get_mm_blend_; \
+ clazz->get_mm_var = get_mm_var_; \
+ clazz->set_var_design = set_var_design_; \
+ clazz->get_var_design = get_var_design_; \
+ clazz->set_instance = set_instance_; \
+ clazz->get_var_blend = get_var_blend_; \
+ clazz->done_blend = done_blend_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+#endif /* SVMM_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svotval.h b/3rdparty/include/freetype/internal/services/svotval.h
new file mode 100644
index 0000000..3129429
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svotval.h
@@ -0,0 +1,55 @@
+/***************************************************************************/
+/* */
+/* svotval.h */
+/* */
+/* The FreeType OpenType validation service (specification). */
+/* */
+/* Copyright 2004-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVOTVAL_H_
+#define SVOTVAL_H_
+
+#include FT_OPENTYPE_VALIDATE_H
+#include FT_INTERNAL_VALIDATE_H
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_OPENTYPE_VALIDATE "opentype-validate"
+
+
+ typedef FT_Error
+ (*otv_validate_func)( FT_Face volatile face,
+ FT_UInt ot_flags,
+ FT_Bytes *base,
+ FT_Bytes *gdef,
+ FT_Bytes *gpos,
+ FT_Bytes *gsub,
+ FT_Bytes *jstf );
+
+
+ FT_DEFINE_SERVICE( OTvalidate )
+ {
+ otv_validate_func validate;
+ };
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVOTVAL_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svpfr.h b/3rdparty/include/freetype/internal/services/svpfr.h
new file mode 100644
index 0000000..e65d57e
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svpfr.h
@@ -0,0 +1,66 @@
+/***************************************************************************/
+/* */
+/* svpfr.h */
+/* */
+/* Internal PFR service functions (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVPFR_H_
+#define SVPFR_H_
+
+#include FT_PFR_H
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_PFR_METRICS "pfr-metrics"
+
+
+ typedef FT_Error
+ (*FT_PFR_GetMetricsFunc)( FT_Face face,
+ FT_UInt *aoutline,
+ FT_UInt *ametrics,
+ FT_Fixed *ax_scale,
+ FT_Fixed *ay_scale );
+
+ typedef FT_Error
+ (*FT_PFR_GetKerningFunc)( FT_Face face,
+ FT_UInt left,
+ FT_UInt right,
+ FT_Vector *avector );
+
+ typedef FT_Error
+ (*FT_PFR_GetAdvanceFunc)( FT_Face face,
+ FT_UInt gindex,
+ FT_Pos *aadvance );
+
+
+ FT_DEFINE_SERVICE( PfrMetrics )
+ {
+ FT_PFR_GetMetricsFunc get_metrics;
+ FT_PFR_GetKerningFunc get_kerning;
+ FT_PFR_GetAdvanceFunc get_advance;
+
+ };
+
+ /* */
+
+FT_END_HEADER
+
+#endif /* SVPFR_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svpostnm.h b/3rdparty/include/freetype/internal/services/svpostnm.h
new file mode 100644
index 0000000..4a49d8b
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svpostnm.h
@@ -0,0 +1,81 @@
+/***************************************************************************/
+/* */
+/* svpostnm.h */
+/* */
+/* The FreeType PostScript name services (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVPOSTNM_H_
+#define SVPOSTNM_H_
+
+#include FT_INTERNAL_SERVICE_H
+
+
+FT_BEGIN_HEADER
+
+ /*
+ * A trivial service used to retrieve the PostScript name of a given
+ * font when available. The `get_name' field should never be NULL.
+ *
+ * The corresponding function can return NULL to indicate that the
+ * PostScript name is not available.
+ *
+ * The name is owned by the face and will be destroyed with it.
+ */
+
+#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name"
+
+
+ typedef const char*
+ (*FT_PsName_GetFunc)( FT_Face face );
+
+
+ FT_DEFINE_SERVICE( PsFontName )
+ {
+ FT_PsName_GetFunc get_ps_font_name;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \
+ static const FT_Service_PsFontNameRec class_ = \
+ { \
+ get_ps_font_name_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Library library, \
+ FT_Service_PsFontNameRec* clazz ) \
+ { \
+ FT_UNUSED( library ); \
+ \
+ clazz->get_ps_font_name = get_ps_font_name_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVPOSTNM_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svprop.h b/3rdparty/include/freetype/internal/services/svprop.h
new file mode 100644
index 0000000..adc0bcf
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svprop.h
@@ -0,0 +1,82 @@
+/***************************************************************************/
+/* */
+/* svprop.h */
+/* */
+/* The FreeType property service (specification). */
+/* */
+/* Copyright 2012-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVPROP_H_
+#define SVPROP_H_
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_PROPERTIES "properties"
+
+
+ typedef FT_Error
+ (*FT_Properties_SetFunc)( FT_Module module,
+ const char* property_name,
+ const void* value,
+ FT_Bool value_is_string );
+
+ typedef FT_Error
+ (*FT_Properties_GetFunc)( FT_Module module,
+ const char* property_name,
+ void* value );
+
+
+ FT_DEFINE_SERVICE( Properties )
+ {
+ FT_Properties_SetFunc set_property;
+ FT_Properties_GetFunc get_property;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \
+ set_property_, \
+ get_property_ ) \
+ static const FT_Service_PropertiesRec class_ = \
+ { \
+ set_property_, \
+ get_property_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \
+ set_property_, \
+ get_property_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \
+ { \
+ clazz->set_property = set_property_; \
+ clazz->get_property = get_property_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVPROP_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svpscmap.h b/3rdparty/include/freetype/internal/services/svpscmap.h
new file mode 100644
index 0000000..5589575
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svpscmap.h
@@ -0,0 +1,177 @@
+/***************************************************************************/
+/* */
+/* svpscmap.h */
+/* */
+/* The FreeType PostScript charmap service (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVPSCMAP_H_
+#define SVPSCMAP_H_
+
+#include FT_INTERNAL_OBJECTS_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps"
+
+
+ /*
+ * Adobe glyph name to unicode value.
+ */
+ typedef FT_UInt32
+ (*PS_Unicode_ValueFunc)( const char* glyph_name );
+
+ /*
+ * Macintosh name id to glyph name. NULL if invalid index.
+ */
+ typedef const char*
+ (*PS_Macintosh_NameFunc)( FT_UInt name_index );
+
+ /*
+ * Adobe standard string ID to glyph name. NULL if invalid index.
+ */
+ typedef const char*
+ (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index );
+
+
+ /*
+ * Simple unicode -> glyph index charmap built from font glyph names
+ * table.
+ */
+ typedef struct PS_UniMap_
+ {
+ FT_UInt32 unicode; /* bit 31 set: is glyph variant */
+ FT_UInt glyph_index;
+
+ } PS_UniMap;
+
+
+ typedef struct PS_UnicodesRec_* PS_Unicodes;
+
+ typedef struct PS_UnicodesRec_
+ {
+ FT_CMapRec cmap;
+ FT_UInt num_maps;
+ PS_UniMap* maps;
+
+ } PS_UnicodesRec;
+
+
+ /*
+ * A function which returns a glyph name for a given index. Returns
+ * NULL if invalid index.
+ */
+ typedef const char*
+ (*PS_GetGlyphNameFunc)( FT_Pointer data,
+ FT_UInt string_index );
+
+ /*
+ * A function used to release the glyph name returned by
+ * PS_GetGlyphNameFunc, when needed
+ */
+ typedef void
+ (*PS_FreeGlyphNameFunc)( FT_Pointer data,
+ const char* name );
+
+ typedef FT_Error
+ (*PS_Unicodes_InitFunc)( FT_Memory memory,
+ PS_Unicodes unicodes,
+ FT_UInt num_glyphs,
+ PS_GetGlyphNameFunc get_glyph_name,
+ PS_FreeGlyphNameFunc free_glyph_name,
+ FT_Pointer glyph_data );
+
+ typedef FT_UInt
+ (*PS_Unicodes_CharIndexFunc)( PS_Unicodes unicodes,
+ FT_UInt32 unicode );
+
+ typedef FT_UInt32
+ (*PS_Unicodes_CharNextFunc)( PS_Unicodes unicodes,
+ FT_UInt32 *unicode );
+
+
+ FT_DEFINE_SERVICE( PsCMaps )
+ {
+ PS_Unicode_ValueFunc unicode_value;
+
+ PS_Unicodes_InitFunc unicodes_init;
+ PS_Unicodes_CharIndexFunc unicodes_char_index;
+ PS_Unicodes_CharNextFunc unicodes_char_next;
+
+ PS_Macintosh_NameFunc macintosh_name;
+ PS_Adobe_Std_StringsFunc adobe_std_strings;
+ const unsigned short* adobe_std_encoding;
+ const unsigned short* adobe_expert_encoding;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \
+ unicode_value_, \
+ unicodes_init_, \
+ unicodes_char_index_, \
+ unicodes_char_next_, \
+ macintosh_name_, \
+ adobe_std_strings_, \
+ adobe_std_encoding_, \
+ adobe_expert_encoding_ ) \
+ static const FT_Service_PsCMapsRec class_ = \
+ { \
+ unicode_value_, unicodes_init_, \
+ unicodes_char_index_, unicodes_char_next_, macintosh_name_, \
+ adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \
+ unicode_value_, \
+ unicodes_init_, \
+ unicodes_char_index_, \
+ unicodes_char_next_, \
+ macintosh_name_, \
+ adobe_std_strings_, \
+ adobe_std_encoding_, \
+ adobe_expert_encoding_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Library library, \
+ FT_Service_PsCMapsRec* clazz ) \
+ { \
+ FT_UNUSED( library ); \
+ \
+ clazz->unicode_value = unicode_value_; \
+ clazz->unicodes_init = unicodes_init_; \
+ clazz->unicodes_char_index = unicodes_char_index_; \
+ clazz->unicodes_char_next = unicodes_char_next_; \
+ clazz->macintosh_name = macintosh_name_; \
+ clazz->adobe_std_strings = adobe_std_strings_; \
+ clazz->adobe_std_encoding = adobe_std_encoding_; \
+ clazz->adobe_expert_encoding = adobe_expert_encoding_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVPSCMAP_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svpsinfo.h b/3rdparty/include/freetype/internal/services/svpsinfo.h
new file mode 100644
index 0000000..408f406
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svpsinfo.h
@@ -0,0 +1,111 @@
+/***************************************************************************/
+/* */
+/* svpsinfo.h */
+/* */
+/* The FreeType PostScript info service (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVPSINFO_H_
+#define SVPSINFO_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_INTERNAL_TYPE1_TYPES_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_POSTSCRIPT_INFO "postscript-info"
+
+
+ typedef FT_Error
+ (*PS_GetFontInfoFunc)( FT_Face face,
+ PS_FontInfoRec* afont_info );
+
+ typedef FT_Error
+ (*PS_GetFontExtraFunc)( FT_Face face,
+ PS_FontExtraRec* afont_extra );
+
+ typedef FT_Int
+ (*PS_HasGlyphNamesFunc)( FT_Face face );
+
+ typedef FT_Error
+ (*PS_GetFontPrivateFunc)( FT_Face face,
+ PS_PrivateRec* afont_private );
+
+ typedef FT_Long
+ (*PS_GetFontValueFunc)( FT_Face face,
+ PS_Dict_Keys key,
+ FT_UInt idx,
+ void *value,
+ FT_Long value_len );
+
+
+ FT_DEFINE_SERVICE( PsInfo )
+ {
+ PS_GetFontInfoFunc ps_get_font_info;
+ PS_GetFontExtraFunc ps_get_font_extra;
+ PS_HasGlyphNamesFunc ps_has_glyph_names;
+ PS_GetFontPrivateFunc ps_get_font_private;
+ PS_GetFontValueFunc ps_get_font_value;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_PSINFOREC( class_, \
+ get_font_info_, \
+ ps_get_font_extra_, \
+ has_glyph_names_, \
+ get_font_private_, \
+ get_font_value_ ) \
+ static const FT_Service_PsInfoRec class_ = \
+ { \
+ get_font_info_, ps_get_font_extra_, has_glyph_names_, \
+ get_font_private_, get_font_value_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_PSINFOREC( class_, \
+ get_font_info_, \
+ ps_get_font_extra_, \
+ has_glyph_names_, \
+ get_font_private_, \
+ get_font_value_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Library library, \
+ FT_Service_PsInfoRec* clazz ) \
+ { \
+ FT_UNUSED( library ); \
+ \
+ clazz->ps_get_font_info = get_font_info_; \
+ clazz->ps_get_font_extra = ps_get_font_extra_; \
+ clazz->ps_has_glyph_names = has_glyph_names_; \
+ clazz->ps_get_font_private = get_font_private_; \
+ clazz->ps_get_font_value = get_font_value_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVPSINFO_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svsfnt.h b/3rdparty/include/freetype/internal/services/svsfnt.h
new file mode 100644
index 0000000..e8b37bc
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svsfnt.h
@@ -0,0 +1,103 @@
+/***************************************************************************/
+/* */
+/* svsfnt.h */
+/* */
+/* The FreeType SFNT table loading service (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVSFNT_H_
+#define SVSFNT_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_TRUETYPE_TABLES_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*
+ * SFNT table loading service.
+ */
+
+#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table"
+
+
+ /*
+ * Used to implement FT_Load_Sfnt_Table().
+ */
+ typedef FT_Error
+ (*FT_SFNT_TableLoadFunc)( FT_Face face,
+ FT_ULong tag,
+ FT_Long offset,
+ FT_Byte* buffer,
+ FT_ULong* length );
+
+ /*
+ * Used to implement FT_Get_Sfnt_Table().
+ */
+ typedef void*
+ (*FT_SFNT_TableGetFunc)( FT_Face face,
+ FT_Sfnt_Tag tag );
+
+
+ /*
+ * Used to implement FT_Sfnt_Table_Info().
+ */
+ typedef FT_Error
+ (*FT_SFNT_TableInfoFunc)( FT_Face face,
+ FT_UInt idx,
+ FT_ULong *tag,
+ FT_ULong *offset,
+ FT_ULong *length );
+
+
+ FT_DEFINE_SERVICE( SFNT_Table )
+ {
+ FT_SFNT_TableLoadFunc load_table;
+ FT_SFNT_TableGetFunc get_table;
+ FT_SFNT_TableInfoFunc table_info;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \
+ static const FT_Service_SFNT_TableRec class_ = \
+ { \
+ load_, get_, info_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \
+ { \
+ clazz->load_table = load_; \
+ clazz->get_table = get_; \
+ clazz->table_info = info_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVSFNT_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svttcmap.h b/3rdparty/include/freetype/internal/services/svttcmap.h
new file mode 100644
index 0000000..cd0e6fd
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svttcmap.h
@@ -0,0 +1,106 @@
+/***************************************************************************/
+/* */
+/* svttcmap.h */
+/* */
+/* The FreeType TrueType/sfnt cmap extra information service. */
+/* */
+/* Copyright 2003-2018 by */
+/* Masatake YAMATO, Redhat K.K., */
+/* 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. */
+/* */
+/***************************************************************************/
+
+/* Development of this service is support of
+ Information-technology Promotion Agency, Japan. */
+
+#ifndef SVTTCMAP_H_
+#define SVTTCMAP_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_TRUETYPE_TABLES_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
+
+
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* TT_CMapInfo */
+ /* */
+ /* <Description> */
+ /* A structure used to store TrueType/sfnt specific cmap information */
+ /* which is not covered by the generic @FT_CharMap structure. This */
+ /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */
+ /* */
+ /* <Fields> */
+ /* language :: */
+ /* The language ID used in Mac fonts. Definitions of values are in */
+ /* `ttnameid.h'. */
+ /* */
+ /* format :: */
+ /* The cmap format. OpenType 1.6 defines the formats 0 (byte */
+ /* encoding table), 2~(high-byte mapping through table), 4~(segment */
+ /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */
+ /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */
+ /* coverage), 13~(last resort font), and 14 (Unicode Variation */
+ /* Sequences). */
+ /* */
+ typedef struct TT_CMapInfo_
+ {
+ FT_ULong language;
+ FT_Long format;
+
+ } TT_CMapInfo;
+
+
+ typedef FT_Error
+ (*TT_CMap_Info_GetFunc)( FT_CharMap charmap,
+ TT_CMapInfo *cmap_info );
+
+
+ FT_DEFINE_SERVICE( TTCMaps )
+ {
+ TT_CMap_Info_GetFunc get_cmap_info;
+ };
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
+ static const FT_Service_TTCMapsRec class_ = \
+ { \
+ get_cmap_info_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Library library, \
+ FT_Service_TTCMapsRec* clazz ) \
+ { \
+ FT_UNUSED( library ); \
+ \
+ clazz->get_cmap_info = get_cmap_info_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+#endif /* SVTTCMAP_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svtteng.h b/3rdparty/include/freetype/internal/services/svtteng.h
new file mode 100644
index 0000000..92e3c54
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svtteng.h
@@ -0,0 +1,53 @@
+/***************************************************************************/
+/* */
+/* svtteng.h */
+/* */
+/* The FreeType TrueType engine query service (specification). */
+/* */
+/* Copyright 2006-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVTTENG_H_
+#define SVTTENG_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_MODULE_H
+
+
+FT_BEGIN_HEADER
+
+
+ /*
+ * SFNT table loading service.
+ */
+
+#define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine"
+
+ /*
+ * Used to implement FT_Get_TrueType_Engine_Type
+ */
+
+ FT_DEFINE_SERVICE( TrueTypeEngine )
+ {
+ FT_TrueTypeEngineType engine_type;
+ };
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVTTENG_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svttglyf.h b/3rdparty/include/freetype/internal/services/svttglyf.h
new file mode 100644
index 0000000..16fac1c
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svttglyf.h
@@ -0,0 +1,69 @@
+/***************************************************************************/
+/* */
+/* svttglyf.h */
+/* */
+/* The FreeType TrueType glyph service. */
+/* */
+/* Copyright 2007-2018 by */
+/* David Turner. */
+/* */
+/* 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. */
+/* */
+/***************************************************************************/
+
+#ifndef SVTTGLYF_H_
+#define SVTTGLYF_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_TRUETYPE_TABLES_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_TT_GLYF "tt-glyf"
+
+
+ typedef FT_ULong
+ (*TT_Glyf_GetLocationFunc)( FT_Face face,
+ FT_UInt gindex,
+ FT_ULong *psize );
+
+ FT_DEFINE_SERVICE( TTGlyf )
+ {
+ TT_Glyf_GetLocationFunc get_location;
+ };
+
+
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \
+ static const FT_Service_TTGlyfRec class_ = \
+ { \
+ get_location_ \
+ };
+
+#else /* FT_CONFIG_OPTION_PIC */
+
+#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \
+ void \
+ FT_Init_Class_ ## class_( FT_Service_TTGlyfRec* clazz ) \
+ { \
+ clazz->get_location = get_location_; \
+ }
+
+#endif /* FT_CONFIG_OPTION_PIC */
+
+ /* */
+
+
+FT_END_HEADER
+
+#endif /* SVTTGLYF_H_ */
+
+
+/* END */
diff --git a/3rdparty/include/freetype/internal/services/svwinfnt.h b/3rdparty/include/freetype/internal/services/svwinfnt.h
new file mode 100644
index 0000000..80d481c
--- /dev/null
+++ b/3rdparty/include/freetype/internal/services/svwinfnt.h
@@ -0,0 +1,50 @@
+/***************************************************************************/
+/* */
+/* svwinfnt.h */
+/* */
+/* The FreeType Windows FNT/FONT service (specification). */
+/* */
+/* Copyright 2003-2018 by */
+/* 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. */
+/* */
+/***************************************************************************/
+
+
+#ifndef SVWINFNT_H_
+#define SVWINFNT_H_
+
+#include FT_INTERNAL_SERVICE_H
+#include FT_WINFONTS_H
+
+
+FT_BEGIN_HEADER
+
+
+#define FT_SERVICE_ID_WINFNT "winfonts"
+
+ typedef FT_Error
+ (*FT_WinFnt_GetHeaderFunc)( FT_Face face,
+ FT_WinFNT_HeaderRec *aheader );
+
+
+ FT_DEFINE_SERVICE( WinFnt )
+ {
+ FT_WinFnt_GetHeaderFunc get_header;
+ };
+
+ /* */
+
+
+FT_END_HEADER
+
+
+#endif /* SVWINFNT_H_ */
+
+
+/* END */