OLD | NEW |
1 /***************************************************************************/ | 1 /***************************************************************************/ |
2 /* */ | 2 /* */ |
3 /* sfnt.h */ | 3 /* sfnt.h */ |
4 /* */ | 4 /* */ |
5 /* High-level `sfnt' driver interface (specification). */ | 5 /* High-level `sfnt' driver interface (specification). */ |
6 /* */ | 6 /* */ |
7 /* Copyright 1996-2006, 2009, 2012-2014 by */ | 7 /* Copyright 1996-2015 by */ |
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
9 /* */ | 9 /* */ |
10 /* This file is part of the FreeType project, and may only be used, */ | 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 */ | 11 /* modified, and distributed under the terms of the FreeType project */ |
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
13 /* this file you indicate that you have read the license and */ | 13 /* this file you indicate that you have read the license and */ |
14 /* understand and accept it fully. */ | 14 /* understand and accept it fully. */ |
15 /* */ | 15 /* */ |
16 /***************************************************************************/ | 16 /***************************************************************************/ |
17 | 17 |
(...skipping 19 matching lines...) Expand all Loading... |
37 /* First part of the SFNT face object initialization. This finds */ | 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 */ | 38 /* the face in a SFNT file or collection, and load its format tag in */ |
39 /* face->format_tag. */ | 39 /* face->format_tag. */ |
40 /* */ | 40 /* */ |
41 /* <Input> */ | 41 /* <Input> */ |
42 /* stream :: The input stream. */ | 42 /* stream :: The input stream. */ |
43 /* */ | 43 /* */ |
44 /* face :: A handle to the target face object. */ | 44 /* face :: A handle to the target face object. */ |
45 /* */ | 45 /* */ |
46 /* face_index :: The index of the TrueType font, if we are opening a */ | 46 /* face_index :: The index of the TrueType font, if we are opening a */ |
47 /* collection. */ | 47 /* collection, in bits 0-15. The numbered instance */ |
| 48 /* index~+~1 of a GX (sub)font, if applicable, in bits */ |
| 49 /* 16-30. */ |
48 /* */ | 50 /* */ |
49 /* num_params :: The number of additional parameters. */ | 51 /* num_params :: The number of additional parameters. */ |
50 /* */ | 52 /* */ |
51 /* params :: Optional additional parameters. */ | 53 /* params :: Optional additional parameters. */ |
52 /* */ | 54 /* */ |
53 /* <Return> */ | 55 /* <Return> */ |
54 /* FreeType error code. 0 means success. */ | 56 /* FreeType error code. 0 means success. */ |
55 /* */ | 57 /* */ |
56 /* <Note> */ | 58 /* <Note> */ |
57 /* The stream cursor must be at the font file's origin. */ | 59 /* The stream cursor must be at the font file's origin. */ |
(...skipping 22 matching lines...) Expand all Loading... |
80 /* Second part of the SFNT face object initialization. This loads */ | 82 /* Second part of the SFNT face object initialization. This loads */ |
81 /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */ | 83 /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */ |
82 /* face object. */ | 84 /* face object. */ |
83 /* */ | 85 /* */ |
84 /* <Input> */ | 86 /* <Input> */ |
85 /* stream :: The input stream. */ | 87 /* stream :: The input stream. */ |
86 /* */ | 88 /* */ |
87 /* face :: A handle to the target face object. */ | 89 /* face :: A handle to the target face object. */ |
88 /* */ | 90 /* */ |
89 /* face_index :: The index of the TrueType font, if we are opening a */ | 91 /* face_index :: The index of the TrueType font, if we are opening a */ |
90 /* collection. */ | 92 /* collection, in bits 0-15. The numbered instance */ |
| 93 /* index~+~1 of a GX (sub)font, if applicable, in bits */ |
| 94 /* 16-30. */ |
91 /* */ | 95 /* */ |
92 /* num_params :: The number of additional parameters. */ | 96 /* num_params :: The number of additional parameters. */ |
93 /* */ | 97 /* */ |
94 /* params :: Optional additional parameters. */ | 98 /* params :: Optional additional parameters. */ |
95 /* */ | 99 /* */ |
96 /* <Return> */ | 100 /* <Return> */ |
97 /* FreeType error code. 0 means success. */ | 101 /* FreeType error code. 0 means success. */ |
98 /* */ | 102 /* */ |
99 /* <Note> */ | 103 /* <Note> */ |
100 /* This function must be called after TT_Init_Face_Func(). */ | 104 /* This function must be called after TT_Init_Face_Func(). */ |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 (*TT_Get_Metrics_Func)( TT_Face face, | 424 (*TT_Get_Metrics_Func)( TT_Face face, |
421 FT_Bool vertical, | 425 FT_Bool vertical, |
422 FT_UInt gindex, | 426 FT_UInt gindex, |
423 FT_Short* abearing, | 427 FT_Short* abearing, |
424 FT_UShort* aadvance ); | 428 FT_UShort* aadvance ); |
425 | 429 |
426 | 430 |
427 /*************************************************************************/ | 431 /*************************************************************************/ |
428 /* */ | 432 /* */ |
429 /* <FuncType> */ | 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 |
| 453 (*TT_Get_Name_Func)( TT_Face face, |
| 454 FT_UShort nameid, |
| 455 FT_String** name ); |
| 456 |
| 457 |
| 458 /*************************************************************************/ |
| 459 /* */ |
| 460 /* <FuncType> */ |
430 /* TT_Load_Table_Func */ | 461 /* TT_Load_Table_Func */ |
431 /* */ | 462 /* */ |
432 /* <Description> */ | 463 /* <Description> */ |
433 /* Load a given TrueType table. */ | 464 /* Load a given TrueType table. */ |
434 /* */ | 465 /* */ |
435 /* <Input> */ | 466 /* <Input> */ |
436 /* face :: A handle to the target face object. */ | 467 /* face :: A handle to the target face object. */ |
437 /* */ | 468 /* */ |
438 /* stream :: The input stream. */ | 469 /* stream :: The input stream. */ |
439 /* */ | 470 /* */ |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 TT_Load_Metrics_Func load_hmtx; | 580 TT_Load_Metrics_Func load_hmtx; |
550 | 581 |
551 TT_Load_Table_Func load_eblc; | 582 TT_Load_Table_Func load_eblc; |
552 TT_Free_Table_Func free_eblc; | 583 TT_Free_Table_Func free_eblc; |
553 | 584 |
554 TT_Set_SBit_Strike_Func set_sbit_strike; | 585 TT_Set_SBit_Strike_Func set_sbit_strike; |
555 TT_Load_Strike_Metrics_Func load_strike_metrics; | 586 TT_Load_Strike_Metrics_Func load_strike_metrics; |
556 | 587 |
557 TT_Get_Metrics_Func get_metrics; | 588 TT_Get_Metrics_Func get_metrics; |
558 | 589 |
| 590 TT_Get_Name_Func get_name; |
| 591 |
559 } SFNT_Interface; | 592 } SFNT_Interface; |
560 | 593 |
561 | 594 |
562 /* transitional */ | 595 /* transitional */ |
563 typedef SFNT_Interface* SFNT_Service; | 596 typedef SFNT_Interface* SFNT_Service; |
564 | 597 |
565 #ifndef FT_CONFIG_OPTION_PIC | 598 #ifndef FT_CONFIG_OPTION_PIC |
566 | 599 |
567 #define FT_DEFINE_SFNT_INTERFACE( \ | 600 #define FT_DEFINE_SFNT_INTERFACE( \ |
568 class_, \ | 601 class_, \ |
(...skipping 18 matching lines...) Expand all Loading... |
587 load_sbit_image_, \ | 620 load_sbit_image_, \ |
588 get_psname_, \ | 621 get_psname_, \ |
589 free_psnames_, \ | 622 free_psnames_, \ |
590 get_kerning_, \ | 623 get_kerning_, \ |
591 load_font_dir_, \ | 624 load_font_dir_, \ |
592 load_hmtx_, \ | 625 load_hmtx_, \ |
593 load_eblc_, \ | 626 load_eblc_, \ |
594 free_eblc_, \ | 627 free_eblc_, \ |
595 set_sbit_strike_, \ | 628 set_sbit_strike_, \ |
596 load_strike_metrics_, \ | 629 load_strike_metrics_, \ |
597 get_metrics_ ) \ | 630 get_metrics_, \ |
| 631 get_name_ ) \ |
598 static const SFNT_Interface class_ = \ | 632 static const SFNT_Interface class_ = \ |
599 { \ | 633 { \ |
600 goto_table_, \ | 634 goto_table_, \ |
601 init_face_, \ | 635 init_face_, \ |
602 load_face_, \ | 636 load_face_, \ |
603 done_face_, \ | 637 done_face_, \ |
604 get_interface_, \ | 638 get_interface_, \ |
605 load_any_, \ | 639 load_any_, \ |
606 load_head_, \ | 640 load_head_, \ |
607 load_hhea_, \ | 641 load_hhea_, \ |
(...skipping 11 matching lines...) Expand all Loading... |
619 get_psname_, \ | 653 get_psname_, \ |
620 free_psnames_, \ | 654 free_psnames_, \ |
621 get_kerning_, \ | 655 get_kerning_, \ |
622 load_font_dir_, \ | 656 load_font_dir_, \ |
623 load_hmtx_, \ | 657 load_hmtx_, \ |
624 load_eblc_, \ | 658 load_eblc_, \ |
625 free_eblc_, \ | 659 free_eblc_, \ |
626 set_sbit_strike_, \ | 660 set_sbit_strike_, \ |
627 load_strike_metrics_, \ | 661 load_strike_metrics_, \ |
628 get_metrics_, \ | 662 get_metrics_, \ |
| 663 get_name_, \ |
629 }; | 664 }; |
630 | 665 |
631 #else /* FT_CONFIG_OPTION_PIC */ | 666 #else /* FT_CONFIG_OPTION_PIC */ |
632 | 667 |
633 #define FT_INTERNAL( a, a_ ) \ | 668 #define FT_INTERNAL( a, a_ ) \ |
634 clazz->a = a_; | 669 clazz->a = a_; |
635 | 670 |
636 #define FT_DEFINE_SFNT_INTERFACE( \ | 671 #define FT_DEFINE_SFNT_INTERFACE( \ |
637 class_, \ | 672 class_, \ |
638 goto_table_, \ | 673 goto_table_, \ |
(...skipping 17 matching lines...) Expand all Loading... |
656 load_sbit_image_, \ | 691 load_sbit_image_, \ |
657 get_psname_, \ | 692 get_psname_, \ |
658 free_psnames_, \ | 693 free_psnames_, \ |
659 get_kerning_, \ | 694 get_kerning_, \ |
660 load_font_dir_, \ | 695 load_font_dir_, \ |
661 load_hmtx_, \ | 696 load_hmtx_, \ |
662 load_eblc_, \ | 697 load_eblc_, \ |
663 free_eblc_, \ | 698 free_eblc_, \ |
664 set_sbit_strike_, \ | 699 set_sbit_strike_, \ |
665 load_strike_metrics_, \ | 700 load_strike_metrics_, \ |
666 get_metrics_ ) \ | 701 get_metrics_, \ |
| 702 get_name_ ) \ |
667 void \ | 703 void \ |
668 FT_Init_Class_ ## class_( FT_Library library, \ | 704 FT_Init_Class_ ## class_( FT_Library library, \ |
669 SFNT_Interface* clazz ) \ | 705 SFNT_Interface* clazz ) \ |
670 { \ | 706 { \ |
671 FT_UNUSED( library ); \ | 707 FT_UNUSED( library ); \ |
672 \ | 708 \ |
673 clazz->goto_table = goto_table_; \ | 709 clazz->goto_table = goto_table_; \ |
674 clazz->init_face = init_face_; \ | 710 clazz->init_face = init_face_; \ |
675 clazz->load_face = load_face_; \ | 711 clazz->load_face = load_face_; \ |
676 clazz->done_face = done_face_; \ | 712 clazz->done_face = done_face_; \ |
(...skipping 15 matching lines...) Expand all Loading... |
692 clazz->get_psname = get_psname_; \ | 728 clazz->get_psname = get_psname_; \ |
693 clazz->free_psnames = free_psnames_; \ | 729 clazz->free_psnames = free_psnames_; \ |
694 clazz->get_kerning = get_kerning_; \ | 730 clazz->get_kerning = get_kerning_; \ |
695 clazz->load_font_dir = load_font_dir_; \ | 731 clazz->load_font_dir = load_font_dir_; \ |
696 clazz->load_hmtx = load_hmtx_; \ | 732 clazz->load_hmtx = load_hmtx_; \ |
697 clazz->load_eblc = load_eblc_; \ | 733 clazz->load_eblc = load_eblc_; \ |
698 clazz->free_eblc = free_eblc_; \ | 734 clazz->free_eblc = free_eblc_; \ |
699 clazz->set_sbit_strike = set_sbit_strike_; \ | 735 clazz->set_sbit_strike = set_sbit_strike_; \ |
700 clazz->load_strike_metrics = load_strike_metrics_; \ | 736 clazz->load_strike_metrics = load_strike_metrics_; \ |
701 clazz->get_metrics = get_metrics_; \ | 737 clazz->get_metrics = get_metrics_; \ |
| 738 clazz->get_name = get_name_; \ |
702 } | 739 } |
703 | 740 |
704 #endif /* FT_CONFIG_OPTION_PIC */ | 741 #endif /* FT_CONFIG_OPTION_PIC */ |
705 | 742 |
706 FT_END_HEADER | 743 FT_END_HEADER |
707 | 744 |
708 #endif /* __SFNT_H__ */ | 745 #endif /* __SFNT_H__ */ |
709 | 746 |
710 | 747 |
711 /* END */ | 748 /* END */ |
OLD | NEW |