This commit was manufactured by cvs2svn to create branch 'captive'.
[reactos.git] / lib / freetype / src / psaux / t1cmap.h
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 */