00001 /***************************************************************************/ 00002 /* */ 00003 /* svttcmap.h */ 00004 /* */ 00005 /* The FreeType TrueType/sfnt cmap extra information service. */ 00006 /* */ 00007 /* Copyright 2003 by */ 00008 /* Masatake YAMATO, Redhat K.K. */ 00009 /* */ 00010 /* Copyright 2003, 2008 by */ 00011 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00012 /* */ 00013 /* This file is part of the FreeType project, and may only be used, */ 00014 /* modified, and distributed under the terms of the FreeType project */ 00015 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00016 /* this file you indicate that you have read the license and */ 00017 /* understand and accept it fully. */ 00018 /* */ 00019 /***************************************************************************/ 00020 00021 /* Development of this service is support of 00022 Information-technology Promotion Agency, Japan. */ 00023 00024 #ifndef __SVTTCMAP_H__ 00025 #define __SVTTCMAP_H__ 00026 00027 #include FT_INTERNAL_SERVICE_H 00028 #include FT_TRUETYPE_TABLES_H 00029 00030 00031 FT_BEGIN_HEADER 00032 00033 00034 #define FT_SERVICE_ID_TT_CMAP "tt-cmaps" 00035 00036 00037 /*************************************************************************/ 00038 /* */ 00039 /* <Struct> */ 00040 /* TT_CMapInfo */ 00041 /* */ 00042 /* <Description> */ 00043 /* A structure used to store TrueType/sfnt specific cmap information */ 00044 /* which is not covered by the generic @FT_CharMap structure. This */ 00045 /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ 00046 /* */ 00047 /* <Fields> */ 00048 /* language :: */ 00049 /* The language ID used in Mac fonts. Definitions of values are in */ 00050 /* freetype/ttnameid.h. */ 00051 /* */ 00052 /* format :: */ 00053 /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ 00054 /* encoding table), 2~(high-byte mapping through table), 4~(segment */ 00055 /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ 00056 /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ 00057 /* coverage), and 14 (Unicode Variation Sequences). */ 00058 /* */ 00059 typedef struct TT_CMapInfo_ 00060 { 00061 FT_ULong language; 00062 FT_Long format; 00063 00064 } TT_CMapInfo; 00065 00066 00067 typedef FT_Error 00068 (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, 00069 TT_CMapInfo *cmap_info ); 00070 00071 00072 FT_DEFINE_SERVICE( TTCMaps ) 00073 { 00074 TT_CMap_Info_GetFunc get_cmap_info; 00075 }; 00076 00077 #ifndef FT_CONFIG_OPTION_PIC 00078 00079 #define FT_DEFINE_SERVICE_TTCMAPSREC(class_, get_cmap_info_) \ 00080 static const FT_Service_TTCMapsRec class_ = \ 00081 { \ 00082 get_cmap_info_ \ 00083 }; 00084 00085 #else /* FT_CONFIG_OPTION_PIC */ 00086 00087 #define FT_DEFINE_SERVICE_TTCMAPSREC(class_, get_cmap_info_) \ 00088 void \ 00089 FT_Init_Class_##class_( FT_Library library, \ 00090 FT_Service_TTCMapsRec* clazz) \ 00091 { \ 00092 FT_UNUSED(library); \ 00093 clazz->get_cmap_info = get_cmap_info_; \ 00094 } 00095 00096 #endif /* FT_CONFIG_OPTION_PIC */ 00097 00098 /* */ 00099 00100 00101 FT_END_HEADER 00102 00103 #endif /* __SVTTCMAP_H__ */ 00104 00105 00106 /* END */