Imported Upstream version 2.13.2
[platform/upstream/freetype2.git] / src / psaux / t1cmap.h
1 /****************************************************************************
2  *
3  * t1cmap.h
4  *
5  *   Type 1 character map support (specification).
6  *
7  * Copyright (C) 2002-2023 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 <freetype/internal/ftobjs.h>
23 #include <freetype/internal/t1types.h>
24
25 FT_BEGIN_HEADER
26
27
28   /*************************************************************************/
29   /*************************************************************************/
30   /*****                                                               *****/
31   /*****          TYPE1 STANDARD (AND EXPERT) ENCODING CMAPS           *****/
32   /*****                                                               *****/
33   /*************************************************************************/
34   /*************************************************************************/
35
36   /* standard (and expert) encoding cmaps */
37   typedef struct T1_CMapStdRec_*  T1_CMapStd;
38
39   typedef struct  T1_CMapStdRec_
40   {
41     FT_CMapRec                cmap;
42
43     const FT_UShort*          code_to_sid;
44     PS_Adobe_Std_StringsFunc  sid_to_string;
45
46     FT_UInt                   num_glyphs;
47     const char* const*        glyph_names;
48
49   } T1_CMapStdRec;
50
51
52   FT_CALLBACK_TABLE const FT_CMap_ClassRec
53   t1_cmap_standard_class_rec;
54
55   FT_CALLBACK_TABLE const FT_CMap_ClassRec
56   t1_cmap_expert_class_rec;
57
58
59   /*************************************************************************/
60   /*************************************************************************/
61   /*****                                                               *****/
62   /*****                  TYPE1 CUSTOM ENCODING CMAP                   *****/
63   /*****                                                               *****/
64   /*************************************************************************/
65   /*************************************************************************/
66
67   typedef struct T1_CMapCustomRec_*  T1_CMapCustom;
68
69   typedef struct  T1_CMapCustomRec_
70   {
71     FT_CMapRec  cmap;
72     FT_UInt     first;
73     FT_UInt     count;
74     FT_UShort*  indices;
75
76   } T1_CMapCustomRec;
77
78
79   FT_CALLBACK_TABLE const FT_CMap_ClassRec
80   t1_cmap_custom_class_rec;
81
82
83   /*************************************************************************/
84   /*************************************************************************/
85   /*****                                                               *****/
86   /*****             TYPE1 SYNTHETIC UNICODE ENCODING CMAP             *****/
87   /*****                                                               *****/
88   /*************************************************************************/
89   /*************************************************************************/
90
91   /* unicode (synthetic) cmaps */
92
93   FT_CALLBACK_TABLE const FT_CMap_ClassRec
94   t1_cmap_unicode_class_rec;
95
96  /* */
97
98
99 FT_END_HEADER
100
101 #endif /* T1CMAP_H_ */
102
103
104 /* END */