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