[FREETYPE] Update to v2.9.0 and use this as a chance to slim down our lib a bit....
[reactos.git] / sdk / lib / 3rdparty / freetype / include / freetype / ftmac.h
1 /***************************************************************************/
2 /* */
3 /* ftmac.h */
4 /* */
5 /* Additional Mac-specific API. */
6 /* */
7 /* Copyright 1996-2018 by */
8 /* Just van Rossum, 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 /***************************************************************************/
20 /* */
21 /* NOTE: Include this file after FT_FREETYPE_H and after any */
22 /* Mac-specific headers (because this header uses Mac types such as */
23 /* Handle, FSSpec, FSRef, etc.) */
24 /* */
25 /***************************************************************************/
26
27
28 #ifndef FTMAC_H_
29 #define FTMAC_H_
30
31
32 #include <ft2build.h>
33
34
35 FT_BEGIN_HEADER
36
37
38 /* gcc-3.1 and later can warn about functions tagged as deprecated */
39 #ifndef FT_DEPRECATED_ATTRIBUTE
40 #if defined( __GNUC__ ) && \
41 ( ( __GNUC__ >= 4 ) || \
42 ( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) )
43 #define FT_DEPRECATED_ATTRIBUTE __attribute__(( deprecated ))
44 #else
45 #define FT_DEPRECATED_ATTRIBUTE
46 #endif
47 #endif
48
49
50 /*************************************************************************/
51 /* */
52 /* <Section> */
53 /* mac_specific */
54 /* */
55 /* <Title> */
56 /* Mac Specific Interface */
57 /* */
58 /* <Abstract> */
59 /* Only available on the Macintosh. */
60 /* */
61 /* <Description> */
62 /* The following definitions are only available if FreeType is */
63 /* compiled on a Macintosh. */
64 /* */
65 /*************************************************************************/
66
67
68 /*************************************************************************/
69 /* */
70 /* <Function> */
71 /* FT_New_Face_From_FOND */
72 /* */
73 /* <Description> */
74 /* Create a new face object from a FOND resource. */
75 /* */
76 /* <InOut> */
77 /* library :: A handle to the library resource. */
78 /* */
79 /* <Input> */
80 /* fond :: A FOND resource. */
81 /* */
82 /* face_index :: Only supported for the -1 `sanity check' special */
83 /* case. */
84 /* */
85 /* <Output> */
86 /* aface :: A handle to a new face object. */
87 /* */
88 /* <Return> */
89 /* FreeType error code. 0~means success. */
90 /* */
91 /* <Notes> */
92 /* This function can be used to create @FT_Face objects from fonts */
93 /* that are installed in the system as follows. */
94 /* */
95 /* { */
96 /* fond = GetResource( 'FOND', fontName ); */
97 /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */
98 /* } */
99 /* */
100 FT_EXPORT( FT_Error )
101 FT_New_Face_From_FOND( FT_Library library,
102 Handle fond,
103 FT_Long face_index,
104 FT_Face *aface )
105 FT_DEPRECATED_ATTRIBUTE;
106
107
108 /*************************************************************************/
109 /* */
110 /* <Function> */
111 /* FT_GetFile_From_Mac_Name */
112 /* */
113 /* <Description> */
114 /* Return an FSSpec for the disk file containing the named font. */
115 /* */
116 /* <Input> */
117 /* fontName :: Mac OS name of the font (e.g., Times New Roman */
118 /* Bold). */
119 /* */
120 /* <Output> */
121 /* pathSpec :: FSSpec to the file. For passing to */
122 /* @FT_New_Face_From_FSSpec. */
123 /* */
124 /* face_index :: Index of the face. For passing to */
125 /* @FT_New_Face_From_FSSpec. */
126 /* */
127 /* <Return> */
128 /* FreeType error code. 0~means success. */
129 /* */
130 FT_EXPORT( FT_Error )
131 FT_GetFile_From_Mac_Name( const char* fontName,
132 FSSpec* pathSpec,
133 FT_Long* face_index )
134 FT_DEPRECATED_ATTRIBUTE;
135
136
137 /*************************************************************************/
138 /* */
139 /* <Function> */
140 /* FT_GetFile_From_Mac_ATS_Name */
141 /* */
142 /* <Description> */
143 /* Return an FSSpec for the disk file containing the named font. */
144 /* */
145 /* <Input> */
146 /* fontName :: Mac OS name of the font in ATS framework. */
147 /* */
148 /* <Output> */
149 /* pathSpec :: FSSpec to the file. For passing to */
150 /* @FT_New_Face_From_FSSpec. */
151 /* */
152 /* face_index :: Index of the face. For passing to */
153 /* @FT_New_Face_From_FSSpec. */
154 /* */
155 /* <Return> */
156 /* FreeType error code. 0~means success. */
157 /* */
158 FT_EXPORT( FT_Error )
159 FT_GetFile_From_Mac_ATS_Name( const char* fontName,
160 FSSpec* pathSpec,
161 FT_Long* face_index )
162 FT_DEPRECATED_ATTRIBUTE;
163
164
165 /*************************************************************************/
166 /* */
167 /* <Function> */
168 /* FT_GetFilePath_From_Mac_ATS_Name */
169 /* */
170 /* <Description> */
171 /* Return a pathname of the disk file and face index for given font */
172 /* name that is handled by ATS framework. */
173 /* */
174 /* <Input> */
175 /* fontName :: Mac OS name of the font in ATS framework. */
176 /* */
177 /* <Output> */
178 /* path :: Buffer to store pathname of the file. For passing */
179 /* to @FT_New_Face. The client must allocate this */
180 /* buffer before calling this function. */
181 /* */
182 /* maxPathSize :: Lengths of the buffer `path' that client allocated. */
183 /* */
184 /* face_index :: Index of the face. For passing to @FT_New_Face. */
185 /* */
186 /* <Return> */
187 /* FreeType error code. 0~means success. */
188 /* */
189 FT_EXPORT( FT_Error )
190 FT_GetFilePath_From_Mac_ATS_Name( const char* fontName,
191 UInt8* path,
192 UInt32 maxPathSize,
193 FT_Long* face_index )
194 FT_DEPRECATED_ATTRIBUTE;
195
196
197 /*************************************************************************/
198 /* */
199 /* <Function> */
200 /* FT_New_Face_From_FSSpec */
201 /* */
202 /* <Description> */
203 /* Create a new face object from a given resource and typeface index */
204 /* using an FSSpec to the font file. */
205 /* */
206 /* <InOut> */
207 /* library :: A handle to the library resource. */
208 /* */
209 /* <Input> */
210 /* spec :: FSSpec to the font file. */
211 /* */
212 /* face_index :: The index of the face within the resource. The */
213 /* first face has index~0. */
214 /* <Output> */
215 /* aface :: A handle to a new face object. */
216 /* */
217 /* <Return> */
218 /* FreeType error code. 0~means success. */
219 /* */
220 /* <Note> */
221 /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */
222 /* it accepts an FSSpec instead of a path. */
223 /* */
224 FT_EXPORT( FT_Error )
225 FT_New_Face_From_FSSpec( FT_Library library,
226 const FSSpec *spec,
227 FT_Long face_index,
228 FT_Face *aface )
229 FT_DEPRECATED_ATTRIBUTE;
230
231
232 /*************************************************************************/
233 /* */
234 /* <Function> */
235 /* FT_New_Face_From_FSRef */
236 /* */
237 /* <Description> */
238 /* Create a new face object from a given resource and typeface index */
239 /* using an FSRef to the font file. */
240 /* */
241 /* <InOut> */
242 /* library :: A handle to the library resource. */
243 /* */
244 /* <Input> */
245 /* spec :: FSRef to the font file. */
246 /* */
247 /* face_index :: The index of the face within the resource. The */
248 /* first face has index~0. */
249 /* <Output> */
250 /* aface :: A handle to a new face object. */
251 /* */
252 /* <Return> */
253 /* FreeType error code. 0~means success. */
254 /* */
255 /* <Note> */
256 /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */
257 /* it accepts an FSRef instead of a path. */
258 /* */
259 FT_EXPORT( FT_Error )
260 FT_New_Face_From_FSRef( FT_Library library,
261 const FSRef *ref,
262 FT_Long face_index,
263 FT_Face *aface )
264 FT_DEPRECATED_ATTRIBUTE;
265
266 /* */
267
268
269 FT_END_HEADER
270
271
272 #endif /* FTMAC_H_ */
273
274
275 /* END */