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-2001, 2002, 2003, 2004, 2005, 2006 by */ | 7 /* Copyright 1996-2006, 2009, 2012-2013 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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 /* <Input> */ | 118 /* <Input> */ |
119 /* face :: A handle to the target face object. */ | 119 /* face :: A handle to the target face object. */ |
120 /* */ | 120 /* */ |
121 /* <Note> */ | 121 /* <Note> */ |
122 /* This function does NOT destroy the face object. */ | 122 /* This function does NOT destroy the face object. */ |
123 /* */ | 123 /* */ |
124 typedef void | 124 typedef void |
125 (*TT_Done_Face_Func)( TT_Face face ); | 125 (*TT_Done_Face_Func)( TT_Face face ); |
126 | 126 |
127 | 127 |
128 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
129 | |
130 /*************************************************************************/ | |
131 /* */ | |
132 /* <FuncType> */ | |
133 /* TT_Load_SFNT_HeaderRec_Func */ | |
134 /* */ | |
135 /* <Description> */ | |
136 /* Loads the header of a SFNT font file. Supports collections. */ | |
137 /* */ | |
138 /* <Input> */ | |
139 /* face :: A handle to the target face object. */ | |
140 /* */ | |
141 /* stream :: The input stream. */ | |
142 /* */ | |
143 /* face_index :: The index of the TrueType font, if we are opening a */ | |
144 /* collection. */ | |
145 /* */ | |
146 /* <Output> */ | |
147 /* sfnt :: The SFNT header. */ | |
148 /* */ | |
149 /* <Return> */ | |
150 /* FreeType error code. 0 means success. */ | |
151 /* */ | |
152 /* <Note> */ | |
153 /* The stream cursor must be at the font file's origin. */ | |
154 /* */ | |
155 /* This function recognizes fonts embedded in a `TrueType */ | |
156 /* collection'. */ | |
157 /* */ | |
158 /* This function checks that the header is valid by looking at the */ | |
159 /* values of `search_range', `entry_selector', and `range_shift'. */ | |
160 /* */ | |
161 typedef FT_Error | |
162 (*TT_Load_SFNT_HeaderRec_Func)( TT_Face face, | |
163 FT_Stream stream, | |
164 FT_Long face_index, | |
165 SFNT_Header sfnt ); | |
166 | |
167 | |
168 /*************************************************************************/ | 128 /*************************************************************************/ |
169 /* */ | 129 /* */ |
170 /* <FuncType> */ | 130 /* <FuncType> */ |
171 /* TT_Load_Directory_Func */ | |
172 /* */ | |
173 /* <Description> */ | |
174 /* Loads the table directory into a face object. */ | |
175 /* */ | |
176 /* <Input> */ | |
177 /* face :: A handle to the target face object. */ | |
178 /* */ | |
179 /* stream :: The input stream. */ | |
180 /* */ | |
181 /* sfnt :: The SFNT header. */ | |
182 /* */ | |
183 /* <Return> */ | |
184 /* FreeType error code. 0 means success. */ | |
185 /* */ | |
186 /* <Note> */ | |
187 /* The stream cursor must be on the first byte after the 4-byte font */ | |
188 /* format tag. This is the case just after a call to */ | |
189 /* TT_Load_Format_Tag(). */ | |
190 /* */ | |
191 typedef FT_Error | |
192 (*TT_Load_Directory_Func)( TT_Face face, | |
193 FT_Stream stream, | |
194 SFNT_Header sfnt ); | |
195 | |
196 #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ | |
197 | |
198 | |
199 /*************************************************************************/ | |
200 /* */ | |
201 /* <FuncType> */ | |
202 /* TT_Load_Any_Func */ | 131 /* TT_Load_Any_Func */ |
203 /* */ | 132 /* */ |
204 /* <Description> */ | 133 /* <Description> */ |
205 /* Load any font table into client memory. */ | 134 /* Load any font table into client memory. */ |
206 /* */ | 135 /* */ |
207 /* <Input> */ | 136 /* <Input> */ |
208 /* face :: The face object to look for. */ | 137 /* face :: The face object to look for. */ |
209 /* */ | 138 /* */ |
210 /* tag :: The tag of table to load. Use the value 0 if you want */ | 139 /* tag :: The tag of table to load. Use the value 0 if you want */ |
211 /* to access the whole font file, else set this parameter */ | 140 /* to access the whole font file, else set this parameter */ |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 typedef FT_Error | 285 typedef FT_Error |
357 (*TT_Load_SBit_Image_Func)( TT_Face face, | 286 (*TT_Load_SBit_Image_Func)( TT_Face face, |
358 FT_ULong strike_index, | 287 FT_ULong strike_index, |
359 FT_UInt glyph_index, | 288 FT_UInt glyph_index, |
360 FT_UInt load_flags, | 289 FT_UInt load_flags, |
361 FT_Stream stream, | 290 FT_Stream stream, |
362 FT_Bitmap *amap, | 291 FT_Bitmap *amap, |
363 TT_SBit_MetricsRec *ametrics ); | 292 TT_SBit_MetricsRec *ametrics ); |
364 | 293 |
365 | 294 |
366 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
367 | |
368 /*************************************************************************/ | |
369 /* */ | |
370 /* <FuncType> */ | |
371 /* TT_Set_SBit_Strike_OldFunc */ | |
372 /* */ | |
373 /* <Description> */ | |
374 /* Select an sbit strike for a given size request. */ | |
375 /* */ | |
376 /* <Input> */ | |
377 /* face :: The target face object. */ | |
378 /* */ | |
379 /* req :: The size request. */ | |
380 /* */ | |
381 /* <Output> */ | |
382 /* astrike_index :: The index of the sbit strike. */ | |
383 /* */ | |
384 /* <Return> */ | |
385 /* FreeType error code. 0 means success. Returns an error if no */ | |
386 /* sbit strike exists for the selected ppem values. */ | |
387 /* */ | |
388 typedef FT_Error | |
389 (*TT_Set_SBit_Strike_OldFunc)( TT_Face face, | |
390 FT_UInt x_ppem, | |
391 FT_UInt y_ppem, | |
392 FT_ULong* astrike_index ); | |
393 | |
394 | |
395 /*************************************************************************/ | 295 /*************************************************************************/ |
396 /* */ | 296 /* */ |
397 /* <FuncType> */ | 297 /* <FuncType> */ |
398 /* TT_CharMap_Load_Func */ | |
399 /* */ | |
400 /* <Description> */ | |
401 /* Loads a given TrueType character map into memory. */ | |
402 /* */ | |
403 /* <Input> */ | |
404 /* face :: A handle to the parent face object. */ | |
405 /* */ | |
406 /* stream :: A handle to the current stream object. */ | |
407 /* */ | |
408 /* <InOut> */ | |
409 /* cmap :: A pointer to a cmap object. */ | |
410 /* */ | |
411 /* <Return> */ | |
412 /* FreeType error code. 0 means success. */ | |
413 /* */ | |
414 /* <Note> */ | |
415 /* The function assumes that the stream is already in use (i.e., */ | |
416 /* opened). In case of error, all partially allocated tables are */ | |
417 /* released. */ | |
418 /* */ | |
419 typedef FT_Error | |
420 (*TT_CharMap_Load_Func)( TT_Face face, | |
421 void* cmap, | |
422 FT_Stream input ); | |
423 | |
424 | |
425 /*************************************************************************/ | |
426 /* */ | |
427 /* <FuncType> */ | |
428 /* TT_CharMap_Free_Func */ | |
429 /* */ | |
430 /* <Description> */ | |
431 /* Destroys a character mapping table. */ | |
432 /* */ | |
433 /* <Input> */ | |
434 /* face :: A handle to the parent face object. */ | |
435 /* */ | |
436 /* cmap :: A handle to a cmap object. */ | |
437 /* */ | |
438 /* <Return> */ | |
439 /* FreeType error code. 0 means success. */ | |
440 /* */ | |
441 typedef FT_Error | |
442 (*TT_CharMap_Free_Func)( TT_Face face, | |
443 void* cmap ); | |
444 | |
445 #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ | |
446 | |
447 | |
448 /*************************************************************************/ | |
449 /* */ | |
450 /* <FuncType> */ | |
451 /* TT_Set_SBit_Strike_Func */ | 298 /* TT_Set_SBit_Strike_Func */ |
452 /* */ | 299 /* */ |
453 /* <Description> */ | 300 /* <Description> */ |
454 /* Select an sbit strike for a given size request. */ | 301 /* Select an sbit strike for a given size request. */ |
455 /* */ | 302 /* */ |
456 /* <Input> */ | 303 /* <Input> */ |
457 /* face :: The target face object. */ | 304 /* face :: The target face object. */ |
458 /* */ | 305 /* */ |
459 /* req :: The size request. */ | 306 /* req :: The size request. */ |
460 /* */ | 307 /* */ |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
650 { | 497 { |
651 TT_Loader_GotoTableFunc goto_table; | 498 TT_Loader_GotoTableFunc goto_table; |
652 | 499 |
653 TT_Init_Face_Func init_face; | 500 TT_Init_Face_Func init_face; |
654 TT_Load_Face_Func load_face; | 501 TT_Load_Face_Func load_face; |
655 TT_Done_Face_Func done_face; | 502 TT_Done_Face_Func done_face; |
656 FT_Module_Requester get_interface; | 503 FT_Module_Requester get_interface; |
657 | 504 |
658 TT_Load_Any_Func load_any; | 505 TT_Load_Any_Func load_any; |
659 | 506 |
660 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
661 TT_Load_SFNT_HeaderRec_Func load_sfnt_header; | |
662 TT_Load_Directory_Func load_directory; | |
663 #endif | |
664 | |
665 /* these functions are called by `load_face' but they can also */ | 507 /* these functions are called by `load_face' but they can also */ |
666 /* be called from external modules, if there is a need to do so */ | 508 /* be called from external modules, if there is a need to do so */ |
667 TT_Load_Table_Func load_head; | 509 TT_Load_Table_Func load_head; |
668 TT_Load_Metrics_Func load_hhea; | 510 TT_Load_Metrics_Func load_hhea; |
669 TT_Load_Table_Func load_cmap; | 511 TT_Load_Table_Func load_cmap; |
670 TT_Load_Table_Func load_maxp; | 512 TT_Load_Table_Func load_maxp; |
671 TT_Load_Table_Func load_os2; | 513 TT_Load_Table_Func load_os2; |
672 TT_Load_Table_Func load_post; | 514 TT_Load_Table_Func load_post; |
673 | 515 |
674 TT_Load_Table_Func load_name; | 516 TT_Load_Table_Func load_name; |
675 TT_Free_Table_Func free_name; | 517 TT_Free_Table_Func free_name; |
676 | 518 |
677 /* optional tables */ | |
678 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
679 TT_Load_Table_Func load_hdmx_stub; | |
680 TT_Free_Table_Func free_hdmx_stub; | |
681 #endif | |
682 | |
683 /* this field was called `load_kerning' up to version 2.1.10 */ | 519 /* this field was called `load_kerning' up to version 2.1.10 */ |
684 TT_Load_Table_Func load_kern; | 520 TT_Load_Table_Func load_kern; |
685 | 521 |
686 TT_Load_Table_Func load_gasp; | 522 TT_Load_Table_Func load_gasp; |
687 TT_Load_Table_Func load_pclt; | 523 TT_Load_Table_Func load_pclt; |
688 | 524 |
689 /* see `ttload.h'; this field was called `load_bitmap_header' up to */ | 525 /* see `ttload.h'; this field was called `load_bitmap_header' up to */ |
690 /* version 2.1.10 */ | 526 /* version 2.1.10 */ |
691 TT_Load_Table_Func load_bhed; | 527 TT_Load_Table_Func load_bhed; |
692 | 528 |
693 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
694 | |
695 /* see `ttsbit.h' */ | |
696 TT_Set_SBit_Strike_OldFunc set_sbit_strike_stub; | |
697 TT_Load_Table_Func load_sbits_stub; | |
698 | |
699 /* | |
700 * The following two fields appeared in version 2.1.8, and were placed | |
701 * between `load_sbits' and `load_sbit_image'. We support them as a | |
702 * special exception since they are used by Xfont library within the | |
703 * X.Org xserver, and because the probability that other rogue clients | |
704 * use the other version 2.1.7 fields below is _extremely_ low. | |
705 * | |
706 * Note that this forces us to disable an interesting memory-saving | |
707 * optimization though... | |
708 */ | |
709 | |
710 TT_Find_SBit_Image_Func find_sbit_image; | |
711 TT_Load_SBit_Metrics_Func load_sbit_metrics; | |
712 | |
713 #endif | |
714 | |
715 TT_Load_SBit_Image_Func load_sbit_image; | 529 TT_Load_SBit_Image_Func load_sbit_image; |
716 | 530 |
717 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
718 TT_Free_Table_Func free_sbits_stub; | |
719 #endif | |
720 | |
721 /* see `ttpost.h' */ | 531 /* see `ttpost.h' */ |
722 TT_Get_PS_Name_Func get_psname; | 532 TT_Get_PS_Name_Func get_psname; |
723 TT_Free_Table_Func free_psnames; | 533 TT_Free_Table_Func free_psnames; |
724 | 534 |
725 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | |
726 TT_CharMap_Load_Func load_charmap_stub; | |
727 TT_CharMap_Free_Func free_charmap_stub; | |
728 #endif | |
729 | |
730 /* starting here, the structure differs from version 2.1.7 */ | 535 /* starting here, the structure differs from version 2.1.7 */ |
731 | 536 |
732 /* this field was introduced in version 2.1.8, named `get_psname' */ | 537 /* this field was introduced in version 2.1.8, named `get_psname' */ |
733 TT_Face_GetKerningFunc get_kerning; | 538 TT_Face_GetKerningFunc get_kerning; |
734 | 539 |
735 /* new elements introduced after version 2.1.10 */ | 540 /* new elements introduced after version 2.1.10 */ |
736 | 541 |
737 /* load the font directory, i.e., the offset table and */ | 542 /* load the font directory, i.e., the offset table and */ |
738 /* the table directory */ | 543 /* the table directory */ |
739 TT_Load_Table_Func load_font_dir; | 544 TT_Load_Table_Func load_font_dir; |
740 TT_Load_Metrics_Func load_hmtx; | 545 TT_Load_Metrics_Func load_hmtx; |
741 | 546 |
742 TT_Load_Table_Func load_eblc; | 547 TT_Load_Table_Func load_eblc; |
743 TT_Free_Table_Func free_eblc; | 548 TT_Free_Table_Func free_eblc; |
744 | 549 |
745 TT_Set_SBit_Strike_Func set_sbit_strike; | 550 TT_Set_SBit_Strike_Func set_sbit_strike; |
746 TT_Load_Strike_Metrics_Func load_strike_metrics; | 551 TT_Load_Strike_Metrics_Func load_strike_metrics; |
747 | 552 |
748 TT_Get_Metrics_Func get_metrics; | 553 TT_Get_Metrics_Func get_metrics; |
749 | 554 |
750 } SFNT_Interface; | 555 } SFNT_Interface; |
751 | 556 |
752 | 557 |
753 /* transitional */ | 558 /* transitional */ |
754 typedef SFNT_Interface* SFNT_Service; | 559 typedef SFNT_Interface* SFNT_Service; |
755 | 560 |
756 #ifndef FT_CONFIG_OPTION_PIC | 561 #ifndef FT_CONFIG_OPTION_PIC |
757 | 562 |
758 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | 563 #define FT_DEFINE_SFNT_INTERFACE( \ |
759 #define FT_DEFINE_DRIVERS_OLD_INTERNAL(a) \ | 564 class_, \ |
760 a, | 565 goto_table_, \ |
761 #else | 566 init_face_, \ |
762 #define FT_DEFINE_DRIVERS_OLD_INTERNAL(a) | 567 load_face_, \ |
763 #endif | 568 done_face_, \ |
764 #define FT_INTERNAL(a) \ | 569 get_interface_, \ |
765 a, | 570 load_any_, \ |
766 | 571 load_head_, \ |
767 #define FT_DEFINE_SFNT_INTERFACE(class_, \ | 572 load_hhea_, \ |
768 goto_table_, init_face_, load_face_, done_face_, get_interface_, \ | 573 load_cmap_, \ |
769 load_any_, load_sfnt_header_, load_directory_, load_head_, \ | 574 load_maxp_, \ |
770 load_hhea_, load_cmap_, load_maxp_, load_os2_, load_post_, \ | 575 load_os2_, \ |
771 load_name_, free_name_, load_hdmx_stub_, free_hdmx_stub_, \ | 576 load_post_, \ |
772 load_kern_, load_gasp_, load_pclt_, load_bhed_, \ | 577 load_name_, \ |
773 set_sbit_strike_stub_, load_sbits_stub_, find_sbit_image_, \ | 578 free_name_, \ |
774 load_sbit_metrics_, load_sbit_image_, free_sbits_stub_, \ | 579 load_kern_, \ |
775 get_psname_, free_psnames_, load_charmap_stub_, free_charmap_stub_, \ | 580 load_gasp_, \ |
776 get_kerning_, load_font_dir_, load_hmtx_, load_eblc_, free_eblc_, \ | 581 load_pclt_, \ |
777 set_sbit_strike_, load_strike_metrics_, get_metrics_ ) \ | 582 load_bhed_, \ |
778 static const SFNT_Interface class_ = \ | 583 load_sbit_image_, \ |
779 { \ | 584 get_psname_, \ |
780 FT_INTERNAL(goto_table_) \ | 585 free_psnames_, \ |
781 FT_INTERNAL(init_face_) \ | 586 get_kerning_, \ |
782 FT_INTERNAL(load_face_) \ | 587 load_font_dir_, \ |
783 FT_INTERNAL(done_face_) \ | 588 load_hmtx_, \ |
784 FT_INTERNAL(get_interface_) \ | 589 load_eblc_, \ |
785 FT_INTERNAL(load_any_) \ | 590 free_eblc_, \ |
786 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_sfnt_header_) \ | 591 set_sbit_strike_, \ |
787 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_directory_) \ | 592 load_strike_metrics_, \ |
788 FT_INTERNAL(load_head_) \ | 593 get_metrics_ ) \ |
789 FT_INTERNAL(load_hhea_) \ | 594 static const SFNT_Interface class_ = \ |
790 FT_INTERNAL(load_cmap_) \ | 595 { \ |
791 FT_INTERNAL(load_maxp_) \ | 596 goto_table_, \ |
792 FT_INTERNAL(load_os2_) \ | 597 init_face_, \ |
793 FT_INTERNAL(load_post_) \ | 598 load_face_, \ |
794 FT_INTERNAL(load_name_) \ | 599 done_face_, \ |
795 FT_INTERNAL(free_name_) \ | 600 get_interface_, \ |
796 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_hdmx_stub_) \ | 601 load_any_, \ |
797 FT_DEFINE_DRIVERS_OLD_INTERNAL(free_hdmx_stub_) \ | 602 load_head_, \ |
798 FT_INTERNAL(load_kern_) \ | 603 load_hhea_, \ |
799 FT_INTERNAL(load_gasp_) \ | 604 load_cmap_, \ |
800 FT_INTERNAL(load_pclt_) \ | 605 load_maxp_, \ |
801 FT_INTERNAL(load_bhed_) \ | 606 load_os2_, \ |
802 FT_DEFINE_DRIVERS_OLD_INTERNAL(set_sbit_strike_stub_) \ | 607 load_post_, \ |
803 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_sbits_stub_) \ | 608 load_name_, \ |
804 FT_DEFINE_DRIVERS_OLD_INTERNAL(find_sbit_image_) \ | 609 free_name_, \ |
805 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_sbit_metrics_) \ | 610 load_kern_, \ |
806 FT_INTERNAL(load_sbit_image_) \ | 611 load_gasp_, \ |
807 FT_DEFINE_DRIVERS_OLD_INTERNAL(free_sbits_stub_) \ | 612 load_pclt_, \ |
808 FT_INTERNAL(get_psname_) \ | 613 load_bhed_, \ |
809 FT_INTERNAL(free_psnames_) \ | 614 load_sbit_image_, \ |
810 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_charmap_stub_) \ | 615 get_psname_, \ |
811 FT_DEFINE_DRIVERS_OLD_INTERNAL(free_charmap_stub_) \ | 616 free_psnames_, \ |
812 FT_INTERNAL(get_kerning_) \ | 617 get_kerning_, \ |
813 FT_INTERNAL(load_font_dir_) \ | 618 load_font_dir_, \ |
814 FT_INTERNAL(load_hmtx_) \ | 619 load_hmtx_, \ |
815 FT_INTERNAL(load_eblc_) \ | 620 load_eblc_, \ |
816 FT_INTERNAL(free_eblc_) \ | 621 free_eblc_, \ |
817 FT_INTERNAL(set_sbit_strike_) \ | 622 set_sbit_strike_, \ |
818 FT_INTERNAL(load_strike_metrics_) \ | 623 load_strike_metrics_, \ |
819 FT_INTERNAL(get_metrics_) \ | 624 get_metrics_, \ |
820 }; | 625 }; |
821 | 626 |
822 #else /* FT_CONFIG_OPTION_PIC */ | 627 #else /* FT_CONFIG_OPTION_PIC */ |
823 | 628 |
824 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS | 629 #define FT_INTERNAL( a, a_ ) \ |
825 #define FT_DEFINE_DRIVERS_OLD_INTERNAL(a, a_) \ | 630 clazz->a = a_; |
826 clazz->a = a_; | |
827 #else | |
828 #define FT_DEFINE_DRIVERS_OLD_INTERNAL(a, a_) | |
829 #endif | |
830 #define FT_INTERNAL(a, a_) \ | |
831 clazz->a = a_; | |
832 | 631 |
833 #define FT_DEFINE_SFNT_INTERFACE(class_, \ | 632 #define FT_DEFINE_SFNT_INTERFACE( \ |
834 goto_table_, init_face_, load_face_, done_face_, get_interface_, \ | 633 class_, \ |
835 load_any_, load_sfnt_header_, load_directory_, load_head_, \ | 634 goto_table_, \ |
836 load_hhea_, load_cmap_, load_maxp_, load_os2_, load_post_, \ | 635 init_face_, \ |
837 load_name_, free_name_, load_hdmx_stub_, free_hdmx_stub_, \ | 636 load_face_, \ |
838 load_kern_, load_gasp_, load_pclt_, load_bhed_, \ | 637 done_face_, \ |
839 set_sbit_strike_stub_, load_sbits_stub_, find_sbit_image_, \ | 638 get_interface_, \ |
840 load_sbit_metrics_, load_sbit_image_, free_sbits_stub_, \ | 639 load_any_, \ |
841 get_psname_, free_psnames_, load_charmap_stub_, free_charmap_stub_, \ | 640 load_head_, \ |
842 get_kerning_, load_font_dir_, load_hmtx_, load_eblc_, free_eblc_, \ | 641 load_hhea_, \ |
843 set_sbit_strike_, load_strike_metrics_, get_metrics_ ) \ | 642 load_cmap_, \ |
844 void \ | 643 load_maxp_, \ |
845 FT_Init_Class_##class_( FT_Library library, SFNT_Interface* clazz ) \ | 644 load_os2_, \ |
846 { \ | 645 load_post_, \ |
847 FT_UNUSED(library); \ | 646 load_name_, \ |
848 FT_INTERNAL(goto_table,goto_table_) \ | 647 free_name_, \ |
849 FT_INTERNAL(init_face,init_face_) \ | 648 load_kern_, \ |
850 FT_INTERNAL(load_face,load_face_) \ | 649 load_gasp_, \ |
851 FT_INTERNAL(done_face,done_face_) \ | 650 load_pclt_, \ |
852 FT_INTERNAL(get_interface,get_interface_) \ | 651 load_bhed_, \ |
853 FT_INTERNAL(load_any,load_any_) \ | 652 load_sbit_image_, \ |
854 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_sfnt_header,load_sfnt_header_) \ | 653 get_psname_, \ |
855 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_directory,load_directory_) \ | 654 free_psnames_, \ |
856 FT_INTERNAL(load_head,load_head_) \ | 655 get_kerning_, \ |
857 FT_INTERNAL(load_hhea,load_hhea_) \ | 656 load_font_dir_, \ |
858 FT_INTERNAL(load_cmap,load_cmap_) \ | 657 load_hmtx_, \ |
859 FT_INTERNAL(load_maxp,load_maxp_) \ | 658 load_eblc_, \ |
860 FT_INTERNAL(load_os2,load_os2_) \ | 659 free_eblc_, \ |
861 FT_INTERNAL(load_post,load_post_) \ | 660 set_sbit_strike_, \ |
862 FT_INTERNAL(load_name,load_name_) \ | 661 load_strike_metrics_, \ |
863 FT_INTERNAL(free_name,free_name_) \ | 662 get_metrics_ ) \ |
864 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_hdmx_stub,load_hdmx_stub_) \ | 663 void \ |
865 FT_DEFINE_DRIVERS_OLD_INTERNAL(free_hdmx_stub,free_hdmx_stub_) \ | 664 FT_Init_Class_ ## class_( FT_Library library, \ |
866 FT_INTERNAL(load_kern,load_kern_) \ | 665 SFNT_Interface* clazz ) \ |
867 FT_INTERNAL(load_gasp,load_gasp_) \ | 666 { \ |
868 FT_INTERNAL(load_pclt,load_pclt_) \ | 667 FT_UNUSED( library ); \ |
869 FT_INTERNAL(load_bhed,load_bhed_) \ | 668 \ |
870 FT_DEFINE_DRIVERS_OLD_INTERNAL(set_sbit_strike_stub,set_sbit_strike_stub_) \ | 669 clazz->goto_table = goto_table_; \ |
871 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_sbits_stub,load_sbits_stub_) \ | 670 clazz->init_face = init_face_; \ |
872 FT_DEFINE_DRIVERS_OLD_INTERNAL(find_sbit_image,find_sbit_image_) \ | 671 clazz->load_face = load_face_; \ |
873 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_sbit_metrics,load_sbit_metrics_) \ | 672 clazz->done_face = done_face_; \ |
874 FT_INTERNAL(load_sbit_image,load_sbit_image_) \ | 673 clazz->get_interface = get_interface_; \ |
875 FT_DEFINE_DRIVERS_OLD_INTERNAL(free_sbits_stub,free_sbits_stub_) \ | 674 clazz->load_any = load_any_; \ |
876 FT_INTERNAL(get_psname,get_psname_) \ | 675 clazz->load_head = load_head_; \ |
877 FT_INTERNAL(free_psnames,free_psnames_) \ | 676 clazz->load_hhea = load_hhea_; \ |
878 FT_DEFINE_DRIVERS_OLD_INTERNAL(load_charmap_stub,load_charmap_stub_) \ | 677 clazz->load_cmap = load_cmap_; \ |
879 FT_DEFINE_DRIVERS_OLD_INTERNAL(free_charmap_stub,free_charmap_stub_) \ | 678 clazz->load_maxp = load_maxp_; \ |
880 FT_INTERNAL(get_kerning,get_kerning_) \ | 679 clazz->load_os2 = load_os2_; \ |
881 FT_INTERNAL(load_font_dir,load_font_dir_) \ | 680 clazz->load_post = load_post_; \ |
882 FT_INTERNAL(load_hmtx,load_hmtx_) \ | 681 clazz->load_name = load_name_; \ |
883 FT_INTERNAL(load_eblc,load_eblc_) \ | 682 clazz->free_name = free_name_; \ |
884 FT_INTERNAL(free_eblc,free_eblc_) \ | 683 clazz->load_kern = load_kern_; \ |
885 FT_INTERNAL(set_sbit_strike,set_sbit_strike_) \ | 684 clazz->load_gasp = load_gasp_; \ |
886 FT_INTERNAL(load_strike_metrics,load_strike_metrics_) \ | 685 clazz->load_pclt = load_pclt_; \ |
887 FT_INTERNAL(get_metrics,get_metrics_) \ | 686 clazz->load_bhed = load_bhed_; \ |
| 687 clazz->load_sbit_image = load_sbit_image_; \ |
| 688 clazz->get_psname = get_psname_; \ |
| 689 clazz->free_psnames = free_psnames_; \ |
| 690 clazz->get_kerning = get_kerning_; \ |
| 691 clazz->load_font_dir = load_font_dir_; \ |
| 692 clazz->load_hmtx = load_hmtx_; \ |
| 693 clazz->load_eblc = load_eblc_; \ |
| 694 clazz->free_eblc = free_eblc_; \ |
| 695 clazz->set_sbit_strike = set_sbit_strike_; \ |
| 696 clazz->load_strike_metrics = load_strike_metrics_; \ |
| 697 clazz->get_metrics = get_metrics_; \ |
888 } | 698 } |
889 | 699 |
890 #endif /* FT_CONFIG_OPTION_PIC */ | 700 #endif /* FT_CONFIG_OPTION_PIC */ |
891 | 701 |
892 FT_END_HEADER | 702 FT_END_HEADER |
893 | 703 |
894 #endif /* __SFNT_H__ */ | 704 #endif /* __SFNT_H__ */ |
895 | 705 |
896 | 706 |
897 /* END */ | 707 /* END */ |
OLD | NEW |