1 2<!doctype html> 3<html lang="en" class="no-js"> 4 <head> 5 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 9 <meta name="description" content="API Reference Documentation for FreeType-2.12.1"> 10 11 12 13 <meta name="author" content="FreeType Contributors"> 14 15 16 <link rel="icon" href="images/favico.ico"> 17 <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> 18 19 20 21 <title>Module Management - FreeType-2.12.1 API Reference</title> 22 23 24 25 <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> 26 27 28 <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> 29 30 31 32 <meta name="theme-color" content="#4cae4f"> 33 34 35 36 37 38 39 40 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 41 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback"> 42 <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style> 43 44 45 46 47 <link rel="stylesheet" href="stylesheets/extra.css"> 48 49 50 51 52 53 54 55 </head> 56 57 58 59 60 61 62 63 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green"> 64 65 66 <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script> 67 68 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> 69 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> 70 <label class="md-overlay" for="__drawer"></label> 71 <div data-md-component="skip"> 72 73 74 <a href="#module-management" class="md-skip"> 75 Skip to content 76 </a> 77 78 </div> 79 <div data-md-component="announce"> 80 81 </div> 82 83 <header class="md-header" data-md-component="header"> 84 <nav class="md-header__inner md-grid" aria-label="Header"> 85 <a href="index.html" title="FreeType-2.12.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.1 API Reference" data-md-component="logo"> 86 87 <img src="images/favico.ico" alt="logo"> 88 89 </a> 90 <label class="md-header__button md-icon" for="__drawer"> 91 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> 92 </label> 93 <div class="md-header__title" data-md-component="header-title"> 94 <div class="md-header__ellipsis"> 95 <div class="md-header__topic"> 96 <span class="md-ellipsis"> 97 FreeType-2.12.1 API Reference 98 </span> 99 </div> 100 <div class="md-header__topic" data-md-component="header-topic"> 101 <span class="md-ellipsis"> 102 103 Module Management 104 105 </span> 106 </div> 107 </div> 108 </div> 109 110 111 112 <label class="md-header__button md-icon" for="__search"> 113 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> 114 </label> 115 116<div class="md-search" data-md-component="search" role="dialog"> 117 <label class="md-search__overlay" for="__search"></label> 118 <div class="md-search__inner" role="search"> 119 <form class="md-search__form" name="search"> 120 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required> 121 <label class="md-search__icon md-icon" for="__search"> 122 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> 123 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> 124 </label> 125 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1"> 126 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg> 127 </button> 128 </form> 129 <div class="md-search__output"> 130 <div class="md-search__scrollwrap" data-md-scrollfix> 131 <div class="md-search-result" data-md-component="search-result"> 132 <div class="md-search-result__meta"> 133 Initializing search 134 </div> 135 <ol class="md-search-result__list"></ol> 136 </div> 137 </div> 138 </div> 139 </div> 140</div> 141 142 143 </nav> 144</header> 145 146 <div class="md-container" data-md-component="container"> 147 148 149 150 151 <main class="md-main" data-md-component="main"> 152 <div class="md-main__inner md-grid"> 153 154 155 156 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > 157 <div class="md-sidebar__scrollwrap"> 158 <div class="md-sidebar__inner"> 159 160 161 162<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> 163 <label class="md-nav__title" for="__drawer"> 164 <a href="index.html" title="FreeType-2.12.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.1 API Reference" data-md-component="logo"> 165 166 <img src="images/favico.ico" alt="logo"> 167 168 </a> 169 FreeType-2.12.1 API Reference 170 </label> 171 172 <ul class="md-nav__list" data-md-scrollfix> 173 174 175 176 177 178 179 180 181 <li class="md-nav__item"> 182 <a href="index.html" class="md-nav__link"> 183 TOC 184 </a> 185 </li> 186 187 188 189 190 191 192 193 194 195 196 <li class="md-nav__item"> 197 <a href="ft2-index.html" class="md-nav__link"> 198 Index 199 </a> 200 </li> 201 202 203 204 205 206 207 208 209 210 211 212 <li class="md-nav__item md-nav__item--nested"> 213 214 215 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" > 216 217 <label class="md-nav__link" for="__nav_3"> 218 General Remarks 219 <span class="md-nav__icon md-icon"></span> 220 </label> 221 <nav class="md-nav" aria-label="General Remarks" data-md-level="1"> 222 <label class="md-nav__title" for="__nav_3"> 223 <span class="md-nav__icon md-icon"></span> 224 General Remarks 225 </label> 226 <ul class="md-nav__list" data-md-scrollfix> 227 228 229 230 231 232 <li class="md-nav__item"> 233 <a href="ft2-preamble.html" class="md-nav__link"> 234 Preamble 235 </a> 236 </li> 237 238 239 240 241 242 243 244 <li class="md-nav__item"> 245 <a href="ft2-header_inclusion.html" class="md-nav__link"> 246 FreeType's header inclusion scheme 247 </a> 248 </li> 249 250 251 252 253 254 255 256 <li class="md-nav__item"> 257 <a href="ft2-user_allocation.html" class="md-nav__link"> 258 User allocation 259 </a> 260 </li> 261 262 263 264 </ul> 265 </nav> 266 </li> 267 268 269 270 271 272 273 274 275 276 277 278 <li class="md-nav__item md-nav__item--nested"> 279 280 281 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" > 282 283 <label class="md-nav__link" for="__nav_4"> 284 Core API 285 <span class="md-nav__icon md-icon"></span> 286 </label> 287 <nav class="md-nav" aria-label="Core API" data-md-level="1"> 288 <label class="md-nav__title" for="__nav_4"> 289 <span class="md-nav__icon md-icon"></span> 290 Core API 291 </label> 292 <ul class="md-nav__list" data-md-scrollfix> 293 294 295 296 297 298 <li class="md-nav__item"> 299 <a href="ft2-version.html" class="md-nav__link"> 300 FreeType Version 301 </a> 302 </li> 303 304 305 306 307 308 309 310 <li class="md-nav__item"> 311 <a href="ft2-basic_types.html" class="md-nav__link"> 312 Basic Data Types 313 </a> 314 </li> 315 316 317 318 319 320 321 322 <li class="md-nav__item"> 323 <a href="ft2-base_interface.html" class="md-nav__link"> 324 Base Interface 325 </a> 326 </li> 327 328 329 330 331 332 333 334 <li class="md-nav__item"> 335 <a href="ft2-glyph_variants.html" class="md-nav__link"> 336 Unicode Variation Sequences 337 </a> 338 </li> 339 340 341 342 343 344 345 346 <li class="md-nav__item"> 347 <a href="ft2-color_management.html" class="md-nav__link"> 348 Glyph Color Management 349 </a> 350 </li> 351 352 353 354 355 356 357 358 <li class="md-nav__item"> 359 <a href="ft2-layer_management.html" class="md-nav__link"> 360 Glyph Layer Management 361 </a> 362 </li> 363 364 365 366 367 368 369 370 <li class="md-nav__item"> 371 <a href="ft2-glyph_management.html" class="md-nav__link"> 372 Glyph Management 373 </a> 374 </li> 375 376 377 378 379 380 381 382 <li class="md-nav__item"> 383 <a href="ft2-mac_specific.html" class="md-nav__link"> 384 Mac Specific Interface 385 </a> 386 </li> 387 388 389 390 391 392 393 394 <li class="md-nav__item"> 395 <a href="ft2-sizes_management.html" class="md-nav__link"> 396 Size Management 397 </a> 398 </li> 399 400 401 402 403 404 405 406 <li class="md-nav__item"> 407 <a href="ft2-header_file_macros.html" class="md-nav__link"> 408 Header File Macros 409 </a> 410 </li> 411 412 413 414 </ul> 415 </nav> 416 </li> 417 418 419 420 421 422 423 424 425 426 427 428 <li class="md-nav__item md-nav__item--nested"> 429 430 431 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" > 432 433 <label class="md-nav__link" for="__nav_5"> 434 Format-Specific API 435 <span class="md-nav__icon md-icon"></span> 436 </label> 437 <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1"> 438 <label class="md-nav__title" for="__nav_5"> 439 <span class="md-nav__icon md-icon"></span> 440 Format-Specific API 441 </label> 442 <ul class="md-nav__list" data-md-scrollfix> 443 444 445 446 447 448 <li class="md-nav__item"> 449 <a href="ft2-multiple_masters.html" class="md-nav__link"> 450 Multiple Masters 451 </a> 452 </li> 453 454 455 456 457 458 459 460 <li class="md-nav__item"> 461 <a href="ft2-truetype_tables.html" class="md-nav__link"> 462 TrueType Tables 463 </a> 464 </li> 465 466 467 468 469 470 471 472 <li class="md-nav__item"> 473 <a href="ft2-type1_tables.html" class="md-nav__link"> 474 Type 1 Tables 475 </a> 476 </li> 477 478 479 480 481 482 483 484 <li class="md-nav__item"> 485 <a href="ft2-sfnt_names.html" class="md-nav__link"> 486 SFNT Names 487 </a> 488 </li> 489 490 491 492 493 494 495 496 <li class="md-nav__item"> 497 <a href="ft2-bdf_fonts.html" class="md-nav__link"> 498 BDF and PCF Files 499 </a> 500 </li> 501 502 503 504 505 506 507 508 <li class="md-nav__item"> 509 <a href="ft2-cid_fonts.html" class="md-nav__link"> 510 CID Fonts 511 </a> 512 </li> 513 514 515 516 517 518 519 520 <li class="md-nav__item"> 521 <a href="ft2-pfr_fonts.html" class="md-nav__link"> 522 PFR Fonts 523 </a> 524 </li> 525 526 527 528 529 530 531 532 <li class="md-nav__item"> 533 <a href="ft2-winfnt_fonts.html" class="md-nav__link"> 534 Window FNT Files 535 </a> 536 </li> 537 538 539 540 541 542 543 544 <li class="md-nav__item"> 545 <a href="ft2-svg_fonts.html" class="md-nav__link"> 546 OpenType SVG Fonts 547 </a> 548 </li> 549 550 551 552 553 554 555 556 <li class="md-nav__item"> 557 <a href="ft2-font_formats.html" class="md-nav__link"> 558 Font Formats 559 </a> 560 </li> 561 562 563 564 565 566 567 568 <li class="md-nav__item"> 569 <a href="ft2-gasp_table.html" class="md-nav__link"> 570 Gasp Table 571 </a> 572 </li> 573 574 575 576 </ul> 577 </nav> 578 </li> 579 580 581 582 583 584 585 586 587 588 589 590 <li class="md-nav__item md-nav__item--nested"> 591 592 593 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" > 594 595 <label class="md-nav__link" for="__nav_6"> 596 Controlling FreeType Modules 597 <span class="md-nav__icon md-icon"></span> 598 </label> 599 <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1"> 600 <label class="md-nav__title" for="__nav_6"> 601 <span class="md-nav__icon md-icon"></span> 602 Controlling FreeType Modules 603 </label> 604 <ul class="md-nav__list" data-md-scrollfix> 605 606 607 608 609 610 <li class="md-nav__item"> 611 <a href="ft2-auto_hinter.html" class="md-nav__link"> 612 The auto-hinter 613 </a> 614 </li> 615 616 617 618 619 620 621 622 <li class="md-nav__item"> 623 <a href="ft2-cff_driver.html" class="md-nav__link"> 624 The CFF driver 625 </a> 626 </li> 627 628 629 630 631 632 633 634 <li class="md-nav__item"> 635 <a href="ft2-t1_cid_driver.html" class="md-nav__link"> 636 The Type 1 and CID drivers 637 </a> 638 </li> 639 640 641 642 643 644 645 646 <li class="md-nav__item"> 647 <a href="ft2-tt_driver.html" class="md-nav__link"> 648 The TrueType driver 649 </a> 650 </li> 651 652 653 654 655 656 657 658 <li class="md-nav__item"> 659 <a href="ft2-pcf_driver.html" class="md-nav__link"> 660 The PCF driver 661 </a> 662 </li> 663 664 665 666 667 668 669 670 <li class="md-nav__item"> 671 <a href="ft2-ot_svg_driver.html" class="md-nav__link"> 672 The SVG driver 673 </a> 674 </li> 675 676 677 678 679 680 681 682 <li class="md-nav__item"> 683 <a href="ft2-properties.html" class="md-nav__link"> 684 Driver properties 685 </a> 686 </li> 687 688 689 690 691 692 693 694 <li class="md-nav__item"> 695 <a href="ft2-parameter_tags.html" class="md-nav__link"> 696 Parameter Tags 697 </a> 698 </li> 699 700 701 702 703 704 705 706 <li class="md-nav__item"> 707 <a href="ft2-lcd_rendering.html" class="md-nav__link"> 708 Subpixel Rendering 709 </a> 710 </li> 711 712 713 714 </ul> 715 </nav> 716 </li> 717 718 719 720 721 722 723 724 725 726 727 728 <li class="md-nav__item md-nav__item--nested"> 729 730 731 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" > 732 733 <label class="md-nav__link" for="__nav_7"> 734 Cache Sub-System 735 <span class="md-nav__icon md-icon"></span> 736 </label> 737 <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1"> 738 <label class="md-nav__title" for="__nav_7"> 739 <span class="md-nav__icon md-icon"></span> 740 Cache Sub-System 741 </label> 742 <ul class="md-nav__list" data-md-scrollfix> 743 744 745 746 747 748 <li class="md-nav__item"> 749 <a href="ft2-cache_subsystem.html" class="md-nav__link"> 750 Cache Sub-System 751 </a> 752 </li> 753 754 755 756 </ul> 757 </nav> 758 </li> 759 760 761 762 763 764 765 766 767 768 769 770 771 772 <li class="md-nav__item md-nav__item--active md-nav__item--nested"> 773 774 775 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" checked> 776 777 <label class="md-nav__link" for="__nav_8"> 778 Support API 779 <span class="md-nav__icon md-icon"></span> 780 </label> 781 <nav class="md-nav" aria-label="Support API" data-md-level="1"> 782 <label class="md-nav__title" for="__nav_8"> 783 <span class="md-nav__icon md-icon"></span> 784 Support API 785 </label> 786 <ul class="md-nav__list" data-md-scrollfix> 787 788 789 790 791 792 <li class="md-nav__item"> 793 <a href="ft2-computations.html" class="md-nav__link"> 794 Computations 795 </a> 796 </li> 797 798 799 800 801 802 803 804 <li class="md-nav__item"> 805 <a href="ft2-list_processing.html" class="md-nav__link"> 806 List Processing 807 </a> 808 </li> 809 810 811 812 813 814 815 816 <li class="md-nav__item"> 817 <a href="ft2-outline_processing.html" class="md-nav__link"> 818 Outline Processing 819 </a> 820 </li> 821 822 823 824 825 826 827 828 <li class="md-nav__item"> 829 <a href="ft2-quick_advance.html" class="md-nav__link"> 830 Quick retrieval of advance values 831 </a> 832 </li> 833 834 835 836 837 838 839 840 <li class="md-nav__item"> 841 <a href="ft2-bitmap_handling.html" class="md-nav__link"> 842 Bitmap Handling 843 </a> 844 </li> 845 846 847 848 849 850 851 852 <li class="md-nav__item"> 853 <a href="ft2-raster.html" class="md-nav__link"> 854 Scanline Converter 855 </a> 856 </li> 857 858 859 860 861 862 863 864 <li class="md-nav__item"> 865 <a href="ft2-glyph_stroker.html" class="md-nav__link"> 866 Glyph Stroker 867 </a> 868 </li> 869 870 871 872 873 874 875 876 <li class="md-nav__item"> 877 <a href="ft2-system_interface.html" class="md-nav__link"> 878 System Interface 879 </a> 880 </li> 881 882 883 884 885 886 887 888 889 890 <li class="md-nav__item md-nav__item--active"> 891 892 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 893 894 895 896 897 898 <label class="md-nav__link md-nav__link--active" for="__toc"> 899 Module Management 900 <span class="md-nav__icon md-icon"></span> 901 </label> 902 903 <a href="ft2-module_management.html" class="md-nav__link md-nav__link--active"> 904 Module Management 905 </a> 906 907 908<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 909 910 911 912 913 914 915 <label class="md-nav__title" for="__toc"> 916 <span class="md-nav__icon md-icon"></span> 917 Table of contents 918 </label> 919 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 920 921 <li class="md-nav__item"> 922 <a href="#synopsis" class="md-nav__link"> 923 Synopsis 924 </a> 925 926</li> 927 928 <li class="md-nav__item"> 929 <a href="#ft_module" class="md-nav__link"> 930 FT_Module 931 </a> 932 933</li> 934 935 <li class="md-nav__item"> 936 <a href="#ft_module_constructor" class="md-nav__link"> 937 FT_Module_Constructor 938 </a> 939 940</li> 941 942 <li class="md-nav__item"> 943 <a href="#ft_module_destructor" class="md-nav__link"> 944 FT_Module_Destructor 945 </a> 946 947</li> 948 949 <li class="md-nav__item"> 950 <a href="#ft_module_requester" class="md-nav__link"> 951 FT_Module_Requester 952 </a> 953 954</li> 955 956 <li class="md-nav__item"> 957 <a href="#ft_module_class" class="md-nav__link"> 958 FT_Module_Class 959 </a> 960 961</li> 962 963 <li class="md-nav__item"> 964 <a href="#ft_add_module" class="md-nav__link"> 965 FT_Add_Module 966 </a> 967 968</li> 969 970 <li class="md-nav__item"> 971 <a href="#ft_get_module" class="md-nav__link"> 972 FT_Get_Module 973 </a> 974 975</li> 976 977 <li class="md-nav__item"> 978 <a href="#ft_remove_module" class="md-nav__link"> 979 FT_Remove_Module 980 </a> 981 982</li> 983 984 <li class="md-nav__item"> 985 <a href="#ft_add_default_modules" class="md-nav__link"> 986 FT_Add_Default_Modules 987 </a> 988 989</li> 990 991 <li class="md-nav__item"> 992 <a href="#ft_face_driver_name" class="md-nav__link"> 993 FT_FACE_DRIVER_NAME 994 </a> 995 996</li> 997 998 <li class="md-nav__item"> 999 <a href="#ft_property_set" class="md-nav__link"> 1000 FT_Property_Set 1001 </a> 1002 1003</li> 1004 1005 <li class="md-nav__item"> 1006 <a href="#ft_property_get" class="md-nav__link"> 1007 FT_Property_Get 1008 </a> 1009 1010</li> 1011 1012 <li class="md-nav__item"> 1013 <a href="#ft_set_default_properties" class="md-nav__link"> 1014 FT_Set_Default_Properties 1015 </a> 1016 1017</li> 1018 1019 <li class="md-nav__item"> 1020 <a href="#ft_new_library" class="md-nav__link"> 1021 FT_New_Library 1022 </a> 1023 1024</li> 1025 1026 <li class="md-nav__item"> 1027 <a href="#ft_done_library" class="md-nav__link"> 1028 FT_Done_Library 1029 </a> 1030 1031</li> 1032 1033 <li class="md-nav__item"> 1034 <a href="#ft_reference_library" class="md-nav__link"> 1035 FT_Reference_Library 1036 </a> 1037 1038</li> 1039 1040 <li class="md-nav__item"> 1041 <a href="#ft_renderer" class="md-nav__link"> 1042 FT_Renderer 1043 </a> 1044 1045</li> 1046 1047 <li class="md-nav__item"> 1048 <a href="#ft_renderer_class" class="md-nav__link"> 1049 FT_Renderer_Class 1050 </a> 1051 1052</li> 1053 1054 <li class="md-nav__item"> 1055 <a href="#ft_get_renderer" class="md-nav__link"> 1056 FT_Get_Renderer 1057 </a> 1058 1059</li> 1060 1061 <li class="md-nav__item"> 1062 <a href="#ft_set_renderer" class="md-nav__link"> 1063 FT_Set_Renderer 1064 </a> 1065 1066</li> 1067 1068 <li class="md-nav__item"> 1069 <a href="#ft_set_debug_hook" class="md-nav__link"> 1070 FT_Set_Debug_Hook 1071 </a> 1072 1073</li> 1074 1075 <li class="md-nav__item"> 1076 <a href="#ft_driver" class="md-nav__link"> 1077 FT_Driver 1078 </a> 1079 1080</li> 1081 1082 <li class="md-nav__item"> 1083 <a href="#ft_debughook_func" class="md-nav__link"> 1084 FT_DebugHook_Func 1085 </a> 1086 1087</li> 1088 1089 <li class="md-nav__item"> 1090 <a href="#ft_debug_hook_xxx" class="md-nav__link"> 1091 FT_DEBUG_HOOK_XXX 1092 </a> 1093 1094</li> 1095 1096 </ul> 1097 1098</nav> 1099 1100 </li> 1101 1102 1103 1104 1105 1106 1107 1108 <li class="md-nav__item"> 1109 <a href="ft2-gzip.html" class="md-nav__link"> 1110 GZIP Streams 1111 </a> 1112 </li> 1113 1114 1115 1116 1117 1118 1119 1120 <li class="md-nav__item"> 1121 <a href="ft2-lzw.html" class="md-nav__link"> 1122 LZW Streams 1123 </a> 1124 </li> 1125 1126 1127 1128 1129 1130 1131 1132 <li class="md-nav__item"> 1133 <a href="ft2-bzip2.html" class="md-nav__link"> 1134 BZIP2 Streams 1135 </a> 1136 </li> 1137 1138 1139 1140 1141 1142 1143 1144 <li class="md-nav__item"> 1145 <a href="ft2-debugging_apis.html" class="md-nav__link"> 1146 External Debugging APIs 1147 </a> 1148 </li> 1149 1150 1151 1152 </ul> 1153 </nav> 1154 </li> 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 <li class="md-nav__item md-nav__item--nested"> 1167 1168 1169 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" > 1170 1171 <label class="md-nav__link" for="__nav_9"> 1172 Error Codes 1173 <span class="md-nav__icon md-icon"></span> 1174 </label> 1175 <nav class="md-nav" aria-label="Error Codes" data-md-level="1"> 1176 <label class="md-nav__title" for="__nav_9"> 1177 <span class="md-nav__icon md-icon"></span> 1178 Error Codes 1179 </label> 1180 <ul class="md-nav__list" data-md-scrollfix> 1181 1182 1183 1184 1185 1186 <li class="md-nav__item"> 1187 <a href="ft2-error_enumerations.html" class="md-nav__link"> 1188 Error Enumerations 1189 </a> 1190 </li> 1191 1192 1193 1194 1195 1196 1197 1198 <li class="md-nav__item"> 1199 <a href="ft2-error_code_values.html" class="md-nav__link"> 1200 Error Code Values 1201 </a> 1202 </li> 1203 1204 1205 1206 </ul> 1207 </nav> 1208 </li> 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 <li class="md-nav__item md-nav__item--nested"> 1221 1222 1223 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" > 1224 1225 <label class="md-nav__link" for="__nav_10"> 1226 Miscellaneous 1227 <span class="md-nav__icon md-icon"></span> 1228 </label> 1229 <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1"> 1230 <label class="md-nav__title" for="__nav_10"> 1231 <span class="md-nav__icon md-icon"></span> 1232 Miscellaneous 1233 </label> 1234 <ul class="md-nav__list" data-md-scrollfix> 1235 1236 1237 1238 1239 1240 <li class="md-nav__item"> 1241 <a href="ft2-gx_validation.html" class="md-nav__link"> 1242 TrueTypeGX/AAT Validation 1243 </a> 1244 </li> 1245 1246 1247 1248 1249 1250 1251 1252 <li class="md-nav__item"> 1253 <a href="ft2-incremental.html" class="md-nav__link"> 1254 Incremental Loading 1255 </a> 1256 </li> 1257 1258 1259 1260 1261 1262 1263 1264 <li class="md-nav__item"> 1265 <a href="ft2-truetype_engine.html" class="md-nav__link"> 1266 The TrueType Engine 1267 </a> 1268 </li> 1269 1270 1271 1272 1273 1274 1275 1276 <li class="md-nav__item"> 1277 <a href="ft2-ot_validation.html" class="md-nav__link"> 1278 OpenType Validation 1279 </a> 1280 </li> 1281 1282 1283 1284 </ul> 1285 </nav> 1286 </li> 1287 1288 1289 1290 </ul> 1291</nav> 1292 </div> 1293 </div> 1294 </div> 1295 1296 1297 1298 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > 1299 <div class="md-sidebar__scrollwrap"> 1300 <div class="md-sidebar__inner"> 1301 1302<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 1303 1304 1305 1306 1307 1308 1309 <label class="md-nav__title" for="__toc"> 1310 <span class="md-nav__icon md-icon"></span> 1311 Table of contents 1312 </label> 1313 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 1314 1315 <li class="md-nav__item"> 1316 <a href="#synopsis" class="md-nav__link"> 1317 Synopsis 1318 </a> 1319 1320</li> 1321 1322 <li class="md-nav__item"> 1323 <a href="#ft_module" class="md-nav__link"> 1324 FT_Module 1325 </a> 1326 1327</li> 1328 1329 <li class="md-nav__item"> 1330 <a href="#ft_module_constructor" class="md-nav__link"> 1331 FT_Module_Constructor 1332 </a> 1333 1334</li> 1335 1336 <li class="md-nav__item"> 1337 <a href="#ft_module_destructor" class="md-nav__link"> 1338 FT_Module_Destructor 1339 </a> 1340 1341</li> 1342 1343 <li class="md-nav__item"> 1344 <a href="#ft_module_requester" class="md-nav__link"> 1345 FT_Module_Requester 1346 </a> 1347 1348</li> 1349 1350 <li class="md-nav__item"> 1351 <a href="#ft_module_class" class="md-nav__link"> 1352 FT_Module_Class 1353 </a> 1354 1355</li> 1356 1357 <li class="md-nav__item"> 1358 <a href="#ft_add_module" class="md-nav__link"> 1359 FT_Add_Module 1360 </a> 1361 1362</li> 1363 1364 <li class="md-nav__item"> 1365 <a href="#ft_get_module" class="md-nav__link"> 1366 FT_Get_Module 1367 </a> 1368 1369</li> 1370 1371 <li class="md-nav__item"> 1372 <a href="#ft_remove_module" class="md-nav__link"> 1373 FT_Remove_Module 1374 </a> 1375 1376</li> 1377 1378 <li class="md-nav__item"> 1379 <a href="#ft_add_default_modules" class="md-nav__link"> 1380 FT_Add_Default_Modules 1381 </a> 1382 1383</li> 1384 1385 <li class="md-nav__item"> 1386 <a href="#ft_face_driver_name" class="md-nav__link"> 1387 FT_FACE_DRIVER_NAME 1388 </a> 1389 1390</li> 1391 1392 <li class="md-nav__item"> 1393 <a href="#ft_property_set" class="md-nav__link"> 1394 FT_Property_Set 1395 </a> 1396 1397</li> 1398 1399 <li class="md-nav__item"> 1400 <a href="#ft_property_get" class="md-nav__link"> 1401 FT_Property_Get 1402 </a> 1403 1404</li> 1405 1406 <li class="md-nav__item"> 1407 <a href="#ft_set_default_properties" class="md-nav__link"> 1408 FT_Set_Default_Properties 1409 </a> 1410 1411</li> 1412 1413 <li class="md-nav__item"> 1414 <a href="#ft_new_library" class="md-nav__link"> 1415 FT_New_Library 1416 </a> 1417 1418</li> 1419 1420 <li class="md-nav__item"> 1421 <a href="#ft_done_library" class="md-nav__link"> 1422 FT_Done_Library 1423 </a> 1424 1425</li> 1426 1427 <li class="md-nav__item"> 1428 <a href="#ft_reference_library" class="md-nav__link"> 1429 FT_Reference_Library 1430 </a> 1431 1432</li> 1433 1434 <li class="md-nav__item"> 1435 <a href="#ft_renderer" class="md-nav__link"> 1436 FT_Renderer 1437 </a> 1438 1439</li> 1440 1441 <li class="md-nav__item"> 1442 <a href="#ft_renderer_class" class="md-nav__link"> 1443 FT_Renderer_Class 1444 </a> 1445 1446</li> 1447 1448 <li class="md-nav__item"> 1449 <a href="#ft_get_renderer" class="md-nav__link"> 1450 FT_Get_Renderer 1451 </a> 1452 1453</li> 1454 1455 <li class="md-nav__item"> 1456 <a href="#ft_set_renderer" class="md-nav__link"> 1457 FT_Set_Renderer 1458 </a> 1459 1460</li> 1461 1462 <li class="md-nav__item"> 1463 <a href="#ft_set_debug_hook" class="md-nav__link"> 1464 FT_Set_Debug_Hook 1465 </a> 1466 1467</li> 1468 1469 <li class="md-nav__item"> 1470 <a href="#ft_driver" class="md-nav__link"> 1471 FT_Driver 1472 </a> 1473 1474</li> 1475 1476 <li class="md-nav__item"> 1477 <a href="#ft_debughook_func" class="md-nav__link"> 1478 FT_DebugHook_Func 1479 </a> 1480 1481</li> 1482 1483 <li class="md-nav__item"> 1484 <a href="#ft_debug_hook_xxx" class="md-nav__link"> 1485 FT_DEBUG_HOOK_XXX 1486 </a> 1487 1488</li> 1489 1490 </ul> 1491 1492</nav> 1493 </div> 1494 </div> 1495 </div> 1496 1497 1498 <div class="md-content" data-md-component="content"> 1499 <article class="md-content__inner md-typeset"> 1500 1501 1502 1503 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » Module Management</p> 1504<hr /> 1505<h1 id="module-management">Module Management<a class="headerlink" href="#module-management" title="Permanent link">¶</a></h1> 1506<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> 1507<p>The definitions below are used to manage modules within FreeType. Internal and external modules can be added, upgraded, and removed at runtime. For example, an alternative renderer or proprietary font driver can be registered and prioritized. Additionally, some module properties can also be controlled.</p> 1508<p>Here is a list of existing values of the <code>module_name</code> field in the <code><a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a></code> structure. 1509<div class="highlight"><pre><span></span><code> autofitter 1510 bdf 1511 cff 1512 gxvalid 1513 otvalid 1514 pcf 1515 pfr 1516 psaux 1517 pshinter 1518 psnames 1519 raster1 1520 sfnt 1521 smooth 1522 truetype 1523 type1 1524 type42 1525 t1cid 1526 winfonts 1527</code></pre></div></p> 1528<p>Note that the FreeType Cache sub-system is not a FreeType module.</p> 1529<h2 id="ft_module">FT_Module<a class="headerlink" href="#ft_module" title="Permanent link">¶</a></h2> 1530<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> 1531<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ModuleRec_* <b>FT_Module</b>; 1532</code></pre></div> 1533 1534<p>A handle to a given FreeType module object. A module can be a font driver, a renderer, or anything else that provides services to the former.</p> 1535<hr> 1536 1537<h2 id="ft_module_constructor">FT_Module_Constructor<a class="headerlink" href="#ft_module_constructor" title="Permanent link">¶</a></h2> 1538<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1539<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> 1540 (*<b>FT_Module_Constructor</b>)( <a href="ft2-module_management.html#ft_module">FT_Module</a> module ); 1541</code></pre></div> 1542 1543<p>A function used to initialize (not create) a new module object.</p> 1544<h4>input</h4> 1545<table class="fields"> 1546<tr><td class="val" id="module">module</td><td class="desc"> 1547<p>The module to initialize.</p> 1548</td></tr> 1549</table> 1550 1551<hr> 1552 1553<h2 id="ft_module_destructor">FT_Module_Destructor<a class="headerlink" href="#ft_module_destructor" title="Permanent link">¶</a></h2> 1554<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1555<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1556 (*<b>FT_Module_Destructor</b>)( <a href="ft2-module_management.html#ft_module">FT_Module</a> module ); 1557</code></pre></div> 1558 1559<p>A function used to finalize (not destroy) a given module object.</p> 1560<h4>input</h4> 1561<table class="fields"> 1562<tr><td class="val" id="module">module</td><td class="desc"> 1563<p>The module to finalize.</p> 1564</td></tr> 1565</table> 1566 1567<hr> 1568 1569<h2 id="ft_module_requester">FT_Module_Requester<a class="headerlink" href="#ft_module_requester" title="Permanent link">¶</a></h2> 1570<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1571<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> FT_Module_Interface 1572 (*<b>FT_Module_Requester</b>)( <a href="ft2-module_management.html#ft_module">FT_Module</a> module, 1573 <span class="keyword">const</span> <span class="keyword">char</span>* name ); 1574</code></pre></div> 1575 1576<p>A function used to query a given module for a specific interface.</p> 1577<h4>input</h4> 1578<table class="fields"> 1579<tr><td class="val" id="module">module</td><td class="desc"> 1580<p>The module to be searched.</p> 1581</td></tr> 1582<tr><td class="val" id="name">name</td><td class="desc"> 1583<p>The name of the interface in the module.</p> 1584</td></tr> 1585</table> 1586 1587<hr> 1588 1589<h2 id="ft_module_class">FT_Module_Class<a class="headerlink" href="#ft_module_class" title="Permanent link">¶</a></h2> 1590<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1591<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Module_Class_ 1592 { 1593 <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a> module_flags; 1594 <a href="ft2-basic_types.html#ft_long">FT_Long</a> module_size; 1595 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_string">FT_String</a>* module_name; 1596 <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> module_version; 1597 <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> module_requires; 1598 1599 <span class="keyword">const</span> <span class="keyword">void</span>* module_interface; 1600 1601 <a href="ft2-module_management.html#ft_module_constructor">FT_Module_Constructor</a> module_init; 1602 <a href="ft2-module_management.html#ft_module_destructor">FT_Module_Destructor</a> module_done; 1603 <a href="ft2-module_management.html#ft_module_requester">FT_Module_Requester</a> get_interface; 1604 1605 } <b>FT_Module_Class</b>; 1606</code></pre></div> 1607 1608<p>The module class descriptor. While being a public structure necessary for FreeType's module bookkeeping, most of the fields are essentially internal, not to be used directly by an application.</p> 1609<h4>fields</h4> 1610<table class="fields"> 1611<tr><td class="val" id="module_flags">module_flags</td><td class="desc"> 1612<p>Bit flags describing the module.</p> 1613</td></tr> 1614<tr><td class="val" id="module_size">module_size</td><td class="desc"> 1615<p>The size of one module object/instance in bytes.</p> 1616</td></tr> 1617<tr><td class="val" id="module_name">module_name</td><td class="desc"> 1618<p>The name of the module.</p> 1619</td></tr> 1620<tr><td class="val" id="module_version">module_version</td><td class="desc"> 1621<p>The version, as a 16.16 fixed number (major.minor).</p> 1622</td></tr> 1623<tr><td class="val" id="module_requires">module_requires</td><td class="desc"> 1624<p>The version of FreeType this module requires, as a 16.16 fixed number (major.minor). Starts at version 2.0, i.e., 0x20000.</p> 1625</td></tr> 1626<tr><td class="val" id="module_interface">module_interface</td><td class="desc"> 1627<p>A typeless pointer to a structure (which varies between different modules) that holds the module's interface functions. This is essentially what <code>get_interface</code> returns.</p> 1628</td></tr> 1629<tr><td class="val" id="module_init">module_init</td><td class="desc"> 1630<p>The initializing function.</p> 1631</td></tr> 1632<tr><td class="val" id="module_done">module_done</td><td class="desc"> 1633<p>The finalizing function.</p> 1634</td></tr> 1635<tr><td class="val" id="get_interface">get_interface</td><td class="desc"> 1636<p>The interface requesting function.</p> 1637</td></tr> 1638</table> 1639 1640<hr> 1641 1642<h2 id="ft_add_module">FT_Add_Module<a class="headerlink" href="#ft_add_module" title="Permanent link">¶</a></h2> 1643<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1644<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1645 <b>FT_Add_Module</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 1646 <span class="keyword">const</span> <a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a>* clazz ); 1647</code></pre></div> 1648 1649<p>Add a new module to a given library instance.</p> 1650<h4>inout</h4> 1651<table class="fields"> 1652<tr><td class="val" id="library">library</td><td class="desc"> 1653<p>A handle to the library object.</p> 1654</td></tr> 1655</table> 1656 1657<h4>input</h4> 1658<table class="fields"> 1659<tr><td class="val" id="clazz">clazz</td><td class="desc"> 1660<p>A pointer to class descriptor for the module.</p> 1661</td></tr> 1662</table> 1663 1664<h4>return</h4> 1665 1666<p>FreeType error code. 0 means success.</p> 1667<h4>note</h4> 1668 1669<p>An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.</p> 1670<hr> 1671 1672<h2 id="ft_get_module">FT_Get_Module<a class="headerlink" href="#ft_get_module" title="Permanent link">¶</a></h2> 1673<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1674<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-module_management.html#ft_module">FT_Module</a> ) 1675 <b>FT_Get_Module</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 1676 <span class="keyword">const</span> <span class="keyword">char</span>* module_name ); 1677</code></pre></div> 1678 1679<p>Find a module by its name.</p> 1680<h4>input</h4> 1681<table class="fields"> 1682<tr><td class="val" id="library">library</td><td class="desc"> 1683<p>A handle to the library object.</p> 1684</td></tr> 1685<tr><td class="val" id="module_name">module_name</td><td class="desc"> 1686<p>The module's name (as an ASCII string).</p> 1687</td></tr> 1688</table> 1689 1690<h4>return</h4> 1691 1692<p>A module handle. 0 if none was found.</p> 1693<h4>note</h4> 1694 1695<p>FreeType's internal modules aren't documented very well, and you should look up the source code for details.</p> 1696<hr> 1697 1698<h2 id="ft_remove_module">FT_Remove_Module<a class="headerlink" href="#ft_remove_module" title="Permanent link">¶</a></h2> 1699<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1700<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1701 <b>FT_Remove_Module</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 1702 <a href="ft2-module_management.html#ft_module">FT_Module</a> module ); 1703</code></pre></div> 1704 1705<p>Remove a given module from a library instance.</p> 1706<h4>inout</h4> 1707<table class="fields"> 1708<tr><td class="val" id="library">library</td><td class="desc"> 1709<p>A handle to a library object.</p> 1710</td></tr> 1711</table> 1712 1713<h4>input</h4> 1714<table class="fields"> 1715<tr><td class="val" id="module">module</td><td class="desc"> 1716<p>A handle to a module object.</p> 1717</td></tr> 1718</table> 1719 1720<h4>return</h4> 1721 1722<p>FreeType error code. 0 means success.</p> 1723<h4>note</h4> 1724 1725<p>The module object is destroyed by the function in case of success.</p> 1726<hr> 1727 1728<h2 id="ft_add_default_modules">FT_Add_Default_Modules<a class="headerlink" href="#ft_add_default_modules" title="Permanent link">¶</a></h2> 1729<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1730<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1731 <b>FT_Add_Default_Modules</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library ); 1732</code></pre></div> 1733 1734<p>Add the set of default drivers to a given library object. This is only useful when you create a library object with <code><a href="ft2-module_management.html#ft_new_library">FT_New_Library</a></code> (usually to plug a custom memory manager).</p> 1735<h4>inout</h4> 1736<table class="fields"> 1737<tr><td class="val" id="library">library</td><td class="desc"> 1738<p>A handle to a new library object.</p> 1739</td></tr> 1740</table> 1741 1742<hr> 1743 1744<h2 id="ft_face_driver_name">FT_FACE_DRIVER_NAME<a class="headerlink" href="#ft_face_driver_name" title="Permanent link">¶</a></h2> 1745<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1746<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_FACE_DRIVER_NAME</b>( face ) \ 1747 ( ( *FT_REINTERPRET_CAST( <a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a>**, \ 1748 ( face )->driver ) )->module_name ) 1749</code></pre></div> 1750 1751<p>A macro that retrieves the name of a font driver from a face object.</p> 1752<h4>note</h4> 1753 1754<p>The font driver name is a valid <code>module_name</code> for <code><a href="ft2-module_management.html#ft_property_set">FT_Property_Set</a></code> and <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code>. This is not the same as <code><a href="ft2-font_formats.html#ft_get_font_format">FT_Get_Font_Format</a></code>.</p> 1755<h4>since</h4> 1756 1757<p>2.11</p> 1758<hr> 1759 1760<h2 id="ft_property_set">FT_Property_Set<a class="headerlink" href="#ft_property_set" title="Permanent link">¶</a></h2> 1761<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1762<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1763 <b>FT_Property_Set</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 1764 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_string">FT_String</a>* module_name, 1765 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_string">FT_String</a>* property_name, 1766 <span class="keyword">const</span> <span class="keyword">void</span>* value ); 1767</code></pre></div> 1768 1769<p>Set a property for a given module.</p> 1770<h4>input</h4> 1771<table class="fields"> 1772<tr><td class="val" id="library">library</td><td class="desc"> 1773<p>A handle to the library the module is part of.</p> 1774</td></tr> 1775<tr><td class="val" id="module_name">module_name</td><td class="desc"> 1776<p>The module name.</p> 1777</td></tr> 1778<tr><td class="val" id="property_name">property_name</td><td class="desc"> 1779<p>The property name. Properties are described in section ‘<a href="ft2-properties.html#properties">Driver properties</a>’.</p> 1780<p>Note that only a few modules have properties.</p> 1781</td></tr> 1782<tr><td class="val" id="value">value</td><td class="desc"> 1783<p>A generic pointer to a variable or structure that gives the new value of the property. The exact definition of <code>value</code> is dependent on the property; see section ‘<a href="ft2-properties.html#properties">Driver properties</a>’.</p> 1784</td></tr> 1785</table> 1786 1787<h4>return</h4> 1788 1789<p>FreeType error code. 0 means success.</p> 1790<h4>note</h4> 1791 1792<p>If <code>module_name</code> isn't a valid module name, or <code>property_name</code> doesn't specify a valid property, or if <code>value</code> doesn't represent a valid value for the given property, an error is returned.</p> 1793<p>The following example sets property ‘bar’ (a simple integer) in module ‘foo’ to value 1. 1794<div class="highlight"><pre><span></span><code> FT_UInt bar; 1795 1796 1797 bar = 1; 1798 FT_Property_Set( library, "foo", "bar", &bar ); 1799</code></pre></div></p> 1800<p>Note that the FreeType Cache sub-system doesn't recognize module property changes. To avoid glyph lookup confusion within the cache you should call <code><a href="ft2-cache_subsystem.html#ftc_manager_reset">FTC_Manager_Reset</a></code> to completely flush the cache if a module property gets changed after <code><a href="ft2-cache_subsystem.html#ftc_manager_new">FTC_Manager_New</a></code> has been called.</p> 1801<p>It is not possible to set properties of the FreeType Cache sub-system itself with FT_Property_Set; use ?FTC_Property_Set? instead.</p> 1802<h4>since</h4> 1803 1804<p>2.4.11</p> 1805<hr> 1806 1807<h2 id="ft_property_get">FT_Property_Get<a class="headerlink" href="#ft_property_get" title="Permanent link">¶</a></h2> 1808<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1809<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1810 <b>FT_Property_Get</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 1811 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_string">FT_String</a>* module_name, 1812 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_string">FT_String</a>* property_name, 1813 <span class="keyword">void</span>* value ); 1814</code></pre></div> 1815 1816<p>Get a module's property value.</p> 1817<h4>input</h4> 1818<table class="fields"> 1819<tr><td class="val" id="library">library</td><td class="desc"> 1820<p>A handle to the library the module is part of.</p> 1821</td></tr> 1822<tr><td class="val" id="module_name">module_name</td><td class="desc"> 1823<p>The module name.</p> 1824</td></tr> 1825<tr><td class="val" id="property_name">property_name</td><td class="desc"> 1826<p>The property name. Properties are described in section ‘<a href="ft2-properties.html#properties">Driver properties</a>’.</p> 1827</td></tr> 1828</table> 1829 1830<h4>inout</h4> 1831<table class="fields"> 1832<tr><td class="val" id="value">value</td><td class="desc"> 1833<p>A generic pointer to a variable or structure that gives the value of the property. The exact definition of <code>value</code> is dependent on the property; see section ‘<a href="ft2-properties.html#properties">Driver properties</a>’.</p> 1834</td></tr> 1835</table> 1836 1837<h4>return</h4> 1838 1839<p>FreeType error code. 0 means success.</p> 1840<h4>note</h4> 1841 1842<p>If <code>module_name</code> isn't a valid module name, or <code>property_name</code> doesn't specify a valid property, or if <code>value</code> doesn't represent a valid value for the given property, an error is returned.</p> 1843<p>The following example gets property ‘baz’ (a range) in module ‘foo’. 1844<div class="highlight"><pre><span></span><code> typedef range_ 1845 { 1846 FT_Int32 min; 1847 FT_Int32 max; 1848 1849 } range; 1850 1851 range baz; 1852 1853 1854 FT_Property_Get( library, "foo", "baz", &baz ); 1855</code></pre></div></p> 1856<p>It is not possible to retrieve properties of the FreeType Cache sub-system with FT_Property_Get; use ?FTC_Property_Get? instead.</p> 1857<h4>since</h4> 1858 1859<p>2.4.11</p> 1860<hr> 1861 1862<h2 id="ft_set_default_properties">FT_Set_Default_Properties<a class="headerlink" href="#ft_set_default_properties" title="Permanent link">¶</a></h2> 1863<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1864<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1865 <b>FT_Set_Default_Properties</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library ); 1866</code></pre></div> 1867 1868<p>If compilation option <code>FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES</code> is set, this function reads the <code>FREETYPE_PROPERTIES</code> environment variable to control driver properties. See section ‘<a href="ft2-properties.html#properties">Driver properties</a>’ for more.</p> 1869<p>If the compilation option is not set, this function does nothing.</p> 1870<p><code>FREETYPE_PROPERTIES</code> has the following syntax form (broken here into multiple lines for better readability). 1871<div class="highlight"><pre><span></span><code> <optional whitespace> 1872 <module-name1> ':' 1873 <property-name1> '=' <property-value1> 1874 <whitespace> 1875 <module-name2> ':' 1876 <property-name2> '=' <property-value2> 1877 ... 1878</code></pre></div></p> 1879<p>Example: 1880<div class="highlight"><pre><span></span><code> FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ 1881 cff:no-stem-darkening=0 1882</code></pre></div></p> 1883<h4>inout</h4> 1884<table class="fields"> 1885<tr><td class="val" id="library">library</td><td class="desc"> 1886<p>A handle to a new library object.</p> 1887</td></tr> 1888</table> 1889 1890<h4>since</h4> 1891 1892<p>2.8</p> 1893<hr> 1894 1895<h2 id="ft_new_library">FT_New_Library<a class="headerlink" href="#ft_new_library" title="Permanent link">¶</a></h2> 1896<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1897<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1898 <b>FT_New_Library</b>( <a href="ft2-system_interface.html#ft_memory">FT_Memory</a> memory, 1899 <a href="ft2-base_interface.html#ft_library">FT_Library</a> *alibrary ); 1900</code></pre></div> 1901 1902<p>This function is used to create a new FreeType library instance from a given memory object. It is thus possible to use libraries with distinct memory allocators within the same program. Note, however, that the used <code><a href="ft2-system_interface.html#ft_memory">FT_Memory</a></code> structure is expected to remain valid for the life of the <code><a href="ft2-base_interface.html#ft_library">FT_Library</a></code> object.</p> 1903<p>Normally, you would call this function (followed by a call to <code><a href="ft2-module_management.html#ft_add_default_modules">FT_Add_Default_Modules</a></code> or a series of calls to <code><a href="ft2-module_management.html#ft_add_module">FT_Add_Module</a></code>, and a call to <code><a href="ft2-module_management.html#ft_set_default_properties">FT_Set_Default_Properties</a></code>) instead of <code><a href="ft2-base_interface.html#ft_init_freetype">FT_Init_FreeType</a></code> to initialize the FreeType library.</p> 1904<p>Don't use <code><a href="ft2-base_interface.html#ft_done_freetype">FT_Done_FreeType</a></code> but <code><a href="ft2-module_management.html#ft_done_library">FT_Done_Library</a></code> to destroy a library instance.</p> 1905<h4>input</h4> 1906<table class="fields"> 1907<tr><td class="val" id="memory">memory</td><td class="desc"> 1908<p>A handle to the original memory object.</p> 1909</td></tr> 1910</table> 1911 1912<h4>output</h4> 1913<table class="fields"> 1914<tr><td class="val" id="alibrary">alibrary</td><td class="desc"> 1915<p>A pointer to handle of a new library object.</p> 1916</td></tr> 1917</table> 1918 1919<h4>return</h4> 1920 1921<p>FreeType error code. 0 means success.</p> 1922<h4>note</h4> 1923 1924<p>See the discussion of reference counters in the description of <code><a href="ft2-module_management.html#ft_reference_library">FT_Reference_Library</a></code>.</p> 1925<hr> 1926 1927<h2 id="ft_done_library">FT_Done_Library<a class="headerlink" href="#ft_done_library" title="Permanent link">¶</a></h2> 1928<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1929<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1930 <b>FT_Done_Library</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library ); 1931</code></pre></div> 1932 1933<p>Discard a given library object. This closes all drivers and discards all resource objects.</p> 1934<h4>input</h4> 1935<table class="fields"> 1936<tr><td class="val" id="library">library</td><td class="desc"> 1937<p>A handle to the target library.</p> 1938</td></tr> 1939</table> 1940 1941<h4>return</h4> 1942 1943<p>FreeType error code. 0 means success.</p> 1944<h4>note</h4> 1945 1946<p>See the discussion of reference counters in the description of <code><a href="ft2-module_management.html#ft_reference_library">FT_Reference_Library</a></code>.</p> 1947<hr> 1948 1949<h2 id="ft_reference_library">FT_Reference_Library<a class="headerlink" href="#ft_reference_library" title="Permanent link">¶</a></h2> 1950<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 1951<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1952 <b>FT_Reference_Library</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library ); 1953</code></pre></div> 1954 1955<p>A counter gets initialized to 1 at the time an <code><a href="ft2-base_interface.html#ft_library">FT_Library</a></code> structure is created. This function increments the counter. <code><a href="ft2-module_management.html#ft_done_library">FT_Done_Library</a></code> then only destroys a library if the counter is 1, otherwise it simply decrements the counter.</p> 1956<p>This function helps in managing life-cycles of structures that reference <code><a href="ft2-base_interface.html#ft_library">FT_Library</a></code> objects.</p> 1957<h4>input</h4> 1958<table class="fields"> 1959<tr><td class="val" id="library">library</td><td class="desc"> 1960<p>A handle to a target library object.</p> 1961</td></tr> 1962</table> 1963 1964<h4>return</h4> 1965 1966<p>FreeType error code. 0 means success.</p> 1967<h4>since</h4> 1968 1969<p>2.4.2</p> 1970<hr> 1971 1972<h2 id="ft_renderer">FT_Renderer<a class="headerlink" href="#ft_renderer" title="Permanent link">¶</a></h2> 1973<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> 1974<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_RendererRec_* <b>FT_Renderer</b>; 1975</code></pre></div> 1976 1977<p>A handle to a given FreeType renderer. A renderer is a module in charge of converting a glyph's outline image to a bitmap. It supports a single glyph image format, and one or more target surface depths.</p> 1978<hr> 1979 1980<h2 id="ft_renderer_class">FT_Renderer_Class<a class="headerlink" href="#ft_renderer_class" title="Permanent link">¶</a></h2> 1981<p>Defined in FT_RENDER_H (freetype/ftrender.h).</p> 1982<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Renderer_Class_ 1983 { 1984 <a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a> root; 1985 1986 <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a> glyph_format; 1987 1988 FT_Renderer_RenderFunc render_glyph; 1989 FT_Renderer_TransformFunc transform_glyph; 1990 FT_Renderer_GetCBoxFunc get_glyph_cbox; 1991 FT_Renderer_SetModeFunc set_mode; 1992 1993 <a href="ft2-raster.html#ft_raster_funcs">FT_Raster_Funcs</a>* raster_class; 1994 1995 } <b>FT_Renderer_Class</b>; 1996</code></pre></div> 1997 1998<p>The renderer module class descriptor.</p> 1999<h4>fields</h4> 2000<table class="fields"> 2001<tr><td class="val" id="root">root</td><td class="desc"> 2002<p>The root <code><a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a></code> fields.</p> 2003</td></tr> 2004<tr><td class="val" id="glyph_format">glyph_format</td><td class="desc"> 2005<p>The glyph image format this renderer handles.</p> 2006</td></tr> 2007<tr><td class="val" id="render_glyph">render_glyph</td><td class="desc"> 2008<p>A method used to render the image that is in a given glyph slot into a bitmap.</p> 2009</td></tr> 2010<tr><td class="val" id="transform_glyph">transform_glyph</td><td class="desc"> 2011<p>A method used to transform the image that is in a given glyph slot.</p> 2012</td></tr> 2013<tr><td class="val" id="get_glyph_cbox">get_glyph_cbox</td><td class="desc"> 2014<p>A method used to access the glyph's cbox.</p> 2015</td></tr> 2016<tr><td class="val" id="set_mode">set_mode</td><td class="desc"> 2017<p>A method used to pass additional parameters.</p> 2018</td></tr> 2019<tr><td class="val" id="raster_class">raster_class</td><td class="desc"> 2020<p>For <code><a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_OUTLINE</a></code> renderers only. This is a pointer to its raster's class.</p> 2021</td></tr> 2022</table> 2023 2024<hr> 2025 2026<h2 id="ft_get_renderer">FT_Get_Renderer<a class="headerlink" href="#ft_get_renderer" title="Permanent link">¶</a></h2> 2027<p>Defined in FT_RENDER_H (freetype/ftrender.h).</p> 2028<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-module_management.html#ft_renderer">FT_Renderer</a> ) 2029 <b>FT_Get_Renderer</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 2030 <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a> format ); 2031</code></pre></div> 2032 2033<p>Retrieve the current renderer for a given glyph format.</p> 2034<h4>input</h4> 2035<table class="fields"> 2036<tr><td class="val" id="library">library</td><td class="desc"> 2037<p>A handle to the library object.</p> 2038</td></tr> 2039<tr><td class="val" id="format">format</td><td class="desc"> 2040<p>The glyph format.</p> 2041</td></tr> 2042</table> 2043 2044<h4>return</h4> 2045 2046<p>A renderer handle. 0 if none found.</p> 2047<h4>note</h4> 2048 2049<p>An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.</p> 2050<p>To add a new renderer, simply use <code><a href="ft2-module_management.html#ft_add_module">FT_Add_Module</a></code>. To retrieve a renderer by its name, use <code><a href="ft2-module_management.html#ft_get_module">FT_Get_Module</a></code>.</p> 2051<hr> 2052 2053<h2 id="ft_set_renderer">FT_Set_Renderer<a class="headerlink" href="#ft_set_renderer" title="Permanent link">¶</a></h2> 2054<p>Defined in FT_RENDER_H (freetype/ftrender.h).</p> 2055<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 2056 <b>FT_Set_Renderer</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 2057 <a href="ft2-module_management.html#ft_renderer">FT_Renderer</a> renderer, 2058 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> num_params, 2059 <a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a>* parameters ); 2060</code></pre></div> 2061 2062<p>Set the current renderer to use, and set additional mode.</p> 2063<h4>inout</h4> 2064<table class="fields"> 2065<tr><td class="val" id="library">library</td><td class="desc"> 2066<p>A handle to the library object.</p> 2067</td></tr> 2068</table> 2069 2070<h4>input</h4> 2071<table class="fields"> 2072<tr><td class="val" id="renderer">renderer</td><td class="desc"> 2073<p>A handle to the renderer object.</p> 2074</td></tr> 2075<tr><td class="val" id="num_params">num_params</td><td class="desc"> 2076<p>The number of additional parameters.</p> 2077</td></tr> 2078<tr><td class="val" id="parameters">parameters</td><td class="desc"> 2079<p>Additional parameters.</p> 2080</td></tr> 2081</table> 2082 2083<h4>return</h4> 2084 2085<p>FreeType error code. 0 means success.</p> 2086<h4>note</h4> 2087 2088<p>In case of success, the renderer will be used to convert glyph images in the renderer's known format into bitmaps.</p> 2089<p>This doesn't change the current renderer for other formats.</p> 2090<p>Currently, no FreeType renderer module uses <code>parameters</code>; you should thus always pass <code>NULL</code> as the value.</p> 2091<hr> 2092 2093<h2 id="ft_set_debug_hook">FT_Set_Debug_Hook<a class="headerlink" href="#ft_set_debug_hook" title="Permanent link">¶</a></h2> 2094<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 2095<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 2096 <b>FT_Set_Debug_Hook</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 2097 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> hook_index, 2098 <a href="ft2-module_management.html#ft_debughook_func">FT_DebugHook_Func</a> debug_hook ); 2099</code></pre></div> 2100 2101<p>Set a debug hook function for debugging the interpreter of a font format.</p> 2102<p>While this is a public API function, an application needs access to FreeType's internal header files to do something useful.</p> 2103<p>Have a look at the source code of the <code>ttdebug</code> FreeType demo program for an example of its usage.</p> 2104<h4>inout</h4> 2105<table class="fields"> 2106<tr><td class="val" id="library">library</td><td class="desc"> 2107<p>A handle to the library object.</p> 2108</td></tr> 2109</table> 2110 2111<h4>input</h4> 2112<table class="fields"> 2113<tr><td class="val" id="hook_index">hook_index</td><td class="desc"> 2114<p>The index of the debug hook. You should use defined enumeration macros like <code><a href="ft2-module_management.html#ft_debug_hook_xxx">FT_DEBUG_HOOK_TRUETYPE</a></code>.</p> 2115</td></tr> 2116<tr><td class="val" id="debug_hook">debug_hook</td><td class="desc"> 2117<p>The function used to debug the interpreter.</p> 2118</td></tr> 2119</table> 2120 2121<h4>note</h4> 2122 2123<p>Currently, four debug hook slots are available, but only one (for the TrueType interpreter) is defined.</p> 2124<hr> 2125 2126<h2 id="ft_driver">FT_Driver<a class="headerlink" href="#ft_driver" title="Permanent link">¶</a></h2> 2127<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> 2128<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_DriverRec_* <b>FT_Driver</b>; 2129</code></pre></div> 2130 2131<p>A handle to a given FreeType font driver object. A font driver is a module capable of creating faces from font files.</p> 2132<hr> 2133 2134<h2 id="ft_debughook_func">FT_DebugHook_Func<a class="headerlink" href="#ft_debughook_func" title="Permanent link">¶</a></h2> 2135<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 2136<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> 2137 (*<b>FT_DebugHook_Func</b>)( <span class="keyword">void</span>* arg ); 2138</code></pre></div> 2139 2140<p>A drop-in replacement (or rather a wrapper) for the bytecode or charstring interpreter's main loop function.</p> 2141<p>Its job is essentially</p> 2142<ul> 2143<li> 2144<p>to activate debug mode to enforce single-stepping,</p> 2145</li> 2146<li> 2147<p>to call the main loop function to interpret the next opcode, and</p> 2148</li> 2149<li> 2150<p>to show the changed context to the user.</p> 2151</li> 2152</ul> 2153<p>An example for such a main loop function is <code>TT_RunIns</code> (declared in FreeType's internal header file <code>src/truetype/ttinterp.h</code>).</p> 2154<p>Have a look at the source code of the <code>ttdebug</code> FreeType demo program for an example of a drop-in replacement.</p> 2155<h4>inout</h4> 2156<table class="fields"> 2157<tr><td class="val" id="arg">arg</td><td class="desc"> 2158<p>A typeless pointer, to be cast to the main loop function's data structure (which depends on the font module). For TrueType fonts it is bytecode interpreter's execution context, <code>TT_ExecContext</code>, which is declared in FreeType's internal header file <code>tttypes.h</code>.</p> 2159</td></tr> 2160</table> 2161 2162<hr> 2163 2164<h2 id="ft_debug_hook_xxx">FT_DEBUG_HOOK_XXX<a class="headerlink" href="#ft_debug_hook_xxx" title="Permanent link">¶</a></h2> 2165<p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p> 2166<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-module_management.html#ft_debug_hook_truetype">FT_DEBUG_HOOK_TRUETYPE</a> 0 2167</code></pre></div> 2168 2169<p>A list of named debug hook indices.</p> 2170<h4>values</h4> 2171<table class="fields"> 2172<tr><td class="val" id="ft_debug_hook_truetype">FT_DEBUG_HOOK_TRUETYPE</td><td class="desc"> 2173<p>This hook index identifies the TrueType bytecode debugger.</p> 2174</td></tr> 2175</table> 2176 2177<hr> 2178 2179 2180 2181 2182 2183 2184 2185 </article> 2186 </div> 2187 </div> 2188 2189 </main> 2190 2191 2192<footer class="md-footer"> 2193 2194 <nav class="md-footer__inner md-grid" aria-label="Footer"> 2195 2196 2197 <a href="ft2-system_interface.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: System Interface" rel="prev"> 2198 <div class="md-footer__button md-icon"> 2199 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> 2200 </div> 2201 <div class="md-footer__title"> 2202 <div class="md-ellipsis"> 2203 <span class="md-footer__direction"> 2204 Previous 2205 </span> 2206 System Interface 2207 </div> 2208 </div> 2209 </a> 2210 2211 2212 2213 <a href="ft2-gzip.html" class="md-footer__link md-footer__link--next" aria-label="Next: GZIP Streams" rel="next"> 2214 <div class="md-footer__title"> 2215 <div class="md-ellipsis"> 2216 <span class="md-footer__direction"> 2217 Next 2218 </span> 2219 GZIP Streams 2220 </div> 2221 </div> 2222 <div class="md-footer__button md-icon"> 2223 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> 2224 </div> 2225 </a> 2226 2227 </nav> 2228 2229 <div class="md-footer-meta md-typeset"> 2230 <div class="md-footer-meta__inner md-grid"> 2231 <div class="md-footer-copyright"> 2232 2233 <div class="md-footer-copyright__highlight"> 2234 Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. 2235 </div> 2236 2237 Made with 2238 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 2239 Material for MkDocs 2240 </a> 2241 2242 </div> 2243 2244 </div> 2245 </div> 2246</footer> 2247 2248 </div> 2249 <div class="md-dialog" data-md-component="dialog"> 2250 <div class="md-dialog__inner md-typeset"></div> 2251 </div> 2252 <script id="__config" type="application/json">{"base": ".", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "assets/javascripts/workers/search.477d984a.min.js", "version": null}</script> 2253 2254 2255 <script src="assets/javascripts/bundle.82b56eb2.min.js"></script> 2256 2257 <script src="javascripts/extra.js"></script> 2258 2259 2260 </body> 2261</html>