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 | |
29 | FT_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 | |
149 | FT_END_HEADER |
150 | |
151 | #endif /* CIDOBJS_H_ */ |
152 | |
153 | |
154 | /* END */ |
155 | |