00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __SVCID_H__
00019 #define __SVCID_H__
00020
00021 #include FT_INTERNAL_SERVICE_H
00022
00023
00024 FT_BEGIN_HEADER
00025
00026
00027 #define FT_SERVICE_ID_CID "CID"
00028
00029 typedef FT_Error
00030 (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face,
00031 const char* *registry,
00032 const char* *ordering,
00033 FT_Int *supplement );
00034 typedef FT_Error
00035 (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face,
00036 FT_Bool *is_cid );
00037 typedef FT_Error
00038 (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face,
00039 FT_UInt glyph_index,
00040 FT_UInt *cid );
00041
00042 FT_DEFINE_SERVICE( CID )
00043 {
00044 FT_CID_GetRegistryOrderingSupplementFunc get_ros;
00045 FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid;
00046 FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index;
00047 };
00048
00049 #ifndef FT_CONFIG_OPTION_PIC
00050
00051 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_, \
00052 get_is_cid_, get_cid_from_glyph_index_ ) \
00053 static const FT_Service_CIDRec class_ = \
00054 { \
00055 get_ros_, get_is_cid_, get_cid_from_glyph_index_ \
00056 };
00057
00058 #else
00059
00060 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_, \
00061 get_is_cid_, get_cid_from_glyph_index_ ) \
00062 void \
00063 FT_Init_Class_##class_( FT_Library library, \
00064 FT_Service_CIDRec* clazz) \
00065 { \
00066 FT_UNUSED(library); \
00067 clazz->get_ros = get_ros_; \
00068 clazz->get_is_cid = get_is_cid_; \
00069 clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \
00070 }
00071
00072 #endif
00073
00074
00075
00076
00077 FT_END_HEADER
00078
00079
00080 #endif
00081
00082
00083