/***************************************************************************/ /* */ /* 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 */