Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(493)

Side by Side Diff: core/include/thirdparties/freetype/freetype/ftsystem.h

Issue 815103002: Update freetype to 2.5.4. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Adjust GYP and GN Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /***************************************************************************/
2 /* */
3 /* ftsystem.h */
4 /* */
5 /* FreeType low-level system interface definition (specification). */
6 /* */
7 /* Copyright 1996-2001, 2002, 2005, 2010 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 __FTSYSTEM_H__
20 #define __FTSYSTEM_H__
21
22
23 #include "../ft2build.h"
24
25
26 FT_BEGIN_HEADER
27
28
29 /*************************************************************************/
30 /* */
31 /* <Section> */
32 /* system_interface */
33 /* */
34 /* <Title> */
35 /* System Interface */
36 /* */
37 /* <Abstract> */
38 /* How FreeType manages memory and i/o. */
39 /* */
40 /* <Description> */
41 /* This section contains various definitions related to memory */
42 /* management and i/o access. You need to understand this */
43 /* information if you want to use a custom memory manager or you own */
44 /* i/o streams. */
45 /* */
46 /*************************************************************************/
47
48
49 /*************************************************************************/
50 /* */
51 /* M E M O R Y M A N A G E M E N T */
52 /* */
53 /*************************************************************************/
54
55
56 /*************************************************************************
57 *
58 * @type:
59 * FT_Memory
60 *
61 * @description:
62 * A handle to a given memory manager object, defined with an
63 * @FT_MemoryRec structure.
64 *
65 */
66 typedef struct FT_MemoryRec_* FT_Memory;
67
68
69 /*************************************************************************
70 *
71 * @functype:
72 * FT_Alloc_Func
73 *
74 * @description:
75 * A function used to allocate `size' bytes from `memory'.
76 *
77 * @input:
78 * memory ::
79 * A handle to the source memory manager.
80 *
81 * size ::
82 * The size in bytes to allocate.
83 *
84 * @return:
85 * Address of new memory block. 0~in case of failure.
86 *
87 */
88 typedef void*
89 (*FT_Alloc_Func)( FT_Memory memory,
90 long size );
91
92 /* Sunliang.Liu 20100915 sync 221's revison. */
93 typedef void*
94 (*FT_AllocDebug_Func)( FT_Memory memory,
95 long size, const char* filename, int line);
96
97
98
99 /*************************************************************************
100 *
101 * @functype:
102 * FT_Free_Func
103 *
104 * @description:
105 * A function used to release a given block of memory.
106 *
107 * @input:
108 * memory ::
109 * A handle to the source memory manager.
110 *
111 * block ::
112 * The address of the target memory block.
113 *
114 */
115 typedef void
116 (*FT_Free_Func)( FT_Memory memory,
117 void* block );
118
119
120 /*************************************************************************
121 *
122 * @functype:
123 * FT_Realloc_Func
124 *
125 * @description:
126 * A function used to re-allocate a given block of memory.
127 *
128 * @input:
129 * memory ::
130 * A handle to the source memory manager.
131 *
132 * cur_size ::
133 * The block's current size in bytes.
134 *
135 * new_size ::
136 * The block's requested new size.
137 *
138 * block ::
139 * The block's current address.
140 *
141 * @return:
142 * New block address. 0~in case of memory shortage.
143 *
144 * @note:
145 * In case of error, the old block must still be available.
146 *
147 */
148 typedef void*
149 (*FT_Realloc_Func)( FT_Memory memory,
150 long cur_size,
151 long new_size,
152 void* block );
153
154
155 /*************************************************************************
156 *
157 * @struct:
158 * FT_MemoryRec
159 *
160 * @description:
161 * A structure used to describe a given memory manager to FreeType~2.
162 *
163 * @fields:
164 * user ::
165 * A generic typeless pointer for user data.
166 *
167 * alloc ::
168 * A pointer type to an allocation function.
169 *
170 * free ::
171 * A pointer type to an memory freeing function.
172 *
173 * realloc ::
174 * A pointer type to a reallocation function.
175 *
176 */
177 struct FT_MemoryRec_
178 {
179 void* user;
180 FT_Alloc_Func alloc;
181 FT_AllocDebug_Func allocdebug; /* Sunliang.Liu 20100915 sync 221's revi son. */
182 FT_Free_Func free;
183 FT_Realloc_Func realloc;
184 };
185
186
187 /*************************************************************************/
188 /* */
189 /* I / O M A N A G E M E N T */
190 /* */
191 /*************************************************************************/
192
193
194 /*************************************************************************
195 *
196 * @type:
197 * FT_Stream
198 *
199 * @description:
200 * A handle to an input stream.
201 *
202 */
203 typedef struct FT_StreamRec_* FT_Stream;
204
205
206 /*************************************************************************
207 *
208 * @struct:
209 * FT_StreamDesc
210 *
211 * @description:
212 * A union type used to store either a long or a pointer. This is used
213 * to store a file descriptor or a `FILE*' in an input stream.
214 *
215 */
216 typedef union FT_StreamDesc_
217 {
218 long value;
219 void* pointer;
220
221 } FT_StreamDesc;
222
223
224 /*************************************************************************
225 *
226 * @functype:
227 * FT_Stream_IoFunc
228 *
229 * @description:
230 * A function used to seek and read data from a given input stream.
231 *
232 * @input:
233 * stream ::
234 * A handle to the source stream.
235 *
236 * offset ::
237 * The offset of read in stream (always from start).
238 *
239 * buffer ::
240 * The address of the read buffer.
241 *
242 * count ::
243 * The number of bytes to read from the stream.
244 *
245 * @return:
246 * The number of bytes effectively read by the stream.
247 *
248 * @note:
249 * This function might be called to perform a seek or skip operation
250 * with a `count' of~0. A non-zero return value then indicates an
251 * error.
252 *
253 */
254 typedef unsigned long
255 (*FT_Stream_IoFunc)( FT_Stream stream,
256 unsigned long offset,
257 unsigned char* buffer,
258 unsigned long count );
259
260
261 /*************************************************************************
262 *
263 * @functype:
264 * FT_Stream_CloseFunc
265 *
266 * @description:
267 * A function used to close a given input stream.
268 *
269 * @input:
270 * stream ::
271 * A handle to the target stream.
272 *
273 */
274 typedef void
275 (*FT_Stream_CloseFunc)( FT_Stream stream );
276
277
278 /*************************************************************************
279 *
280 * @struct:
281 * FT_StreamRec
282 *
283 * @description:
284 * A structure used to describe an input stream.
285 *
286 * @input:
287 * base ::
288 * For memory-based streams, this is the address of the first stream
289 * byte in memory. This field should always be set to NULL for
290 * disk-based streams.
291 *
292 * size ::
293 * The stream size in bytes.
294 *
295 * pos ::
296 * The current position within the stream.
297 *
298 * descriptor ::
299 * This field is a union that can hold an integer or a pointer. It is
300 * used by stream implementations to store file descriptors or `FILE*'
301 * pointers.
302 *
303 * pathname ::
304 * This field is completely ignored by FreeType. However, it is often
305 * useful during debugging to use it to store the stream's filename
306 * (where available).
307 *
308 * read ::
309 * The stream's input function.
310 *
311 * close ::
312 * The stream's close function.
313 *
314 * memory ::
315 * The memory manager to use to preload frames. This is set
316 * internally by FreeType and shouldn't be touched by stream
317 * implementations.
318 *
319 * cursor ::
320 * This field is set and used internally by FreeType when parsing
321 * frames.
322 *
323 * limit ::
324 * This field is set and used internally by FreeType when parsing
325 * frames.
326 *
327 */
328 typedef struct FT_StreamRec_
329 {
330 unsigned char* base;
331 unsigned long size;
332 unsigned long pos;
333
334 FT_StreamDesc descriptor;
335 FT_StreamDesc pathname;
336 FT_Stream_IoFunc read;
337 FT_Stream_CloseFunc close;
338
339 FT_Memory memory;
340 unsigned char* cursor;
341 unsigned char* limit;
342
343 } FT_StreamRec;
344
345
346 /* */
347
348
349 FT_END_HEADER
350
351 #endif /* __FTSYSTEM_H__ */
352
353
354 /* END */
OLDNEW
« no previous file with comments | « core/include/thirdparties/freetype/freetype/ftsynth.h ('k') | core/include/thirdparties/freetype/freetype/fttrigon.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698