1/****************************************************************************
2 *
3 * cidobjs.h
4 *
5 * CID objects manager (specification).
6 *
7 * Copyright (C) 1996-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 CIDOBJS_H_
20#define CIDOBJS_H_
21
22
23#include <ft2build.h>
24#include <freetype/internal/ftobjs.h>
25#include FT_CONFIG_CONFIG_H
26#include <freetype/internal/t1types.h>
27
28
29FT_BEGIN_HEADER
30
31
32 /* The following structures must be defined by the hinter */
33 typedef struct CID_Size_Hints_ CID_Size_Hints;
34 typedef struct CID_Glyph_Hints_ CID_Glyph_Hints;
35
36
37 /**************************************************************************
38 *
39 * @Type:
40 * CID_Driver
41 *
42 * @Description:
43 * A handle to a Type 1 driver object.
44 */
45 typedef struct CID_DriverRec_* CID_Driver;
46
47
48 /**************************************************************************
49 *
50 * @Type:
51 * CID_Size
52 *
53 * @Description:
54 * A handle to a Type 1 size object.
55 */
56 typedef struct CID_SizeRec_* CID_Size;
57
58
59 /**************************************************************************
60 *
61 * @Type:
62 * CID_GlyphSlot
63 *
64 * @Description:
65 * A handle to a Type 1 glyph slot object.
66 */
67 typedef struct CID_GlyphSlotRec_* CID_GlyphSlot;
68
69
70 /**************************************************************************
71 *
72 * @Type:
73 * CID_CharMap
74 *
75 * @Description:
76 * A handle to a Type 1 character mapping object.
77 *
78 * @Note:
79 * The Type 1 format doesn't use a charmap but an encoding table.
80 * The driver is responsible for making up charmap objects
81 * corresponding to these tables.
82 */
83 typedef struct CID_CharMapRec_* CID_CharMap;
84
85
86 /**************************************************************************
87 *
88 * HERE BEGINS THE TYPE 1 SPECIFIC STUFF
89 *
90 */
91
92
93 typedef struct CID_SizeRec_
94 {
95 FT_SizeRec root;
96 FT_Bool valid;
97
98 } CID_SizeRec;
99
100
101 typedef struct CID_GlyphSlotRec_
102 {
103 FT_GlyphSlotRec root;
104
105 FT_Bool hint;
106 FT_Bool scaled;
107
108 FT_Fixed x_scale;
109 FT_Fixed y_scale;
110
111 } CID_GlyphSlotRec;
112
113
114 FT_LOCAL( void )
115 cid_slot_done( FT_GlyphSlot slot );
116
117 FT_LOCAL( FT_Error )
118 cid_slot_init( FT_GlyphSlot slot );
119
120
121 FT_LOCAL( void )
122 cid_size_done( FT_Size size ); /* CID_Size */
123
124 FT_LOCAL( FT_Error )
125 cid_size_init( FT_Size size ); /* CID_Size */
126
127 FT_LOCAL( FT_Error )
128 cid_size_request( FT_Size size, /* CID_Size */
129 FT_Size_Request req );
130
131 FT_LOCAL( FT_Error )
132 cid_face_init( FT_Stream stream,
133 FT_Face face, /* CID_Face */
134 FT_Int face_index,
135 FT_Int num_params,
136 FT_Parameter* params );
137
138 FT_LOCAL( void )
139 cid_face_done( FT_Face face ); /* CID_Face */
140
141
142 FT_LOCAL( FT_Error )
143 cid_driver_init( FT_Module driver );
144
145 FT_LOCAL( void )
146 cid_driver_done( FT_Module driver );
147
148
149FT_END_HEADER
150
151#endif /* CIDOBJS_H_ */
152
153
154/* END */
155