1 /***************************************************************************/ 2 /* */ 3 /* t1cmap.h */ 4 /* */ 5 /* Type 1 character map support (specification). */ 6 /* */ 7 /* Copyright 2002 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 __T1CMAP_H__ 20 #define __T1CMAP_H__ 21 22 #include <ft2build.h> 23 #include FT_INTERNAL_OBJECTS_H 24 #include FT_INTERNAL_TYPE1_TYPES_H 25 #include FT_INTERNAL_POSTSCRIPT_NAMES_H 26 27 FT_BEGIN_HEADER 28 29 30 /*************************************************************************/ 31 /*************************************************************************/ 32 /***** *****/ 33 /***** TYPE1 STANDARD (AND EXPERT) ENCODING CMAPS *****/ 34 /***** *****/ 35 /*************************************************************************/ 36 /*************************************************************************/ 37 38 /* standard (and expert) encoding cmaps */ 39 typedef struct T1_CMapStdRec_* T1_CMapStd; 40 41 typedef struct T1_CMapStdRec_ 42 { 43 FT_CMapRec cmap; 44 45 const FT_UShort* code_to_sid; 46 PS_Adobe_Std_Strings_Func sid_to_string; 47 48 FT_UInt num_glyphs; 49 const char* const* glyph_names; 50 51 } T1_CMapStdRec; 52 53 54 FT_CALLBACK_TABLE const FT_CMap_ClassRec 55 t1_cmap_standard_class_rec; 56 57 FT_CALLBACK_TABLE const FT_CMap_ClassRec 58 t1_cmap_expert_class_rec; 59 60 61 /*************************************************************************/ 62 /*************************************************************************/ 63 /***** *****/ 64 /***** TYPE1 CUSTOM ENCODING CMAP *****/ 65 /***** *****/ 66 /*************************************************************************/ 67 /*************************************************************************/ 68 69 typedef struct T1_CMapCustomRec_* T1_CMapCustom; 70 71 typedef struct T1_CMapCustomRec_ 72 { 73 FT_CMapRec cmap; 74 FT_UInt first; 75 FT_UInt count; 76 FT_UShort* indices; 77 78 } T1_CMapCustomRec; 79 80 81 FT_CALLBACK_TABLE const FT_CMap_ClassRec 82 t1_cmap_custom_class_rec; 83 84 85 /*************************************************************************/ 86 /*************************************************************************/ 87 /***** *****/ 88 /***** TYPE1 SYNTHETIC UNICODE ENCODING CMAP *****/ 89 /***** *****/ 90 /*************************************************************************/ 91 /*************************************************************************/ 92 93 /* unicode (syntehtic) cmaps */ 94 typedef struct T1_CMapUnicodeRec_* T1_CMapUnicode; 95 96 typedef struct T1_CMapUniPairRec_ 97 { 98 FT_UInt32 unicode; 99 FT_UInt gindex; 100 101 } T1_CMapUniPairRec, *T1_CMapUniPair; 102 103 104 typedef struct T1_CMapUnicodeRec_ 105 { 106 FT_CMapRec cmap; 107 FT_UInt num_pairs; 108 T1_CMapUniPair pairs; 109 110 } T1_CMapUnicodeRec; 111 112 113 FT_CALLBACK_TABLE const FT_CMap_ClassRec 114 t1_cmap_unicode_class_rec; 115 116 /* */ 117 118 119 FT_END_HEADER 120 121 #endif /* __T1CMAP_H__ */ 122 123 124 /* END */ 125