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>List Processing - 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="#list-processing" 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 List Processing 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 805 806 <li class="md-nav__item md-nav__item--active"> 807 808 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 809 810 811 812 813 814 <label class="md-nav__link md-nav__link--active" for="__toc"> 815 List Processing 816 <span class="md-nav__icon md-icon"></span> 817 </label> 818 819 <a href="ft2-list_processing.html" class="md-nav__link md-nav__link--active"> 820 List Processing 821 </a> 822 823 824<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 825 826 827 828 829 830 831 <label class="md-nav__title" for="__toc"> 832 <span class="md-nav__icon md-icon"></span> 833 Table of contents 834 </label> 835 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 836 837 <li class="md-nav__item"> 838 <a href="#synopsis" class="md-nav__link"> 839 Synopsis 840 </a> 841 842</li> 843 844 <li class="md-nav__item"> 845 <a href="#ft_list" class="md-nav__link"> 846 FT_List 847 </a> 848 849</li> 850 851 <li class="md-nav__item"> 852 <a href="#ft_listnode" class="md-nav__link"> 853 FT_ListNode 854 </a> 855 856</li> 857 858 <li class="md-nav__item"> 859 <a href="#ft_listrec" class="md-nav__link"> 860 FT_ListRec 861 </a> 862 863</li> 864 865 <li class="md-nav__item"> 866 <a href="#ft_listnoderec" class="md-nav__link"> 867 FT_ListNodeRec 868 </a> 869 870</li> 871 872 <li class="md-nav__item"> 873 <a href="#ft_list_add" class="md-nav__link"> 874 FT_List_Add 875 </a> 876 877</li> 878 879 <li class="md-nav__item"> 880 <a href="#ft_list_insert" class="md-nav__link"> 881 FT_List_Insert 882 </a> 883 884</li> 885 886 <li class="md-nav__item"> 887 <a href="#ft_list_find" class="md-nav__link"> 888 FT_List_Find 889 </a> 890 891</li> 892 893 <li class="md-nav__item"> 894 <a href="#ft_list_remove" class="md-nav__link"> 895 FT_List_Remove 896 </a> 897 898</li> 899 900 <li class="md-nav__item"> 901 <a href="#ft_list_up" class="md-nav__link"> 902 FT_List_Up 903 </a> 904 905</li> 906 907 <li class="md-nav__item"> 908 <a href="#ft_list_iterate" class="md-nav__link"> 909 FT_List_Iterate 910 </a> 911 912</li> 913 914 <li class="md-nav__item"> 915 <a href="#ft_list_iterator" class="md-nav__link"> 916 FT_List_Iterator 917 </a> 918 919</li> 920 921 <li class="md-nav__item"> 922 <a href="#ft_list_finalize" class="md-nav__link"> 923 FT_List_Finalize 924 </a> 925 926</li> 927 928 <li class="md-nav__item"> 929 <a href="#ft_list_destructor" class="md-nav__link"> 930 FT_List_Destructor 931 </a> 932 933</li> 934 935 </ul> 936 937</nav> 938 939 </li> 940 941 942 943 944 945 946 947 <li class="md-nav__item"> 948 <a href="ft2-outline_processing.html" class="md-nav__link"> 949 Outline Processing 950 </a> 951 </li> 952 953 954 955 956 957 958 959 <li class="md-nav__item"> 960 <a href="ft2-quick_advance.html" class="md-nav__link"> 961 Quick retrieval of advance values 962 </a> 963 </li> 964 965 966 967 968 969 970 971 <li class="md-nav__item"> 972 <a href="ft2-bitmap_handling.html" class="md-nav__link"> 973 Bitmap Handling 974 </a> 975 </li> 976 977 978 979 980 981 982 983 <li class="md-nav__item"> 984 <a href="ft2-raster.html" class="md-nav__link"> 985 Scanline Converter 986 </a> 987 </li> 988 989 990 991 992 993 994 995 <li class="md-nav__item"> 996 <a href="ft2-glyph_stroker.html" class="md-nav__link"> 997 Glyph Stroker 998 </a> 999 </li> 1000 1001 1002 1003 1004 1005 1006 1007 <li class="md-nav__item"> 1008 <a href="ft2-system_interface.html" class="md-nav__link"> 1009 System Interface 1010 </a> 1011 </li> 1012 1013 1014 1015 1016 1017 1018 1019 <li class="md-nav__item"> 1020 <a href="ft2-module_management.html" class="md-nav__link"> 1021 Module Management 1022 </a> 1023 </li> 1024 1025 1026 1027 1028 1029 1030 1031 <li class="md-nav__item"> 1032 <a href="ft2-gzip.html" class="md-nav__link"> 1033 GZIP Streams 1034 </a> 1035 </li> 1036 1037 1038 1039 1040 1041 1042 1043 <li class="md-nav__item"> 1044 <a href="ft2-lzw.html" class="md-nav__link"> 1045 LZW Streams 1046 </a> 1047 </li> 1048 1049 1050 1051 1052 1053 1054 1055 <li class="md-nav__item"> 1056 <a href="ft2-bzip2.html" class="md-nav__link"> 1057 BZIP2 Streams 1058 </a> 1059 </li> 1060 1061 1062 1063 1064 1065 1066 1067 <li class="md-nav__item"> 1068 <a href="ft2-debugging_apis.html" class="md-nav__link"> 1069 External Debugging APIs 1070 </a> 1071 </li> 1072 1073 1074 1075 </ul> 1076 </nav> 1077 </li> 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 <li class="md-nav__item md-nav__item--nested"> 1090 1091 1092 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" > 1093 1094 <label class="md-nav__link" for="__nav_9"> 1095 Error Codes 1096 <span class="md-nav__icon md-icon"></span> 1097 </label> 1098 <nav class="md-nav" aria-label="Error Codes" data-md-level="1"> 1099 <label class="md-nav__title" for="__nav_9"> 1100 <span class="md-nav__icon md-icon"></span> 1101 Error Codes 1102 </label> 1103 <ul class="md-nav__list" data-md-scrollfix> 1104 1105 1106 1107 1108 1109 <li class="md-nav__item"> 1110 <a href="ft2-error_enumerations.html" class="md-nav__link"> 1111 Error Enumerations 1112 </a> 1113 </li> 1114 1115 1116 1117 1118 1119 1120 1121 <li class="md-nav__item"> 1122 <a href="ft2-error_code_values.html" class="md-nav__link"> 1123 Error Code Values 1124 </a> 1125 </li> 1126 1127 1128 1129 </ul> 1130 </nav> 1131 </li> 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 <li class="md-nav__item md-nav__item--nested"> 1144 1145 1146 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" > 1147 1148 <label class="md-nav__link" for="__nav_10"> 1149 Miscellaneous 1150 <span class="md-nav__icon md-icon"></span> 1151 </label> 1152 <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1"> 1153 <label class="md-nav__title" for="__nav_10"> 1154 <span class="md-nav__icon md-icon"></span> 1155 Miscellaneous 1156 </label> 1157 <ul class="md-nav__list" data-md-scrollfix> 1158 1159 1160 1161 1162 1163 <li class="md-nav__item"> 1164 <a href="ft2-gx_validation.html" class="md-nav__link"> 1165 TrueTypeGX/AAT Validation 1166 </a> 1167 </li> 1168 1169 1170 1171 1172 1173 1174 1175 <li class="md-nav__item"> 1176 <a href="ft2-incremental.html" class="md-nav__link"> 1177 Incremental Loading 1178 </a> 1179 </li> 1180 1181 1182 1183 1184 1185 1186 1187 <li class="md-nav__item"> 1188 <a href="ft2-truetype_engine.html" class="md-nav__link"> 1189 The TrueType Engine 1190 </a> 1191 </li> 1192 1193 1194 1195 1196 1197 1198 1199 <li class="md-nav__item"> 1200 <a href="ft2-ot_validation.html" class="md-nav__link"> 1201 OpenType Validation 1202 </a> 1203 </li> 1204 1205 1206 1207 </ul> 1208 </nav> 1209 </li> 1210 1211 1212 1213 </ul> 1214</nav> 1215 </div> 1216 </div> 1217 </div> 1218 1219 1220 1221 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > 1222 <div class="md-sidebar__scrollwrap"> 1223 <div class="md-sidebar__inner"> 1224 1225<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 1226 1227 1228 1229 1230 1231 1232 <label class="md-nav__title" for="__toc"> 1233 <span class="md-nav__icon md-icon"></span> 1234 Table of contents 1235 </label> 1236 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> 1237 1238 <li class="md-nav__item"> 1239 <a href="#synopsis" class="md-nav__link"> 1240 Synopsis 1241 </a> 1242 1243</li> 1244 1245 <li class="md-nav__item"> 1246 <a href="#ft_list" class="md-nav__link"> 1247 FT_List 1248 </a> 1249 1250</li> 1251 1252 <li class="md-nav__item"> 1253 <a href="#ft_listnode" class="md-nav__link"> 1254 FT_ListNode 1255 </a> 1256 1257</li> 1258 1259 <li class="md-nav__item"> 1260 <a href="#ft_listrec" class="md-nav__link"> 1261 FT_ListRec 1262 </a> 1263 1264</li> 1265 1266 <li class="md-nav__item"> 1267 <a href="#ft_listnoderec" class="md-nav__link"> 1268 FT_ListNodeRec 1269 </a> 1270 1271</li> 1272 1273 <li class="md-nav__item"> 1274 <a href="#ft_list_add" class="md-nav__link"> 1275 FT_List_Add 1276 </a> 1277 1278</li> 1279 1280 <li class="md-nav__item"> 1281 <a href="#ft_list_insert" class="md-nav__link"> 1282 FT_List_Insert 1283 </a> 1284 1285</li> 1286 1287 <li class="md-nav__item"> 1288 <a href="#ft_list_find" class="md-nav__link"> 1289 FT_List_Find 1290 </a> 1291 1292</li> 1293 1294 <li class="md-nav__item"> 1295 <a href="#ft_list_remove" class="md-nav__link"> 1296 FT_List_Remove 1297 </a> 1298 1299</li> 1300 1301 <li class="md-nav__item"> 1302 <a href="#ft_list_up" class="md-nav__link"> 1303 FT_List_Up 1304 </a> 1305 1306</li> 1307 1308 <li class="md-nav__item"> 1309 <a href="#ft_list_iterate" class="md-nav__link"> 1310 FT_List_Iterate 1311 </a> 1312 1313</li> 1314 1315 <li class="md-nav__item"> 1316 <a href="#ft_list_iterator" class="md-nav__link"> 1317 FT_List_Iterator 1318 </a> 1319 1320</li> 1321 1322 <li class="md-nav__item"> 1323 <a href="#ft_list_finalize" class="md-nav__link"> 1324 FT_List_Finalize 1325 </a> 1326 1327</li> 1328 1329 <li class="md-nav__item"> 1330 <a href="#ft_list_destructor" class="md-nav__link"> 1331 FT_List_Destructor 1332 </a> 1333 1334</li> 1335 1336 </ul> 1337 1338</nav> 1339 </div> 1340 </div> 1341 </div> 1342 1343 1344 <div class="md-content" data-md-component="content"> 1345 <article class="md-content__inner md-typeset"> 1346 1347 1348 1349 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » List Processing</p> 1350<hr /> 1351<h1 id="list-processing">List Processing<a class="headerlink" href="#list-processing" title="Permanent link">¶</a></h1> 1352<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> 1353<p>This section contains various definitions related to list processing using doubly-linked nodes.</p> 1354<h2 id="ft_list">FT_List<a class="headerlink" href="#ft_list" title="Permanent link">¶</a></h2> 1355<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1356<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListRec_* <b>FT_List</b>; 1357</code></pre></div> 1358 1359<p>A handle to a list record (see <code><a href="ft2-list_processing.html#ft_listrec">FT_ListRec</a></code>).</p> 1360<hr> 1361 1362<h2 id="ft_listnode">FT_ListNode<a class="headerlink" href="#ft_listnode" title="Permanent link">¶</a></h2> 1363<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1364<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListNodeRec_* <b>FT_ListNode</b>; 1365</code></pre></div> 1366 1367<p>Many elements and objects in FreeType are listed through an <code><a href="ft2-list_processing.html#ft_list">FT_List</a></code> record (see <code><a href="ft2-list_processing.html#ft_listrec">FT_ListRec</a></code>). As its name suggests, an FT_ListNode is a handle to a single list element.</p> 1368<hr> 1369 1370<h2 id="ft_listrec">FT_ListRec<a class="headerlink" href="#ft_listrec" title="Permanent link">¶</a></h2> 1371<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1372<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListRec_ 1373 { 1374 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> head; 1375 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> tail; 1376 1377 } <b>FT_ListRec</b>; 1378</code></pre></div> 1379 1380<p>A structure used to hold a simple doubly-linked list. These are used in many parts of FreeType.</p> 1381<h4>fields</h4> 1382<table class="fields"> 1383<tr><td class="val" id="head">head</td><td class="desc"> 1384<p>The head (first element) of doubly-linked list.</p> 1385</td></tr> 1386<tr><td class="val" id="tail">tail</td><td class="desc"> 1387<p>The tail (last element) of doubly-linked list.</p> 1388</td></tr> 1389</table> 1390 1391<hr> 1392 1393<h2 id="ft_listnoderec">FT_ListNodeRec<a class="headerlink" href="#ft_listnoderec" title="Permanent link">¶</a></h2> 1394<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1395<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListNodeRec_ 1396 { 1397 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> prev; 1398 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> next; 1399 <span class="keyword">void</span>* data; 1400 1401 } <b>FT_ListNodeRec</b>; 1402</code></pre></div> 1403 1404<p>A structure used to hold a single list element.</p> 1405<h4>fields</h4> 1406<table class="fields"> 1407<tr><td class="val" id="prev">prev</td><td class="desc"> 1408<p>The previous element in the list. <code>NULL</code> if first.</p> 1409</td></tr> 1410<tr><td class="val" id="next">next</td><td class="desc"> 1411<p>The next element in the list. <code>NULL</code> if last.</p> 1412</td></tr> 1413<tr><td class="val" id="data">data</td><td class="desc"> 1414<p>A typeless pointer to the listed object.</p> 1415</td></tr> 1416</table> 1417 1418<hr> 1419 1420<h2 id="ft_list_add">FT_List_Add<a class="headerlink" href="#ft_list_add" title="Permanent link">¶</a></h2> 1421<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1422<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1423 <b>FT_List_Add</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1424 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1425</code></pre></div> 1426 1427<p>Append an element to the end of a list.</p> 1428<h4>inout</h4> 1429<table class="fields"> 1430<tr><td class="val" id="list">list</td><td class="desc"> 1431<p>A pointer to the parent list.</p> 1432</td></tr> 1433<tr><td class="val" id="node">node</td><td class="desc"> 1434<p>The node to append.</p> 1435</td></tr> 1436</table> 1437 1438<hr> 1439 1440<h2 id="ft_list_insert">FT_List_Insert<a class="headerlink" href="#ft_list_insert" title="Permanent link">¶</a></h2> 1441<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1442<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1443 <b>FT_List_Insert</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1444 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1445</code></pre></div> 1446 1447<p>Insert an element at the head of a list.</p> 1448<h4>inout</h4> 1449<table class="fields"> 1450<tr><td class="val" id="list">list</td><td class="desc"> 1451<p>A pointer to parent list.</p> 1452</td></tr> 1453<tr><td class="val" id="node">node</td><td class="desc"> 1454<p>The node to insert.</p> 1455</td></tr> 1456</table> 1457 1458<hr> 1459 1460<h2 id="ft_list_find">FT_List_Find<a class="headerlink" href="#ft_list_find" title="Permanent link">¶</a></h2> 1461<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1462<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> ) 1463 <b>FT_List_Find</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1464 <span class="keyword">void</span>* data ); 1465</code></pre></div> 1466 1467<p>Find the list node for a given listed object.</p> 1468<h4>input</h4> 1469<table class="fields"> 1470<tr><td class="val" id="list">list</td><td class="desc"> 1471<p>A pointer to the parent list.</p> 1472</td></tr> 1473<tr><td class="val" id="data">data</td><td class="desc"> 1474<p>The address of the listed object.</p> 1475</td></tr> 1476</table> 1477 1478<h4>return</h4> 1479 1480<p>List node. <code>NULL</code> if it wasn't found.</p> 1481<hr> 1482 1483<h2 id="ft_list_remove">FT_List_Remove<a class="headerlink" href="#ft_list_remove" title="Permanent link">¶</a></h2> 1484<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1485<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1486 <b>FT_List_Remove</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1487 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1488</code></pre></div> 1489 1490<p>Remove a node from a list. This function doesn't check whether the node is in the list!</p> 1491<h4>input</h4> 1492<table class="fields"> 1493<tr><td class="val" id="node">node</td><td class="desc"> 1494<p>The node to remove.</p> 1495</td></tr> 1496</table> 1497 1498<h4>inout</h4> 1499<table class="fields"> 1500<tr><td class="val" id="list">list</td><td class="desc"> 1501<p>A pointer to the parent list.</p> 1502</td></tr> 1503</table> 1504 1505<hr> 1506 1507<h2 id="ft_list_up">FT_List_Up<a class="headerlink" href="#ft_list_up" title="Permanent link">¶</a></h2> 1508<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1509<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1510 <b>FT_List_Up</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1511 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1512</code></pre></div> 1513 1514<p>Move a node to the head/top of a list. Used to maintain LRU lists.</p> 1515<h4>inout</h4> 1516<table class="fields"> 1517<tr><td class="val" id="list">list</td><td class="desc"> 1518<p>A pointer to the parent list.</p> 1519</td></tr> 1520<tr><td class="val" id="node">node</td><td class="desc"> 1521<p>The node to move.</p> 1522</td></tr> 1523</table> 1524 1525<hr> 1526 1527<h2 id="ft_list_iterate">FT_List_Iterate<a class="headerlink" href="#ft_list_iterate" title="Permanent link">¶</a></h2> 1528<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1529<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1530 <b>FT_List_Iterate</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1531 <a href="ft2-list_processing.html#ft_list_iterator">FT_List_Iterator</a> iterator, 1532 <span class="keyword">void</span>* user ); 1533</code></pre></div> 1534 1535<p>Parse a list and calls a given iterator function on each element. Note that parsing is stopped as soon as one of the iterator calls returns a non-zero value.</p> 1536<h4>input</h4> 1537<table class="fields"> 1538<tr><td class="val" id="list">list</td><td class="desc"> 1539<p>A handle to the list.</p> 1540</td></tr> 1541<tr><td class="val" id="iterator">iterator</td><td class="desc"> 1542<p>An iterator function, called on each node of the list.</p> 1543</td></tr> 1544<tr><td class="val" id="user">user</td><td class="desc"> 1545<p>A user-supplied field that is passed as the second argument to the iterator.</p> 1546</td></tr> 1547</table> 1548 1549<h4>return</h4> 1550 1551<p>The result (a FreeType error code) of the last iterator call.</p> 1552<hr> 1553 1554<h2 id="ft_list_iterator">FT_List_Iterator<a class="headerlink" href="#ft_list_iterator" title="Permanent link">¶</a></h2> 1555<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1556<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> 1557 (*<b>FT_List_Iterator</b>)( <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node, 1558 <span class="keyword">void</span>* user ); 1559</code></pre></div> 1560 1561<p>An FT_List iterator function that is called during a list parse by <code><a href="ft2-list_processing.html#ft_list_iterate">FT_List_Iterate</a></code>.</p> 1562<h4>input</h4> 1563<table class="fields"> 1564<tr><td class="val" id="node">node</td><td class="desc"> 1565<p>The current iteration list node.</p> 1566</td></tr> 1567<tr><td class="val" id="user">user</td><td class="desc"> 1568<p>A typeless pointer passed to <code><a href="ft2-list_processing.html#ft_list_iterate">FT_List_Iterate</a></code>. Can be used to point to the iteration's state.</p> 1569</td></tr> 1570</table> 1571 1572<hr> 1573 1574<h2 id="ft_list_finalize">FT_List_Finalize<a class="headerlink" href="#ft_list_finalize" title="Permanent link">¶</a></h2> 1575<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1576<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1577 <b>FT_List_Finalize</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1578 <a href="ft2-list_processing.html#ft_list_destructor">FT_List_Destructor</a> destroy, 1579 <a href="ft2-system_interface.html#ft_memory">FT_Memory</a> memory, 1580 <span class="keyword">void</span>* user ); 1581</code></pre></div> 1582 1583<p>Destroy all elements in the list as well as the list itself.</p> 1584<h4>input</h4> 1585<table class="fields"> 1586<tr><td class="val" id="list">list</td><td class="desc"> 1587<p>A handle to the list.</p> 1588</td></tr> 1589<tr><td class="val" id="destroy">destroy</td><td class="desc"> 1590<p>A list destructor that will be applied to each element of the list. Set this to <code>NULL</code> if not needed.</p> 1591</td></tr> 1592<tr><td class="val" id="memory">memory</td><td class="desc"> 1593<p>The current memory object that handles deallocation.</p> 1594</td></tr> 1595<tr><td class="val" id="user">user</td><td class="desc"> 1596<p>A user-supplied field that is passed as the last argument to the destructor.</p> 1597</td></tr> 1598</table> 1599 1600<h4>note</h4> 1601 1602<p>This function expects that all nodes added by <code><a href="ft2-list_processing.html#ft_list_add">FT_List_Add</a></code> or <code><a href="ft2-list_processing.html#ft_list_insert">FT_List_Insert</a></code> have been dynamically allocated.</p> 1603<hr> 1604 1605<h2 id="ft_list_destructor">FT_List_Destructor<a class="headerlink" href="#ft_list_destructor" title="Permanent link">¶</a></h2> 1606<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1607<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1608 (*<b>FT_List_Destructor</b>)( <a href="ft2-system_interface.html#ft_memory">FT_Memory</a> memory, 1609 <span class="keyword">void</span>* data, 1610 <span class="keyword">void</span>* user ); 1611</code></pre></div> 1612 1613<p>An <code><a href="ft2-list_processing.html#ft_list">FT_List</a></code> iterator function that is called during a list finalization by <code><a href="ft2-list_processing.html#ft_list_finalize">FT_List_Finalize</a></code> to destroy all elements in a given list.</p> 1614<h4>input</h4> 1615<table class="fields"> 1616<tr><td class="val" id="system">system</td><td class="desc"> 1617<p>The current system object.</p> 1618</td></tr> 1619<tr><td class="val" id="data">data</td><td class="desc"> 1620<p>The current object to destroy.</p> 1621</td></tr> 1622<tr><td class="val" id="user">user</td><td class="desc"> 1623<p>A typeless pointer passed to <code><a href="ft2-list_processing.html#ft_list_iterate">FT_List_Iterate</a></code>. It can be used to point to the iteration's state.</p> 1624</td></tr> 1625</table> 1626 1627<hr> 1628 1629 1630 1631 1632 1633 1634 1635 </article> 1636 </div> 1637 </div> 1638 1639 </main> 1640 1641 1642<footer class="md-footer"> 1643 1644 <nav class="md-footer__inner md-grid" aria-label="Footer"> 1645 1646 1647 <a href="ft2-computations.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Computations" rel="prev"> 1648 <div class="md-footer__button md-icon"> 1649 <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> 1650 </div> 1651 <div class="md-footer__title"> 1652 <div class="md-ellipsis"> 1653 <span class="md-footer__direction"> 1654 Previous 1655 </span> 1656 Computations 1657 </div> 1658 </div> 1659 </a> 1660 1661 1662 1663 <a href="ft2-outline_processing.html" class="md-footer__link md-footer__link--next" aria-label="Next: Outline Processing" rel="next"> 1664 <div class="md-footer__title"> 1665 <div class="md-ellipsis"> 1666 <span class="md-footer__direction"> 1667 Next 1668 </span> 1669 Outline Processing 1670 </div> 1671 </div> 1672 <div class="md-footer__button md-icon"> 1673 <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> 1674 </div> 1675 </a> 1676 1677 </nav> 1678 1679 <div class="md-footer-meta md-typeset"> 1680 <div class="md-footer-meta__inner md-grid"> 1681 <div class="md-footer-copyright"> 1682 1683 <div class="md-footer-copyright__highlight"> 1684 Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. 1685 </div> 1686 1687 Made with 1688 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 1689 Material for MkDocs 1690 </a> 1691 1692 </div> 1693 1694 </div> 1695 </div> 1696</footer> 1697 1698 </div> 1699 <div class="md-dialog" data-md-component="dialog"> 1700 <div class="md-dialog__inner md-typeset"></div> 1701 </div> 1702 <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> 1703 1704 1705 <script src="assets/javascripts/bundle.82b56eb2.min.js"></script> 1706 1707 <script src="javascripts/extra.js"></script> 1708 1709 1710 </body> 1711</html>