1 /**************************************************************************** 2 * 3 * svcfftl.h 4 * 5 * The FreeType CFF tables loader service (specification). 6 * 7 * Copyright (C) 2017-2020 by 8 * David Turner, Robert Wilhelm, and Werner Lemberg. 9 * 10 * This file is part of the FreeType project, and may only be used, 11 * modified, and distributed under the terms of the FreeType project 12 * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 * this file you indicate that you have read the license and 14 * understand and accept it fully. 15 * 16 */ 17 18 19 #ifndef SVCFFTL_H_ 20 #define SVCFFTL_H_ 21 22 #include <freetype/internal/ftserv.h> 23 #include <freetype/internal/cfftypes.h> 24 25 26 FT_BEGIN_HEADER 27 28 29 #define FT_SERVICE_ID_CFF_LOAD "cff-load" 30 31 32 typedef FT_UShort 33 (*FT_Get_Standard_Encoding_Func)( FT_UInt charcode ); 34 35 typedef FT_Error 36 (*FT_Load_Private_Dict_Func)( CFF_Font font, 37 CFF_SubFont subfont, 38 FT_UInt lenNDV, 39 FT_Fixed* NDV ); 40 41 typedef FT_Byte 42 (*FT_FD_Select_Get_Func)( CFF_FDSelect fdselect, 43 FT_UInt glyph_index ); 44 45 typedef FT_Bool 46 (*FT_Blend_Check_Vector_Func)( CFF_Blend blend, 47 FT_UInt vsindex, 48 FT_UInt lenNDV, 49 FT_Fixed* NDV ); 50 51 typedef FT_Error 52 (*FT_Blend_Build_Vector_Func)( CFF_Blend blend, 53 FT_UInt vsindex, 54 FT_UInt lenNDV, 55 FT_Fixed* NDV ); 56 57 FT_DEFINE_SERVICE(CFFLoad)58 FT_DEFINE_SERVICE( CFFLoad ) 59 { 60 FT_Get_Standard_Encoding_Func get_standard_encoding; 61 FT_Load_Private_Dict_Func load_private_dict; 62 FT_FD_Select_Get_Func fd_select_get; 63 FT_Blend_Check_Vector_Func blend_check_vector; 64 FT_Blend_Build_Vector_Func blend_build_vector; 65 }; 66 67 68 #define FT_DEFINE_SERVICE_CFFLOADREC( class_, \ 69 get_standard_encoding_, \ 70 load_private_dict_, \ 71 fd_select_get_, \ 72 blend_check_vector_, \ 73 blend_build_vector_ ) \ 74 static const FT_Service_CFFLoadRec class_ = \ 75 { \ 76 get_standard_encoding_, \ 77 load_private_dict_, \ 78 fd_select_get_, \ 79 blend_check_vector_, \ 80 blend_build_vector_ \ 81 }; 82 83 84 FT_END_HEADER 85 86 87 #endif 88 89 90 /* END */ 91