1 /***************************************************************************/ 2 /* */ 3 /* svcid.h */ 4 /* */ 5 /* The FreeType CID font services (specification). */ 6 /* */ 7 /* Copyright 2007, 2009 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 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 #ifndef FT_CONFIG_OPTION_PIC 50 51 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_, \ 52 get_is_cid_, get_cid_from_glyph_index_ ) \ 53 static const FT_Service_CIDRec class_ = \ 54 { \ 55 get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ 56 }; 57 58 #else /* FT_CONFIG_OPTION_PIC */ 59 60 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_, \ 61 get_is_cid_, get_cid_from_glyph_index_ ) \ 62 void \ 63 FT_Init_Class_##class_( FT_Library library, \ 64 FT_Service_CIDRec* clazz) \ 65 { \ 66 FT_UNUSED(library); \ 67 clazz->get_ros = get_ros_; \ 68 clazz->get_is_cid = get_is_cid_; \ 69 clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ 70 } 71 72 #endif /* FT_CONFIG_OPTION_PIC */ 73 74 /* */ 75 76 77 FT_END_HEADER 78 79 80 #endif /* __SVCID_H__ */ 81 82 83 /* END */ 84