1 /***************************************************************************/ 2 /* */ 3 /* svcid.h */ 4 /* */ 5 /* The FreeType CID font services (specification). */ 6 /* */ 7 /* Copyright 2007, 2009, 2012 by Derek Clegg, Michael Toftdal. */ 8 /* */ 9 /* This file is part of the FreeType project, and may only be used, */ 10 /* modified, and distributed under the terms of the FreeType project */ 11 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 12 /* this file you indicate that you have read the license and */ 13 /* understand and accept it fully. */ 14 /* */ 15 /***************************************************************************/ 16 17 18 #ifndef __SVCID_H__ 19 #define __SVCID_H__ 20 21 #include FT_INTERNAL_SERVICE_H 22 23 24 FT_BEGIN_HEADER 25 26 27 #define FT_SERVICE_ID_CID "CID" 28 29 typedef FT_Error 30 (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face, 31 const char* *registry, 32 const char* *ordering, 33 FT_Int *supplement ); 34 typedef FT_Error 35 (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face, 36 FT_Bool *is_cid ); 37 typedef FT_Error 38 (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face, 39 FT_UInt glyph_index, 40 FT_UInt *cid ); 41 FT_DEFINE_SERVICE(CID)42 FT_DEFINE_SERVICE( CID ) 43 { 44 FT_CID_GetRegistryOrderingSupplementFunc get_ros; 45 FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid; 46 FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index; 47 }; 48 49 50 #ifndef FT_CONFIG_OPTION_PIC 51 52 #define FT_DEFINE_SERVICE_CIDREC( class_, \ 53 get_ros_, \ 54 get_is_cid_, \ 55 get_cid_from_glyph_index_ ) \ 56 static const FT_Service_CIDRec class_ = \ 57 { \ 58 get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ 59 }; 60 61 #else /* FT_CONFIG_OPTION_PIC */ 62 63 #define FT_DEFINE_SERVICE_CIDREC( class_, \ 64 get_ros_, \ 65 get_is_cid_, \ 66 get_cid_from_glyph_index_ ) \ 67 void \ 68 FT_Init_Class_ ## class_( FT_Library library, \ 69 FT_Service_CIDRec* clazz ) \ 70 { \ 71 FT_UNUSED( library ); \ 72 \ 73 clazz->get_ros = get_ros_; \ 74 clazz->get_is_cid = get_is_cid_; \ 75 clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ 76 } 77 78 #endif /* FT_CONFIG_OPTION_PIC */ 79 80 /* */ 81 82 83 FT_END_HEADER 84 85 86 #endif /* __SVCID_H__ */ 87 88 89 /* END */ 90