ReactOS 0.4.16-dev-91-g764881a
sfnt.h
Go to the documentation of this file.
1/***************************************************************************/
2/* */
3/* sfnt.h */
4/* */
5/* High-level `sfnt' driver interface (specification). */
6/* */
7/* Copyright 1996-2018 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 SFNT_H_
20#define SFNT_H_
21
22
23#include <ft2build.h>
24#include FT_INTERNAL_DRIVER_H
25#include FT_INTERNAL_TRUETYPE_TYPES_H
26
27
29
30
31 /*************************************************************************/
32 /* */
33 /* <FuncType> */
34 /* TT_Init_Face_Func */
35 /* */
36 /* <Description> */
37 /* First part of the SFNT face object initialization. This finds */
38 /* the face in a SFNT file or collection, and load its format tag in */
39 /* face->format_tag. */
40 /* */
41 /* <Input> */
42 /* stream :: The input stream. */
43 /* */
44 /* face :: A handle to the target face object. */
45 /* */
46 /* face_index :: The index of the TrueType font, if we are opening a */
47 /* collection, in bits 0-15. The numbered instance */
48 /* index~+~1 of a GX (sub)font, if applicable, in bits */
49 /* 16-30. */
50 /* */
51 /* num_params :: The number of additional parameters. */
52 /* */
53 /* params :: Optional additional parameters. */
54 /* */
55 /* <Return> */
56 /* FreeType error code. 0 means success. */
57 /* */
58 /* <Note> */
59 /* The stream cursor must be at the font file's origin. */
60 /* */
61 /* This function recognizes fonts embedded in a `TrueType */
62 /* collection'. */
63 /* */
64 /* Once the format tag has been validated by the font driver, it */
65 /* should then call the TT_Load_Face_Func() callback to read the rest */
66 /* of the SFNT tables in the object. */
67 /* */
68 typedef FT_Error
71 FT_Int face_index,
72 FT_Int num_params,
74
75
76 /*************************************************************************/
77 /* */
78 /* <FuncType> */
79 /* TT_Load_Face_Func */
80 /* */
81 /* <Description> */
82 /* Second part of the SFNT face object initialization. This loads */
83 /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */
84 /* face object. */
85 /* */
86 /* <Input> */
87 /* stream :: The input stream. */
88 /* */
89 /* face :: A handle to the target face object. */
90 /* */
91 /* face_index :: The index of the TrueType font, if we are opening a */
92 /* collection, in bits 0-15. The numbered instance */
93 /* index~+~1 of a GX (sub)font, if applicable, in bits */
94 /* 16-30. */
95 /* */
96 /* num_params :: The number of additional parameters. */
97 /* */
98 /* params :: Optional additional parameters. */
99 /* */
100 /* <Return> */
101 /* FreeType error code. 0 means success. */
102 /* */
103 /* <Note> */
104 /* This function must be called after TT_Init_Face_Func(). */
105 /* */
106 typedef FT_Error
109 FT_Int face_index,
110 FT_Int num_params,
112
113
114 /*************************************************************************/
115 /* */
116 /* <FuncType> */
117 /* TT_Done_Face_Func */
118 /* */
119 /* <Description> */
120 /* A callback used to delete the common SFNT data from a face. */
121 /* */
122 /* <Input> */
123 /* face :: A handle to the target face object. */
124 /* */
125 /* <Note> */
126 /* This function does NOT destroy the face object. */
127 /* */
128 typedef void
130
131
132 /*************************************************************************/
133 /* */
134 /* <FuncType> */
135 /* TT_Load_Any_Func */
136 /* */
137 /* <Description> */
138 /* Load any font table into client memory. */
139 /* */
140 /* <Input> */
141 /* face :: The face object to look for. */
142 /* */
143 /* tag :: The tag of table to load. Use the value 0 if you want */
144 /* to access the whole font file, else set this parameter */
145 /* to a valid TrueType table tag that you can forge with */
146 /* the MAKE_TT_TAG macro. */
147 /* */
148 /* offset :: The starting offset in the table (or the file if */
149 /* tag == 0). */
150 /* */
151 /* length :: The address of the decision variable: */
152 /* */
153 /* If length == NULL: */
154 /* Loads the whole table. Returns an error if */
155 /* `offset' == 0! */
156 /* */
157 /* If *length == 0: */
158 /* Exits immediately; returning the length of the given */
159 /* table or of the font file, depending on the value of */
160 /* `tag'. */
161 /* */
162 /* If *length != 0: */
163 /* Loads the next `length' bytes of table or font, */
164 /* starting at offset `offset' (in table or font too). */
165 /* */
166 /* <Output> */
167 /* buffer :: The address of target buffer. */
168 /* */
169 /* <Return> */
170 /* TrueType error code. 0 means success. */
171 /* */
172 typedef FT_Error
177 FT_ULong* length );
178
179
180 /*************************************************************************/
181 /* */
182 /* <FuncType> */
183 /* TT_Find_SBit_Image_Func */
184 /* */
185 /* <Description> */
186 /* Check whether an embedded bitmap (an `sbit') exists for a given */
187 /* glyph, at a given strike. */
188 /* */
189 /* <Input> */
190 /* face :: The target face object. */
191 /* */
192 /* glyph_index :: The glyph index. */
193 /* */
194 /* strike_index :: The current strike index. */
195 /* */
196 /* <Output> */
197 /* arange :: The SBit range containing the glyph index. */
198 /* */
199 /* astrike :: The SBit strike containing the glyph index. */
200 /* */
201 /* aglyph_offset :: The offset of the glyph data in `EBDT' table. */
202 /* */
203 /* <Return> */
204 /* FreeType error code. 0 means success. Returns */
205 /* SFNT_Err_Invalid_Argument if no sbit exists for the requested */
206 /* glyph. */
207 /* */
208 typedef FT_Error
210 FT_UInt glyph_index,
211 FT_ULong strike_index,
212 TT_SBit_Range *arange,
213 TT_SBit_Strike *astrike,
214 FT_ULong *aglyph_offset );
215
216
217 /*************************************************************************/
218 /* */
219 /* <FuncType> */
220 /* TT_Load_SBit_Metrics_Func */
221 /* */
222 /* <Description> */
223 /* Get the big metrics for a given embedded bitmap. */
224 /* */
225 /* <Input> */
226 /* stream :: The input stream. */
227 /* */
228 /* range :: The SBit range containing the glyph. */
229 /* */
230 /* <Output> */
231 /* big_metrics :: A big SBit metrics structure for the glyph. */
232 /* */
233 /* <Return> */
234 /* FreeType error code. 0 means success. */
235 /* */
236 /* <Note> */
237 /* The stream cursor must be positioned at the glyph's offset within */
238 /* the `EBDT' table before the call. */
239 /* */
240 /* If the image format uses variable metrics, the stream cursor is */
241 /* positioned just after the metrics header in the `EBDT' table on */
242 /* function exit. */
243 /* */
244 typedef FT_Error
248
249
250 /*************************************************************************/
251 /* */
252 /* <FuncType> */
253 /* TT_Load_SBit_Image_Func */
254 /* */
255 /* <Description> */
256 /* Load a given glyph sbit image from the font resource. This also */
257 /* returns its metrics. */
258 /* */
259 /* <Input> */
260 /* face :: */
261 /* The target face object. */
262 /* */
263 /* strike_index :: */
264 /* The strike index. */
265 /* */
266 /* glyph_index :: */
267 /* The current glyph index. */
268 /* */
269 /* load_flags :: */
270 /* The current load flags. */
271 /* */
272 /* stream :: */
273 /* The input stream. */
274 /* */
275 /* <Output> */
276 /* amap :: */
277 /* The target pixmap. */
278 /* */
279 /* ametrics :: */
280 /* A big sbit metrics structure for the glyph image. */
281 /* */
282 /* <Return> */
283 /* FreeType error code. 0 means success. Returns an error if no */
284 /* glyph sbit exists for the index. */
285 /* */
286 /* <Note> */
287 /* The `map.buffer' field is always freed before the glyph is loaded. */
288 /* */
289 typedef FT_Error
291 FT_ULong strike_index,
292 FT_UInt glyph_index,
293 FT_UInt load_flags,
295 FT_Bitmap *amap,
296 TT_SBit_MetricsRec *ametrics );
297
298
299 /*************************************************************************/
300 /* */
301 /* <FuncType> */
302 /* TT_Set_SBit_Strike_Func */
303 /* */
304 /* <Description> */
305 /* Select an sbit strike for a given size request. */
306 /* */
307 /* <Input> */
308 /* face :: The target face object. */
309 /* */
310 /* req :: The size request. */
311 /* */
312 /* <Output> */
313 /* astrike_index :: The index of the sbit strike. */
314 /* */
315 /* <Return> */
316 /* FreeType error code. 0 means success. Returns an error if no */
317 /* sbit strike exists for the selected ppem values. */
318 /* */
319 typedef FT_Error
321 FT_Size_Request req,
322 FT_ULong* astrike_index );
323
324
325 /*************************************************************************/
326 /* */
327 /* <FuncType> */
328 /* TT_Load_Strike_Metrics_Func */
329 /* */
330 /* <Description> */
331 /* Load the metrics of a given strike. */
332 /* */
333 /* <Input> */
334 /* face :: The target face object. */
335 /* */
336 /* strike_index :: The strike index. */
337 /* */
338 /* <Output> */
339 /* metrics :: the metrics of the strike. */
340 /* */
341 /* <Return> */
342 /* FreeType error code. 0 means success. Returns an error if no */
343 /* such sbit strike exists. */
344 /* */
345 typedef FT_Error
347 FT_ULong strike_index,
349
350
351 /*************************************************************************/
352 /* */
353 /* <FuncType> */
354 /* TT_Get_PS_Name_Func */
355 /* */
356 /* <Description> */
357 /* Get the PostScript glyph name of a glyph. */
358 /* */
359 /* <Input> */
360 /* idx :: The glyph index. */
361 /* */
362 /* PSname :: The address of a string pointer. Will be NULL in case */
363 /* of error, otherwise it is a pointer to the glyph name. */
364 /* */
365 /* You must not modify the returned string! */
366 /* */
367 /* <Output> */
368 /* FreeType error code. 0 means success. */
369 /* */
370 typedef FT_Error
372 FT_UInt idx,
373 FT_String** PSname );
374
375
376 /*************************************************************************/
377 /* */
378 /* <FuncType> */
379 /* TT_Load_Metrics_Func */
380 /* */
381 /* <Description> */
382 /* Load a metrics table, which is a table with a horizontal and a */
383 /* vertical version. */
384 /* */
385 /* <Input> */
386 /* face :: A handle to the target face object. */
387 /* */
388 /* stream :: The input stream. */
389 /* */
390 /* vertical :: A boolean flag. If set, load the vertical one. */
391 /* */
392 /* <Return> */
393 /* FreeType error code. 0 means success. */
394 /* */
395 typedef FT_Error
398 FT_Bool vertical );
399
400
401 /*************************************************************************/
402 /* */
403 /* <FuncType> */
404 /* TT_Get_Metrics_Func */
405 /* */
406 /* <Description> */
407 /* Load the horizontal or vertical header in a face object. */
408 /* */
409 /* <Input> */
410 /* face :: A handle to the target face object. */
411 /* */
412 /* vertical :: A boolean flag. If set, load vertical metrics. */
413 /* */
414 /* gindex :: The glyph index. */
415 /* */
416 /* <Output> */
417 /* abearing :: The horizontal (or vertical) bearing. Set to zero in */
418 /* case of error. */
419 /* */
420 /* aadvance :: The horizontal (or vertical) advance. Set to zero in */
421 /* case of error. */
422 /* */
423 typedef void
425 FT_Bool vertical,
426 FT_UInt gindex,
427 FT_Short* abearing,
428 FT_UShort* aadvance );
429
430
431 /*************************************************************************/
432 /* */
433 /* <FuncType> */
434 /* TT_Get_Name_Func */
435 /* */
436 /* <Description> */
437 /* From the `name' table, return a given ENGLISH name record in */
438 /* ASCII. */
439 /* */
440 /* <Input> */
441 /* face :: A handle to the source face object. */
442 /* */
443 /* nameid :: The name id of the name record to return. */
444 /* */
445 /* <InOut> */
446 /* name :: The address of an allocated string pointer. NULL if */
447 /* no name is present. */
448 /* */
449 /* <Return> */
450 /* FreeType error code. 0 means success. */
451 /* */
452 typedef FT_Error
454 FT_UShort nameid,
455 FT_String** name );
456
457
458 /*************************************************************************/
459 /* */
460 /* <FuncType> */
461 /* TT_Get_Name_ID_Func */
462 /* */
463 /* <Description> */
464 /* Search whether an ENGLISH version for a given name ID is in the */
465 /* `name' table. */
466 /* */
467 /* <Input> */
468 /* face :: A handle to the source face object. */
469 /* */
470 /* nameid :: The name id of the name record to return. */
471 /* */
472 /* <Out> */
473 /* win :: If non-negative, an index into the `name' table with */
474 /* the corresponding (3,1) or (3,0) Windows entry. */
475 /* */
476 /* apple :: If non-negative, an index into the `name' table with */
477 /* the corresponding (1,0) Apple entry. */
478 /* */
479 /* <Return> */
480 /* 1 if there is either a win or apple entry (or both), 0 otheriwse. */
481 /* */
482 typedef FT_Bool
484 FT_UShort nameid,
485 FT_Int *win,
486 FT_Int *apple );
487
488
489 /*************************************************************************/
490 /* */
491 /* <FuncType> */
492 /* TT_Load_Table_Func */
493 /* */
494 /* <Description> */
495 /* Load a given TrueType table. */
496 /* */
497 /* <Input> */
498 /* face :: A handle to the target face object. */
499 /* */
500 /* stream :: The input stream. */
501 /* */
502 /* <Return> */
503 /* FreeType error code. 0 means success. */
504 /* */
505 /* <Note> */
506 /* The function uses `face->goto_table' to seek the stream to the */
507 /* start of the table, except while loading the font directory. */
508 /* */
509 typedef FT_Error
512
513
514 /*************************************************************************/
515 /* */
516 /* <FuncType> */
517 /* TT_Free_Table_Func */
518 /* */
519 /* <Description> */
520 /* Free a given TrueType table. */
521 /* */
522 /* <Input> */
523 /* face :: A handle to the target face object. */
524 /* */
525 typedef void
527
528
529 /*
530 * @functype:
531 * TT_Face_GetKerningFunc
532 *
533 * @description:
534 * Return the horizontal kerning value between two glyphs.
535 *
536 * @input:
537 * face :: A handle to the source face object.
538 * left_glyph :: The left glyph index.
539 * right_glyph :: The right glyph index.
540 *
541 * @return:
542 * The kerning value in font units.
543 */
544 typedef FT_Int
548
549
550 /*************************************************************************/
551 /* */
552 /* <Struct> */
553 /* SFNT_Interface */
554 /* */
555 /* <Description> */
556 /* This structure holds pointers to the functions used to load and */
557 /* free the basic tables that are required in a `sfnt' font file. */
558 /* */
559 /* <Fields> */
560 /* Check the various xxx_Func() descriptions for details. */
561 /* */
562 typedef struct SFNT_Interface_
563 {
565
570
572
573 /* these functions are called by `load_face' but they can also */
574 /* be called from external modules, if there is a need to do so */
581
584
585 /* this field was called `load_kerning' up to version 2.1.10 */
587
590
591 /* see `ttload.h'; this field was called `load_bitmap_header' up to */
592 /* version 2.1.10 */
594
596
597 /* see `ttpost.h' */
600
601 /* starting here, the structure differs from version 2.1.7 */
602
603 /* this field was introduced in version 2.1.8, named `get_psname' */
605
606 /* new elements introduced after version 2.1.10 */
607
608 /* load the font directory, i.e., the offset table and */
609 /* the table directory */
612
615
618
620
623
625
626
627 /* transitional */
629
630#ifndef FT_CONFIG_OPTION_PIC
631
632#define FT_DEFINE_SFNT_INTERFACE( \
633 class_, \
634 goto_table_, \
635 init_face_, \
636 load_face_, \
637 done_face_, \
638 get_interface_, \
639 load_any_, \
640 load_head_, \
641 load_hhea_, \
642 load_cmap_, \
643 load_maxp_, \
644 load_os2_, \
645 load_post_, \
646 load_name_, \
647 free_name_, \
648 load_kern_, \
649 load_gasp_, \
650 load_pclt_, \
651 load_bhed_, \
652 load_sbit_image_, \
653 get_psname_, \
654 free_psnames_, \
655 get_kerning_, \
656 load_font_dir_, \
657 load_hmtx_, \
658 load_eblc_, \
659 free_eblc_, \
660 set_sbit_strike_, \
661 load_strike_metrics_, \
662 get_metrics_, \
663 get_name_, \
664 get_name_id_ ) \
665 static const SFNT_Interface class_ = \
666 { \
667 goto_table_, \
668 init_face_, \
669 load_face_, \
670 done_face_, \
671 get_interface_, \
672 load_any_, \
673 load_head_, \
674 load_hhea_, \
675 load_cmap_, \
676 load_maxp_, \
677 load_os2_, \
678 load_post_, \
679 load_name_, \
680 free_name_, \
681 load_kern_, \
682 load_gasp_, \
683 load_pclt_, \
684 load_bhed_, \
685 load_sbit_image_, \
686 get_psname_, \
687 free_psnames_, \
688 get_kerning_, \
689 load_font_dir_, \
690 load_hmtx_, \
691 load_eblc_, \
692 free_eblc_, \
693 set_sbit_strike_, \
694 load_strike_metrics_, \
695 get_metrics_, \
696 get_name_, \
697 get_name_id_ \
698 };
699
700#else /* FT_CONFIG_OPTION_PIC */
701
702#define FT_INTERNAL( a, a_ ) \
703 clazz->a = a_;
704
705#define FT_DEFINE_SFNT_INTERFACE( \
706 class_, \
707 goto_table_, \
708 init_face_, \
709 load_face_, \
710 done_face_, \
711 get_interface_, \
712 load_any_, \
713 load_head_, \
714 load_hhea_, \
715 load_cmap_, \
716 load_maxp_, \
717 load_os2_, \
718 load_post_, \
719 load_name_, \
720 free_name_, \
721 load_kern_, \
722 load_gasp_, \
723 load_pclt_, \
724 load_bhed_, \
725 load_sbit_image_, \
726 get_psname_, \
727 free_psnames_, \
728 get_kerning_, \
729 load_font_dir_, \
730 load_hmtx_, \
731 load_eblc_, \
732 free_eblc_, \
733 set_sbit_strike_, \
734 load_strike_metrics_, \
735 get_metrics_, \
736 get_name_, \
737 get_name_id_ ) \
738 void \
739 FT_Init_Class_ ## class_( FT_Library library, \
740 SFNT_Interface* clazz ) \
741 { \
742 FT_UNUSED( library ); \
743 \
744 clazz->goto_table = goto_table_; \
745 clazz->init_face = init_face_; \
746 clazz->load_face = load_face_; \
747 clazz->done_face = done_face_; \
748 clazz->get_interface = get_interface_; \
749 clazz->load_any = load_any_; \
750 clazz->load_head = load_head_; \
751 clazz->load_hhea = load_hhea_; \
752 clazz->load_cmap = load_cmap_; \
753 clazz->load_maxp = load_maxp_; \
754 clazz->load_os2 = load_os2_; \
755 clazz->load_post = load_post_; \
756 clazz->load_name = load_name_; \
757 clazz->free_name = free_name_; \
758 clazz->load_kern = load_kern_; \
759 clazz->load_gasp = load_gasp_; \
760 clazz->load_pclt = load_pclt_; \
761 clazz->load_bhed = load_bhed_; \
762 clazz->load_sbit_image = load_sbit_image_; \
763 clazz->get_psname = get_psname_; \
764 clazz->free_psnames = free_psnames_; \
765 clazz->get_kerning = get_kerning_; \
766 clazz->load_font_dir = load_font_dir_; \
767 clazz->load_hmtx = load_hmtx_; \
768 clazz->load_eblc = load_eblc_; \
769 clazz->free_eblc = free_eblc_; \
770 clazz->set_sbit_strike = set_sbit_strike_; \
771 clazz->load_strike_metrics = load_strike_metrics_; \
772 clazz->get_metrics = get_metrics_; \
773 clazz->get_name = get_name_; \
774 clazz->get_name_id = get_name_id_; \
775 }
776
777#endif /* FT_CONFIG_OPTION_PIC */
778
780
781#endif /* SFNT_H_ */
782
783
784/* END */
WORD face[3]
Definition: mesh.c:4747
unsigned int idx
Definition: utils.c:41
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
Definition: ftmodapi.h:184
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
unsigned long FT_ULong
Definition: fttypes.h:253
unsigned char FT_Byte
Definition: fttypes.h:154
int FT_Error
Definition: fttypes.h:300
signed long FT_Long
Definition: fttypes.h:242
unsigned short FT_UShort
Definition: fttypes.h:209
char FT_String
Definition: fttypes.h:187
signed short FT_Short
Definition: fttypes.h:198
unsigned int FT_UInt
Definition: fttypes.h:231
signed int FT_Int
Definition: fttypes.h:220
GLuint buffer
Definition: glext.h:5915
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
Definition: glext.h:11745
GLenum GLint * range
Definition: glext.h:7539
GLenum const GLfloat * params
Definition: glext.h:5645
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
GLintptr offset
Definition: glext.h:5920
static real win[4][36]
FT_Error(* TT_Set_SBit_Strike_Func)(TT_Face face, FT_Size_Request req, FT_ULong *astrike_index)
Definition: sfnt.h:320
FT_Int(* TT_Face_GetKerningFunc)(TT_Face face, FT_UInt left_glyph, FT_UInt right_glyph)
Definition: sfnt.h:545
FT_Error(* TT_Load_Metrics_Func)(TT_Face face, FT_Stream stream, FT_Bool vertical)
Definition: sfnt.h:396
FT_Error(* TT_Load_Table_Func)(TT_Face face, FT_Stream stream)
Definition: sfnt.h:510
SFNT_Interface * SFNT_Service
Definition: sfnt.h:628
FT_Error(* TT_Load_Strike_Metrics_Func)(TT_Face face, FT_ULong strike_index, FT_Size_Metrics *metrics)
Definition: sfnt.h:346
FT_Error(* TT_Get_Name_Func)(TT_Face face, FT_UShort nameid, FT_String **name)
Definition: sfnt.h:453
void(* TT_Free_Table_Func)(TT_Face face)
Definition: sfnt.h:526
void(* TT_Get_Metrics_Func)(TT_Face face, FT_Bool vertical, FT_UInt gindex, FT_Short *abearing, FT_UShort *aadvance)
Definition: sfnt.h:424
void(* TT_Done_Face_Func)(TT_Face face)
Definition: sfnt.h:129
FT_BEGIN_HEADER typedef FT_Error(* TT_Init_Face_Func)(FT_Stream stream, TT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter *params)
Definition: sfnt.h:69
FT_Error(* TT_Get_PS_Name_Func)(TT_Face face, FT_UInt idx, FT_String **PSname)
Definition: sfnt.h:371
FT_Bool(* TT_Get_Name_ID_Func)(TT_Face face, FT_UShort nameid, FT_Int *win, FT_Int *apple)
Definition: sfnt.h:483
FT_Error(* TT_Load_SBit_Image_Func)(TT_Face face, FT_ULong strike_index, FT_UInt glyph_index, FT_UInt load_flags, FT_Stream stream, FT_Bitmap *amap, TT_SBit_MetricsRec *ametrics)
Definition: sfnt.h:290
FT_Error(* TT_Load_Any_Func)(TT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
Definition: sfnt.h:173
struct SFNT_Interface_ SFNT_Interface
FT_Error(* TT_Find_SBit_Image_Func)(TT_Face face, FT_UInt glyph_index, FT_ULong strike_index, TT_SBit_Range *arange, TT_SBit_Strike *astrike, FT_ULong *aglyph_offset)
Definition: sfnt.h:209
FT_Error(* TT_Load_SBit_Metrics_Func)(FT_Stream stream, TT_SBit_Range range, TT_SBit_Metrics metrics)
Definition: sfnt.h:245
FT_Error(* TT_Load_Face_Func)(FT_Stream stream, TT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter *params)
Definition: sfnt.h:107
TT_Free_Table_Func free_eblc
Definition: sfnt.h:614
TT_Get_PS_Name_Func get_psname
Definition: sfnt.h:598
TT_Load_Table_Func load_name
Definition: sfnt.h:582
TT_Free_Table_Func free_name
Definition: sfnt.h:583
TT_Load_Strike_Metrics_Func load_strike_metrics
Definition: sfnt.h:617
TT_Load_Table_Func load_gasp
Definition: sfnt.h:588
TT_Load_Table_Func load_eblc
Definition: sfnt.h:613
TT_Load_Table_Func load_font_dir
Definition: sfnt.h:610
TT_Get_Metrics_Func get_metrics
Definition: sfnt.h:619
TT_Load_Table_Func load_cmap
Definition: sfnt.h:577
TT_Load_Table_Func load_kern
Definition: sfnt.h:586
TT_Load_Table_Func load_maxp
Definition: sfnt.h:578
TT_Done_Face_Func done_face
Definition: sfnt.h:568
FT_Module_Requester get_interface
Definition: sfnt.h:569
TT_Free_Table_Func free_psnames
Definition: sfnt.h:599
TT_Load_Table_Func load_bhed
Definition: sfnt.h:593
TT_Face_GetKerningFunc get_kerning
Definition: sfnt.h:604
TT_Load_Table_Func load_os2
Definition: sfnt.h:579
TT_Load_Metrics_Func load_hhea
Definition: sfnt.h:576
TT_Load_Any_Func load_any
Definition: sfnt.h:571
TT_Load_Table_Func load_post
Definition: sfnt.h:580
TT_Init_Face_Func init_face
Definition: sfnt.h:566
TT_Set_SBit_Strike_Func set_sbit_strike
Definition: sfnt.h:616
TT_Load_SBit_Image_Func load_sbit_image
Definition: sfnt.h:595
TT_Load_Face_Func load_face
Definition: sfnt.h:567
TT_Get_Name_ID_Func get_name_id
Definition: sfnt.h:622
TT_Load_Table_Func load_pclt
Definition: sfnt.h:589
TT_Load_Metrics_Func load_hmtx
Definition: sfnt.h:611
TT_Get_Name_Func get_name
Definition: sfnt.h:621
TT_Loader_GotoTableFunc goto_table
Definition: sfnt.h:564
TT_Load_Table_Func load_head
Definition: sfnt.h:575
Definition: name.c:39
Definition: parse.h:23
Definition: ecma_167.h:138
FT_UInt left_glyph
Definition: ttdriver.c:201
FT_UInt FT_UInt right_glyph
Definition: ttdriver.c:202
FT_Error(* TT_Loader_GotoTableFunc)(TT_Face face, FT_ULong tag, FT_Stream stream, FT_ULong *length)
Definition: tttypes.h:1010