1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  t1tables.h                                                             */
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*    Basic Type 1/Type 2 tables definitions and interface (specification  */
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*    only).                                                               */
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  Copyright 1996-2004, 2006, 2008, 2009, 2011 by                         */
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  This file is part of the FreeType project, and may only be used,       */
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  modified, and distributed under the terms of the FreeType project      */
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  this file you indicate that you have read the license and              */
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  understand and accept it fully.                                        */
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __T1TABLES_H__
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __T1TABLES_H__
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../ft2build.h"
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "freetype.h"
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef FREETYPE_H
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#error "freetype.h of FreeType 1 has been loaded!"
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#error "Please fix the directory search order for header files"
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#error "so that freetype.h of FreeType 2 is found first."
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Section>                                                             */
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    type1_tables                                                       */
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Title>                                                               */
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    Type 1 Tables                                                      */
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Abstract>                                                            */
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    Type~1 (PostScript) specific font tables.                          */
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    This section contains the definition of Type 1-specific tables,    */
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    including structures related to other PostScript font formats.     */
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* structures in order to support Multiple Master fonts.               */
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    PS_FontInfoRec                                                     */
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A structure used to model a Type~1 or Type~2 FontInfo dictionary.  */
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    Note that for Multiple Master fonts, each instance has its own     */
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    FontInfo dictionary.                                               */
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  PS_FontInfoRec_
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*  version;
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*  notice;
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*  full_name;
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*  family_name;
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*  weight;
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Long     italic_angle;
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Bool     is_fixed_pitch;
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short    underline_position;
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UShort   underline_thickness;
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } PS_FontInfoRec;
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    PS_FontInfo                                                        */
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a @PS_FontInfoRec structure.                           */
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct PS_FontInfoRec_*  PS_FontInfo;
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    T1_FontInfo                                                        */
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    This type is equivalent to @PS_FontInfoRec.  It is deprecated but  */
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    kept to maintain source compatibility between various versions of  */
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    FreeType.                                                          */
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef PS_FontInfoRec  T1_FontInfo;
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    PS_PrivateRec                                                      */
112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A structure used to model a Type~1 or Type~2 private dictionary.   */
115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    Note that for Multiple Master fonts, each instance has its own     */
116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    Private dictionary.                                                */
117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  PS_PrivateRec_
119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int     unique_id;
121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int     lenIV;
122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_blue_values;
124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_other_blues;
125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_family_blues;
126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_family_other_blues;
127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   blue_values[14];
129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   other_blues[10];
130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   family_blues      [14];
132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   family_other_blues[10];
133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed   blue_scale;
135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int     blue_shift;
136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int     blue_fuzz;
137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UShort  standard_width[1];
139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UShort  standard_height[1];
140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_snap_widths;
142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_snap_heights;
143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Bool    force_bold;
144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Bool    round_stem_up;
145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   snap_widths [13];  /* including std width  */
147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   snap_heights[13];  /* including std height */
148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed   expansion_factor;
150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Long    language_group;
152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Long    password;
153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Short   min_feature[2];
155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } PS_PrivateRec;
157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    PS_Private                                                         */
163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a @PS_PrivateRec structure.                            */
166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct PS_PrivateRec_*  PS_Private;
168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    T1_Private                                                         */
174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*   This type is equivalent to @PS_PrivateRec.  It is deprecated but    */
177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*   kept to maintain source compatibility between various versions of   */
178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*   FreeType.                                                           */
179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef PS_PrivateRec  T1_Private;
181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Enum>                                                                */
186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    T1_Blend_Flags                                                     */
187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A set of flags used to indicate which fields are present in a      */
190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    given blend dictionary (font info or private).  Used to support    */
191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    Multiple Masters fonts.                                            */
192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef enum  T1_Blend_Flags_
194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /*# required fields in a FontInfo blend dictionary */
196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_UNDERLINE_POSITION = 0,
197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_UNDERLINE_THICKNESS,
198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_ITALIC_ANGLE,
199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /*# required fields in a Private blend dictionary */
201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_BLUE_VALUES,
202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_OTHER_BLUES,
203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_STANDARD_WIDTH,
204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_STANDARD_HEIGHT,
205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_STEM_SNAP_WIDTHS,
206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_STEM_SNAP_HEIGHTS,
207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_BLUE_SCALE,
208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_BLUE_SHIFT,
209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_FAMILY_BLUES,
210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_FAMILY_OTHER_BLUES,
211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_FORCE_BOLD,
212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /*# never remove */
214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_BLEND_MAX
215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } T1_Blend_Flags;
217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* */
219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*# backwards compatible definitions */
222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_underline_position   T1_BLEND_UNDERLINE_POSITION
223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_underline_thickness  T1_BLEND_UNDERLINE_THICKNESS
224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_italic_angle         T1_BLEND_ITALIC_ANGLE
225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_blue_values          T1_BLEND_BLUE_VALUES
226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_other_blues          T1_BLEND_OTHER_BLUES
227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_standard_widths      T1_BLEND_STANDARD_WIDTH
228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_standard_height      T1_BLEND_STANDARD_HEIGHT
229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_stem_snap_widths     T1_BLEND_STEM_SNAP_WIDTHS
230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_stem_snap_heights    T1_BLEND_STEM_SNAP_HEIGHTS
231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_blue_scale           T1_BLEND_BLUE_SCALE
232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_blue_shift           T1_BLEND_BLUE_SHIFT
233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_family_blues         T1_BLEND_FAMILY_BLUES
234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_family_other_blues   T1_BLEND_FAMILY_OTHER_BLUES
235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_force_bold           T1_BLEND_FORCE_BOLD
236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define t1_blend_max                  T1_BLEND_MAX
237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* maximum number of Multiple Masters designs, as defined in the spec */
240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define T1_MAX_MM_DESIGNS     16
241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* maximum number of Multiple Masters axes, as defined in the spec */
243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define T1_MAX_MM_AXIS        4
244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* maximum number of elements in a design map */
246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define T1_MAX_MM_MAP_POINTS  20
247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* this structure is used to store the BlendDesignMap entry for an axis */
250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  PS_DesignMap_
251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte    num_points;
253ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Long*   design_points;
254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed*  blend_points;
255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } PS_DesignMapRec, *PS_DesignMap;
257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
258ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* backwards-compatible definition */
259ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef PS_DesignMapRec  T1_DesignMap;
260ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
261ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
262ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  PS_BlendRec_
263ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
264ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UInt          num_designs;
265ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UInt          num_axis;
266ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
267ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*       axis_names[T1_MAX_MM_AXIS];
268ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed*        design_pos[T1_MAX_MM_DESIGNS];
269ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DesignMapRec  design_map[T1_MAX_MM_AXIS];
270ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
271ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed*        weight_vector;
272ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed*        default_weight_vector;
273ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
274ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_FontInfo      font_infos[T1_MAX_MM_DESIGNS + 1];
275ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_Private       privates  [T1_MAX_MM_DESIGNS + 1];
276ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
277ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong         blend_bitflags;
278ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
279ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_BBox*         bboxes    [T1_MAX_MM_DESIGNS + 1];
280ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
281ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* since 2.3.0 */
282ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
283ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* undocumented, optional: the default design instance;   */
284ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* corresponds to default_weight_vector --                */
285ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* num_default_design_vector == 0 means it is not present */
286ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* in the font and associated metrics files               */
287ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UInt          default_design_vector[T1_MAX_MM_DESIGNS];
288ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UInt          num_default_design_vector;
289ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
290ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } PS_BlendRec, *PS_Blend;
291ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
292ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
293ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* backwards-compatible definition */
294ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef PS_BlendRec  T1_Blend;
295ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
296ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
297ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
298ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
299ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
300ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_FaceDictRec                                                    */
301ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
302ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
303ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A structure used to represent data in a CID top-level dictionary.  */
304ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
305ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  CID_FaceDictRec_
306ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
307ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_PrivateRec  private_dict;
308ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
309ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UInt        len_buildchar;
310ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed       forcebold_threshold;
311ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Pos         stroke_width;
312ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed       expansion_factor;
313ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
314ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte        paint_type;
315ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Byte        font_type;
316ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Matrix      font_matrix;
317ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Vector      font_offset;
318ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
319ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_UInt        num_subrs;
320ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong       subrmap_offset;
321ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int         sd_bytes;
322ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
323ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } CID_FaceDictRec;
324ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
325ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
326ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
327ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
328ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
329ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_FaceDict                                                       */
330ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
331ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
332ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a @CID_FaceDictRec structure.                          */
333ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
334ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_FaceDictRec_*  CID_FaceDict;
335ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
336ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* */
337ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
338ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
339ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* backwards-compatible definition */
340ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef CID_FaceDictRec  CID_FontDict;
341ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
342ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
343ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
344ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
345ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
346ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_FaceInfoRec                                                    */
347ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
348ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
349ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A structure used to represent CID Face information.                */
350ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
351ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  CID_FaceInfoRec_
352ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
353ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*      cid_font_name;
354ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed        cid_version;
355ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int          cid_font_type;
356ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
357ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*      registry;
358ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_String*      ordering;
359ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int          supplement;
360ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
361ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_FontInfoRec  font_info;
362ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_BBox         font_bbox;
363ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong        uid_base;
364ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
365ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int          num_xuid;
366ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong        xuid[16];
367ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
368ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong        cidmap_offset;
369ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int          fd_bytes;
370ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int          gd_bytes;
371ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong        cid_count;
372ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
373ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Int          num_dicts;
374ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    CID_FaceDict    font_dicts;
375ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
376ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ULong        data_offset;
377ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
378ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } CID_FaceInfoRec;
379ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
380ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
381ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
382ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
383ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
384ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_FaceInfo                                                       */
385ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
386ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
387ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a @CID_FaceInfoRec structure.                          */
388ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
389ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_FaceInfoRec_*  CID_FaceInfo;
390ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
391ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
392ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
393ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
394ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Struct>                                                              */
395ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_Info                                                           */
396ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
397ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
398ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*   This type is equivalent to @CID_FaceInfoRec.  It is deprecated but  */
399ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*   kept to maintain source compatibility between various versions of   */
400ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*   FreeType.                                                           */
401ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
402ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef CID_FaceInfoRec  CID_Info;
403ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
404ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
405ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /************************************************************************
406ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
407ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @function:
408ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    FT_Has_PS_Glyph_Names
409ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
410ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @description:
411ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    Return true if a given face provides reliable PostScript glyph
412ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    names.  This is similar to using the @FT_HAS_GLYPH_NAMES macro,
413ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    except that certain fonts (mostly TrueType) contain incorrect
414ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    glyph name tables.
415ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
416ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    When this function returns true, the caller is sure that the glyph
417ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    names returned by @FT_Get_Glyph_Name are reliable.
418ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
419ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @input:
420ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    face ::
421ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       face handle
422ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
423ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @return:
424ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    Boolean.  True if glyph names are reliable.
425ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
426ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   */
427ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_EXPORT( FT_Int )
428ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_Has_PS_Glyph_Names( FT_Face  face );
429ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
430ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
431ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /************************************************************************
432ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
433ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @function:
434ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    FT_Get_PS_Font_Info
435ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
436ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @description:
437ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    Retrieve the @PS_FontInfoRec structure corresponding to a given
438ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    PostScript font.
439ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
440ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @input:
441ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    face ::
442ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       PostScript face handle.
443ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
444ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @output:
445ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    afont_info ::
446ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       Output font info structure pointer.
447ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
448ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @return:
449ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    FreeType error code.  0~means success.
450ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
451ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @note:
452ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    The string pointers within the font info structure are owned by
453ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    the face and don't need to be freed by the caller.
454ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
455ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    If the font's format is not PostScript-based, this function will
456ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    return the `FT_Err_Invalid_Argument' error code.
457ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
458ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   */
459ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_EXPORT( FT_Error )
460ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_Get_PS_Font_Info( FT_Face      face,
461ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                       PS_FontInfo  afont_info );
462ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
463ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
464ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /************************************************************************
465ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
466ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @function:
467ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    FT_Get_PS_Font_Private
468ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
469ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @description:
470ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    Retrieve the @PS_PrivateRec structure corresponding to a given
471ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    PostScript font.
472ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
473ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @input:
474ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    face ::
475ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       PostScript face handle.
476ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
477ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @output:
478ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    afont_private ::
479ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       Output private dictionary structure pointer.
480ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
481ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @return:
482ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    FreeType error code.  0~means success.
483ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
484ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @note:
485ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    The string pointers within the @PS_PrivateRec structure are owned by
486ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    the face and don't need to be freed by the caller.
487ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
488ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    If the font's format is not PostScript-based, this function returns
489ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    the `FT_Err_Invalid_Argument' error code.
490ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
491ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   */
492ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_EXPORT( FT_Error )
493ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_Get_PS_Font_Private( FT_Face     face,
494ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                          PS_Private  afont_private );
495ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
496ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
497ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
498ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
499ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Enum>                                                                */
500ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    T1_EncodingType                                                    */
501ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
502ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
503ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    An enumeration describing the `Encoding' entry in a Type 1         */
504ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    dictionary.                                                        */
505ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
506ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef enum  T1_EncodingType_
507ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
508ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_ENCODING_TYPE_NONE = 0,
509ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_ENCODING_TYPE_ARRAY,
510ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_ENCODING_TYPE_STANDARD,
511ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_ENCODING_TYPE_ISOLATIN1,
512ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    T1_ENCODING_TYPE_EXPERT
513ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
514ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } T1_EncodingType;
515ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
516ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
517ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
518ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
519ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Enum>                                                                */
520ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    PS_Dict_Keys                                                       */
521ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
522ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
523ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    An enumeration used in calls to @FT_Get_PS_Font_Value to identify  */
524ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    the Type~1 dictionary entry to retrieve.                           */
525ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
526ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef enum  PS_Dict_Keys_
527ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
528ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* conventionally in the font dictionary */
529ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FONT_TYPE,              /* FT_Byte         */
530ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FONT_MATRIX,            /* FT_Fixed        */
531ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FONT_BBOX,              /* FT_Fixed        */
532ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_PAINT_TYPE,             /* FT_Byte         */
533ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FONT_NAME,              /* FT_String*      */
534ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_UNIQUE_ID,              /* FT_Int          */
535ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_CHAR_STRINGS,       /* FT_Int          */
536ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_CHAR_STRING_KEY,        /* FT_String*      */
537ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_CHAR_STRING,            /* FT_String*      */
538ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_ENCODING_TYPE,          /* T1_EncodingType */
539ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_ENCODING_ENTRY,         /* FT_String*      */
540ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
541ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* conventionally in the font Private dictionary */
542ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_SUBRS,              /* FT_Int     */
543ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_SUBR,                   /* FT_String* */
544ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_STD_HW,                 /* FT_UShort  */
545ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_STD_VW,                 /* FT_UShort  */
546ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_BLUE_VALUES,        /* FT_Byte    */
547ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_BLUE_VALUE,             /* FT_Short   */
548ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_BLUE_FUZZ,              /* FT_Int     */
549ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_OTHER_BLUES,        /* FT_Byte    */
550ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_OTHER_BLUE,             /* FT_Short   */
551ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_FAMILY_BLUES,       /* FT_Byte    */
552ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FAMILY_BLUE,            /* FT_Short   */
553ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte    */
554ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FAMILY_OTHER_BLUE,      /* FT_Short   */
555ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_BLUE_SCALE,             /* FT_Fixed   */
556ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_BLUE_SHIFT,             /* FT_Int     */
557ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_STEM_SNAP_H,        /* FT_Byte    */
558ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_STEM_SNAP_H,            /* FT_Short   */
559ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NUM_STEM_SNAP_V,        /* FT_Byte    */
560ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_STEM_SNAP_V,            /* FT_Short   */
561ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FORCE_BOLD,             /* FT_Bool    */
562ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_RND_STEM_UP,            /* FT_Bool    */
563ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_MIN_FEATURE,            /* FT_Short   */
564ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_LEN_IV,                 /* FT_Int     */
565ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_PASSWORD,               /* FT_Long    */
566ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_LANGUAGE_GROUP,         /* FT_Long    */
567ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
568ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    /* conventionally in the font FontInfo dictionary */
569ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_VERSION,                /* FT_String* */
570ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_NOTICE,                 /* FT_String* */
571ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FULL_NAME,              /* FT_String* */
572ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FAMILY_NAME,            /* FT_String* */
573ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_WEIGHT,                 /* FT_String* */
574ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_IS_FIXED_PITCH,         /* FT_Bool    */
575ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_UNDERLINE_POSITION,     /* FT_Short   */
576ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_UNDERLINE_THICKNESS,    /* FT_UShort  */
577ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_FS_TYPE,                /* FT_UShort  */
578ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_ITALIC_ANGLE,           /* FT_Long    */
579ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
580ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    PS_DICT_MAX = PS_DICT_ITALIC_ANGLE
581ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
582ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } PS_Dict_Keys;
583ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
584ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
585ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /************************************************************************
586ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
587ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @function:
588ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    FT_Get_PS_Font_Value
589ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
590ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @description:
591ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    Retrieve the value for the supplied key from a PostScript font.
592ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
593ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @input:
594ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    face ::
595ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       PostScript face handle.
596ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
597ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    key ::
598ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       An enumeration value representing the dictionary key to retrieve.
599ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
600ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    idx ::
601ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       For array values, this specifies the index to be returned.
602ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
603ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    value ::
604ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       A pointer to memory into which to write the value.
605ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
606ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    valen_len ::
607ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       The size, in bytes, of the memory supplied for the value.
608ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
609ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @output:
610ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    value ::
611ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *       The value matching the above key, if it exists.
612ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
613ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @return:
614ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    The amount of memory (in bytes) required to hold the requested
615ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    value (if it exists, -1 otherwise).
616ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
617ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   * @note:
618ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    The values returned are not pointers into the internal structures of
619ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    the face, but are `fresh' copies, so that the memory containing them
620ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    belongs to the calling application.  This also enforces the
621ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    `read-only' nature of these values, i.e., this function cannot be
622ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    used to manipulate the face.
623ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
624ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    `value' is a void pointer because the values returned can be of
625ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    various types.
626ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
627ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    If either `value' is NULL or `value_len' is too small, just the
628ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    required memory size for the requested entry is returned.
629ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
630ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    The `idx' parameter is used, not only to retrieve elements of, for
631ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    example, the FontMatrix or FontBBox, but also to retrieve name keys
632ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    from the CharStrings dictionary, and the charstrings themselves.  It
633ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    is ignored for atomic values.
634ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
635ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000.  To
636ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    get the value as in the font stream, you need to divide by
637ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    65536000.0 (to remove the FT_Fixed scale, and the x1000 scale).
638ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
639ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    IMPORTANT: Only key/value pairs read by the FreeType interpreter can
640ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    be retrieved.  So, for example, PostScript procedures such as NP,
641ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    ND, and RD are not available.  Arbitrary keys are, obviously, not be
642ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    available either.
643ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
644ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    If the font's format is not PostScript-based, this function returns
645ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *    the `FT_Err_Invalid_Argument' error code.
646ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   *
647ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   */
648ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_EXPORT( FT_Long )
649ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_Get_PS_Font_Value( FT_Face       face,
650ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                        PS_Dict_Keys  key,
651ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                        FT_UInt       idx,
652ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                        void         *value,
653ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                        FT_Long       value_len );
654ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
655ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* */
656ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
657ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER
658ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
659ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __T1TABLES_H__ */
660ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
661ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
662ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */
663