ReactOS  0.4.14-dev-583-g2a1ba2c
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
70  TT_Face face,
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
108  TT_Face face,
109  FT_Int face_index,
110  FT_Int num_params,
111  FT_Parameter* 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
174  FT_ULong tag,
175  FT_Long offset,
176  FT_Byte *buffer,
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
511  FT_Stream stream );
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 
624  } SFNT_Interface;
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 */
int FT_Error
Definition: fttypes.h:300
TT_Done_Face_Func done_face
Definition: sfnt.h:568
signed long FT_Long
Definition: fttypes.h:242
SFNT_Interface * SFNT_Service
Definition: sfnt.h:628
unsigned long FT_ULong
Definition: fttypes.h:253
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
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
FT_UInt FT_UInt right_glyph
Definition: ttdriver.c:201
#define FT_END_HEADER
Definition: ftheader.h:54
void(* TT_Get_Metrics_Func)(TT_Face face, FT_Bool vertical, FT_UInt gindex, FT_Short *abearing, FT_UShort *aadvance)
Definition: sfnt.h:424
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
Definition: glext.h:11745
signed int FT_Int
Definition: fttypes.h:220
TT_Loader_GotoTableFunc goto_table
Definition: sfnt.h:564
TT_Free_Table_Func free_name
Definition: sfnt.h:583
FT_Error(* TT_Loader_GotoTableFunc)(TT_Face face, FT_ULong tag, FT_Stream stream, FT_ULong *length)
Definition: tttypes.h:1010
void(* TT_Free_Table_Func)(TT_Face face)
Definition: sfnt.h:526
GLintptr offset
Definition: glext.h:5920
GLuint buffer
Definition: glext.h:5915
FT_Int(* TT_Face_GetKerningFunc)(TT_Face face, FT_UInt left_glyph, FT_UInt right_glyph)
Definition: sfnt.h:545
FT_Error(* TT_Get_PS_Name_Func)(TT_Face face, FT_UInt idx, FT_String **PSname)
Definition: sfnt.h:371
TT_Load_Table_Func load_os2
Definition: sfnt.h:579
TT_Load_Table_Func load_kern
Definition: sfnt.h:586
WORD face[3]
Definition: mesh.c:4747
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
TT_Load_Table_Func load_cmap
Definition: sfnt.h:577
TT_Load_Table_Func load_font_dir
Definition: sfnt.h:610
TT_Init_Face_Func init_face
Definition: sfnt.h:566
TT_Load_Table_Func load_bhed
Definition: sfnt.h:593
GLenum const GLfloat * params
Definition: glext.h:5645
unsigned char FT_Byte
Definition: fttypes.h:154
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
#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_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_Metrics_Func)(TT_Face face, FT_Stream stream, FT_Bool vertical)
Definition: sfnt.h:396
unsigned int idx
Definition: utils.c:41
TT_Load_Table_Func load_name
Definition: sfnt.h:582
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
TT_Get_Name_Func get_name
Definition: sfnt.h:621
FT_Error(* TT_Set_SBit_Strike_Func)(TT_Face face, FT_Size_Request req, FT_ULong *astrike_index)
Definition: sfnt.h:320
TT_Load_Table_Func load_eblc
Definition: sfnt.h:613
char FT_String
Definition: fttypes.h:187
TT_Load_Table_Func load_gasp
Definition: sfnt.h:588
TT_Load_Metrics_Func load_hmtx
Definition: sfnt.h:611
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
TT_Load_Strike_Metrics_Func load_strike_metrics
Definition: sfnt.h:617
TT_Set_SBit_Strike_Func set_sbit_strike
Definition: sfnt.h:616
TT_Load_Table_Func load_head
Definition: sfnt.h:575
TT_Free_Table_Func free_psnames
Definition: sfnt.h:599
TT_Get_PS_Name_Func get_psname
Definition: sfnt.h:598
GLuint GLuint stream
Definition: glext.h:7522
signed short FT_Short
Definition: fttypes.h:198
FT_UInt left_glyph
Definition: ttdriver.c:201
GLenum GLint * range
Definition: glext.h:7539
TT_Load_Face_Func load_face
Definition: sfnt.h:567
FT_Bool(* TT_Get_Name_ID_Func)(TT_Face face, FT_UShort nameid, FT_Int *win, FT_Int *apple)
Definition: sfnt.h:483
TT_Load_Any_Func load_any
Definition: sfnt.h:571
TT_Get_Name_ID_Func get_name_id
Definition: sfnt.h:622
TT_Face_GetKerningFunc get_kerning
Definition: sfnt.h:604
static real win[4][36]
unsigned int FT_UInt
Definition: fttypes.h:231
FT_Error(* TT_Load_Strike_Metrics_Func)(TT_Face face, FT_ULong strike_index, FT_Size_Metrics *metrics)
Definition: sfnt.h:346
TT_Load_SBit_Image_Func load_sbit_image
Definition: sfnt.h:595
struct SFNT_Interface_ SFNT_Interface
TT_Load_Table_Func load_post
Definition: sfnt.h:580
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_Get_Metrics_Func get_metrics
Definition: sfnt.h:619
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
TT_Free_Table_Func free_eblc
Definition: sfnt.h:614
unsigned short FT_UShort
Definition: fttypes.h:209
FT_Module_Requester get_interface
Definition: sfnt.h:569
TT_Load_Metrics_Func load_hhea
Definition: sfnt.h:576
FT_Error(* TT_Get_Name_Func)(TT_Face face, FT_UShort nameid, FT_String **name)
Definition: sfnt.h:453
void(* TT_Done_Face_Func)(TT_Face face)
Definition: sfnt.h:129
TT_Load_Table_Func load_pclt
Definition: sfnt.h:589
TT_Load_Table_Func load_maxp
Definition: sfnt.h:578
FT_Error(* TT_Load_Table_Func)(TT_Face face, FT_Stream stream)
Definition: sfnt.h:510
GLuint const GLchar * name
Definition: glext.h:6031
char * tag
Definition: main.c:59