1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  cidobjs.h                                                              */
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*    CID objects manager (specification).                                 */
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  Copyright 1996-2001, 2002, 2004, 2006 by                               */
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  This file is part of the FreeType project, and may only be used,       */
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  modified, and distributed under the terms of the FreeType project      */
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  this file you indicate that you have read the license and              */
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  understand and accept it fully.                                        */
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __CIDOBJS_H__
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __CIDOBJS_H__
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/ft2build.h"
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/ftobjs.h"
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/config/ftconfig.h"
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/t1types.h"
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* The following structures must be defined by the hinter */
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_Size_Hints_   CID_Size_Hints;
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_Glyph_Hints_  CID_Glyph_Hints;
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Type>                                                                */
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_Driver                                                         */
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a Type 1 driver object.                                */
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_DriverRec_*  CID_Driver;
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Type>                                                                */
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_Size                                                           */
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a Type 1 size object.                                  */
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_SizeRec_*  CID_Size;
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Type>                                                                */
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_GlyphSlot                                                      */
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a Type 1 glyph slot object.                            */
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_GlyphSlotRec_*  CID_GlyphSlot;
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Type>                                                                */
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    CID_CharMap                                                        */
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Description>                                                         */
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    A handle to a Type 1 character mapping object.                     */
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* <Note>                                                                */
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    The Type 1 format doesn't use a charmap but an encoding table.     */
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    The driver is responsible for making up charmap objects            */
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*    corresponding to these tables.                                     */
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct CID_CharMapRec_*  CID_CharMap;
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF                                 */
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*                                                                       */
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /*************************************************************************/
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  CID_SizeRec_
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_SizeRec  root;
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Bool     valid;
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } CID_SizeRec;
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  CID_GlyphSlotRec_
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_GlyphSlotRec  root;
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Bool          hint;
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Bool          scaled;
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed         x_scale;
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Fixed         y_scale;
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } CID_GlyphSlotRec;
112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( void )
115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_slot_done( FT_GlyphSlot  slot );
116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( FT_Error )
118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_slot_init( FT_GlyphSlot  slot );
119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( void )
122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_size_done( FT_Size  size );       /* CID_Size */
123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( FT_Error )
125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_size_init( FT_Size  size );       /* CID_Size */
126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( FT_Error )
128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_size_request( FT_Size          size,      /* CID_Size */
129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                    FT_Size_Request  req );
130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( FT_Error )
132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_face_init( FT_Stream      stream,
133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                 FT_Face        face,           /* CID_Face */
134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                 FT_Int         face_index,
135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                 FT_Int         num_params,
136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov                 FT_Parameter*  params );
137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( void )
139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_face_done( FT_Face  face );               /* CID_Face */
140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( FT_Error )
143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_driver_init( FT_Module  driver );
144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_LOCAL( void )
146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cid_driver_done( FT_Module  driver );
147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
149ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER
150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __CIDOBJS_H__ */
152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */
155