1 2 3 4 5<!doctype html> 6<html lang="en" class="no-js"> 7 <head> 8 9 <meta charset="utf-8"> 10 <meta name="viewport" content="width=device-width,initial-scale=1"> 11 <meta http-equiv="x-ua-compatible" content="ie=edge"> 12 13 <meta name="description" content="API Reference Documentation for FreeType-2.10.4"> 14 15 16 17 <meta name="author" content="FreeType Contributors"> 18 19 20 <meta name="lang:clipboard.copy" content="Copy to clipboard"> 21 22 <meta name="lang:clipboard.copied" content="Copied to clipboard"> 23 24 <meta name="lang:search.language" content="en"> 25 26 <meta name="lang:search.pipeline.stopwords" content="True"> 27 28 <meta name="lang:search.pipeline.trimmer" content="True"> 29 30 <meta name="lang:search.result.none" content="No matching documents"> 31 32 <meta name="lang:search.result.one" content="1 matching document"> 33 34 <meta name="lang:search.result.other" content="# matching documents"> 35 36 <meta name="lang:search.tokenizer" content="[\s\-]+"> 37 38 <link rel="shortcut icon" href="images/favico.ico"> 39 <meta name="generator" content="mkdocs-1.1, mkdocs-material-4.6.3"> 40 41 42 43 <title>List Processing - FreeType-2.10.4 API Reference</title> 44 45 46 47 <link rel="stylesheet" href="assets/stylesheets/application.adb8469c.css"> 48 49 <link rel="stylesheet" href="assets/stylesheets/application-palette.a8b3c06d.css"> 50 51 52 53 54 <meta name="theme-color" content="#4caf50"> 55 56 57 58 <script src="assets/javascripts/modernizr.86422ebf.js"></script> 59 60 61 62 <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin> 63 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback"> 64 <style>body,input{font-family:"Noto Serif","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style> 65 66 67 <link rel="stylesheet" href="assets/fonts/material-icons.css"> 68 69 70 <link rel="stylesheet" href="stylesheets/extra.css"> 71 72 73 74 75 76 </head> 77 78 79 80 <body dir="ltr" data-md-color-primary="green" data-md-color-accent="green"> 81 82 <svg class="md-svg"> 83 <defs> 84 85 86 </defs> 87 </svg> 88 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> 89 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> 90 <label class="md-overlay" data-md-component="overlay" for="__drawer"></label> 91 92 <a href="#list-processing" tabindex="0" class="md-skip"> 93 Skip to content 94 </a> 95 96 97 <header class="md-header" data-md-component="header"> 98 <nav class="md-header-nav md-grid"> 99 <div class="md-flex"> 100 <div class="md-flex__cell md-flex__cell--shrink"> 101 <a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo"> 102 103 <img alt="logo" src="images/favico.ico" width="24" height="24"> 104 105 </a> 106 </div> 107 <div class="md-flex__cell md-flex__cell--shrink"> 108 <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label> 109 </div> 110 <div class="md-flex__cell md-flex__cell--stretch"> 111 <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title"> 112 113 <span class="md-header-nav__topic"> 114 FreeType-2.10.4 API Reference 115 </span> 116 <span class="md-header-nav__topic"> 117 118 List Processing 119 120 </span> 121 122 </div> 123 </div> 124 <div class="md-flex__cell md-flex__cell--shrink"> 125 126 <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label> 127 128<div class="md-search" data-md-component="search" role="dialog"> 129 <label class="md-search__overlay" for="__search"></label> 130 <div class="md-search__inner" role="search"> 131 <form class="md-search__form" name="search"> 132 <input type="text" class="md-search__input" aria-label="search" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active"> 133 <label class="md-icon md-search__icon" for="__search"></label> 134 <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1"> 135  136 </button> 137 </form> 138 <div class="md-search__output"> 139 <div class="md-search__scrollwrap" data-md-scrollfix> 140 <div class="md-search-result" data-md-component="result"> 141 <div class="md-search-result__meta"> 142 Type to start searching 143 </div> 144 <ol class="md-search-result__list"></ol> 145 </div> 146 </div> 147 </div> 148 </div> 149</div> 150 151 </div> 152 153 </div> 154 </nav> 155</header> 156 157 <div class="md-container"> 158 159 160 161 162 <main class="md-main" role="main"> 163 <div class="md-main__inner md-grid" data-md-component="container"> 164 165 166 <div class="md-sidebar md-sidebar--primary" data-md-component="navigation"> 167 <div class="md-sidebar__scrollwrap"> 168 <div class="md-sidebar__inner"> 169 <nav class="md-nav md-nav--primary" data-md-level="0"> 170 <label class="md-nav__title md-nav__title--site" for="__drawer"> 171 <a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo"> 172 173 <img alt="logo" src="images/favico.ico" width="48" height="48"> 174 175 </a> 176 FreeType-2.10.4 API Reference 177 </label> 178 179 <ul class="md-nav__list" data-md-scrollfix> 180 181 182 183 184 185 186 <li class="md-nav__item"> 187 <a href="index.html" title="TOC" class="md-nav__link"> 188 TOC 189 </a> 190 </li> 191 192 193 194 195 196 197 198 <li class="md-nav__item"> 199 <a href="ft2-index.html" title="Index" class="md-nav__link"> 200 Index 201 </a> 202 </li> 203 204 205 206 207 208 209 210 <li class="md-nav__item md-nav__item--nested"> 211 212 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3"> 213 214 <label class="md-nav__link" for="nav-3"> 215 General Remarks 216 </label> 217 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 218 <label class="md-nav__title" for="nav-3"> 219 General Remarks 220 </label> 221 <ul class="md-nav__list" data-md-scrollfix> 222 223 224 225 226 227 228 229 <li class="md-nav__item"> 230 <a href="ft2-header_inclusion.html" title="FreeType's header inclusion scheme" class="md-nav__link"> 231 FreeType's header inclusion scheme 232 </a> 233 </li> 234 235 236 237 238 239 240 241 <li class="md-nav__item"> 242 <a href="ft2-user_allocation.html" title="User allocation" class="md-nav__link"> 243 User allocation 244 </a> 245 </li> 246 247 248 </ul> 249 </nav> 250 </li> 251 252 253 254 255 256 257 258 <li class="md-nav__item md-nav__item--nested"> 259 260 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4"> 261 262 <label class="md-nav__link" for="nav-4"> 263 Core API 264 </label> 265 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 266 <label class="md-nav__title" for="nav-4"> 267 Core API 268 </label> 269 <ul class="md-nav__list" data-md-scrollfix> 270 271 272 273 274 275 276 277 <li class="md-nav__item"> 278 <a href="ft2-version.html" title="FreeType Version" class="md-nav__link"> 279 FreeType Version 280 </a> 281 </li> 282 283 284 285 286 287 288 289 <li class="md-nav__item"> 290 <a href="ft2-basic_types.html" title="Basic Data Types" class="md-nav__link"> 291 Basic Data Types 292 </a> 293 </li> 294 295 296 297 298 299 300 301 <li class="md-nav__item"> 302 <a href="ft2-base_interface.html" title="Base Interface" class="md-nav__link"> 303 Base Interface 304 </a> 305 </li> 306 307 308 309 310 311 312 313 <li class="md-nav__item"> 314 <a href="ft2-glyph_variants.html" title="Unicode Variation Sequences" class="md-nav__link"> 315 Unicode Variation Sequences 316 </a> 317 </li> 318 319 320 321 322 323 324 325 <li class="md-nav__item"> 326 <a href="ft2-color_management.html" title="Glyph Color Management" class="md-nav__link"> 327 Glyph Color Management 328 </a> 329 </li> 330 331 332 333 334 335 336 337 <li class="md-nav__item"> 338 <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-nav__link"> 339 Glyph Layer Management 340 </a> 341 </li> 342 343 344 345 346 347 348 349 <li class="md-nav__item"> 350 <a href="ft2-glyph_management.html" title="Glyph Management" class="md-nav__link"> 351 Glyph Management 352 </a> 353 </li> 354 355 356 357 358 359 360 361 <li class="md-nav__item"> 362 <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-nav__link"> 363 Mac Specific Interface 364 </a> 365 </li> 366 367 368 369 370 371 372 373 <li class="md-nav__item"> 374 <a href="ft2-sizes_management.html" title="Size Management" class="md-nav__link"> 375 Size Management 376 </a> 377 </li> 378 379 380 381 382 383 384 385 <li class="md-nav__item"> 386 <a href="ft2-header_file_macros.html" title="Header File Macros" class="md-nav__link"> 387 Header File Macros 388 </a> 389 </li> 390 391 392 </ul> 393 </nav> 394 </li> 395 396 397 398 399 400 401 402 <li class="md-nav__item md-nav__item--nested"> 403 404 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5"> 405 406 <label class="md-nav__link" for="nav-5"> 407 Format-Specific API 408 </label> 409 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 410 <label class="md-nav__title" for="nav-5"> 411 Format-Specific API 412 </label> 413 <ul class="md-nav__list" data-md-scrollfix> 414 415 416 417 418 419 420 421 <li class="md-nav__item"> 422 <a href="ft2-multiple_masters.html" title="Multiple Masters" class="md-nav__link"> 423 Multiple Masters 424 </a> 425 </li> 426 427 428 429 430 431 432 433 <li class="md-nav__item"> 434 <a href="ft2-truetype_tables.html" title="TrueType Tables" class="md-nav__link"> 435 TrueType Tables 436 </a> 437 </li> 438 439 440 441 442 443 444 445 <li class="md-nav__item"> 446 <a href="ft2-type1_tables.html" title="Type 1 Tables" class="md-nav__link"> 447 Type 1 Tables 448 </a> 449 </li> 450 451 452 453 454 455 456 457 <li class="md-nav__item"> 458 <a href="ft2-sfnt_names.html" title="SFNT Names" class="md-nav__link"> 459 SFNT Names 460 </a> 461 </li> 462 463 464 465 466 467 468 469 <li class="md-nav__item"> 470 <a href="ft2-bdf_fonts.html" title="BDF and PCF Files" class="md-nav__link"> 471 BDF and PCF Files 472 </a> 473 </li> 474 475 476 477 478 479 480 481 <li class="md-nav__item"> 482 <a href="ft2-cid_fonts.html" title="CID Fonts" class="md-nav__link"> 483 CID Fonts 484 </a> 485 </li> 486 487 488 489 490 491 492 493 <li class="md-nav__item"> 494 <a href="ft2-pfr_fonts.html" title="PFR Fonts" class="md-nav__link"> 495 PFR Fonts 496 </a> 497 </li> 498 499 500 501 502 503 504 505 <li class="md-nav__item"> 506 <a href="ft2-winfnt_fonts.html" title="Window FNT Files" class="md-nav__link"> 507 Window FNT Files 508 </a> 509 </li> 510 511 512 513 514 515 516 517 <li class="md-nav__item"> 518 <a href="ft2-font_formats.html" title="Font Formats" class="md-nav__link"> 519 Font Formats 520 </a> 521 </li> 522 523 524 525 526 527 528 529 <li class="md-nav__item"> 530 <a href="ft2-gasp_table.html" title="Gasp Table" class="md-nav__link"> 531 Gasp Table 532 </a> 533 </li> 534 535 536 </ul> 537 </nav> 538 </li> 539 540 541 542 543 544 545 546 <li class="md-nav__item md-nav__item--nested"> 547 548 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6"> 549 550 <label class="md-nav__link" for="nav-6"> 551 Controlling FreeType Modules 552 </label> 553 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 554 <label class="md-nav__title" for="nav-6"> 555 Controlling FreeType Modules 556 </label> 557 <ul class="md-nav__list" data-md-scrollfix> 558 559 560 561 562 563 564 565 <li class="md-nav__item"> 566 <a href="ft2-auto_hinter.html" title="The auto-hinter" class="md-nav__link"> 567 The auto-hinter 568 </a> 569 </li> 570 571 572 573 574 575 576 577 <li class="md-nav__item"> 578 <a href="ft2-cff_driver.html" title="The CFF driver" class="md-nav__link"> 579 The CFF driver 580 </a> 581 </li> 582 583 584 585 586 587 588 589 <li class="md-nav__item"> 590 <a href="ft2-t1_cid_driver.html" title="The Type 1 and CID drivers" class="md-nav__link"> 591 The Type 1 and CID drivers 592 </a> 593 </li> 594 595 596 597 598 599 600 601 <li class="md-nav__item"> 602 <a href="ft2-tt_driver.html" title="The TrueType driver" class="md-nav__link"> 603 The TrueType driver 604 </a> 605 </li> 606 607 608 609 610 611 612 613 <li class="md-nav__item"> 614 <a href="ft2-pcf_driver.html" title="The PCF driver" class="md-nav__link"> 615 The PCF driver 616 </a> 617 </li> 618 619 620 621 622 623 624 625 <li class="md-nav__item"> 626 <a href="ft2-properties.html" title="Driver properties" class="md-nav__link"> 627 Driver properties 628 </a> 629 </li> 630 631 632 633 634 635 636 637 <li class="md-nav__item"> 638 <a href="ft2-parameter_tags.html" title="Parameter Tags" class="md-nav__link"> 639 Parameter Tags 640 </a> 641 </li> 642 643 644 645 646 647 648 649 <li class="md-nav__item"> 650 <a href="ft2-lcd_rendering.html" title="Subpixel Rendering" class="md-nav__link"> 651 Subpixel Rendering 652 </a> 653 </li> 654 655 656 </ul> 657 </nav> 658 </li> 659 660 661 662 663 664 665 666 <li class="md-nav__item md-nav__item--nested"> 667 668 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7"> 669 670 <label class="md-nav__link" for="nav-7"> 671 Cache Sub-System 672 </label> 673 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 674 <label class="md-nav__title" for="nav-7"> 675 Cache Sub-System 676 </label> 677 <ul class="md-nav__list" data-md-scrollfix> 678 679 680 681 682 683 684 685 <li class="md-nav__item"> 686 <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-nav__link"> 687 Cache Sub-System 688 </a> 689 </li> 690 691 692 </ul> 693 </nav> 694 </li> 695 696 697 698 699 700 701 702 703 704 <li class="md-nav__item md-nav__item--active md-nav__item--nested"> 705 706 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8" checked> 707 708 <label class="md-nav__link" for="nav-8"> 709 Support API 710 </label> 711 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 712 <label class="md-nav__title" for="nav-8"> 713 Support API 714 </label> 715 <ul class="md-nav__list" data-md-scrollfix> 716 717 718 719 720 721 722 723 <li class="md-nav__item"> 724 <a href="ft2-computations.html" title="Computations" class="md-nav__link"> 725 Computations 726 </a> 727 </li> 728 729 730 731 732 733 734 735 736 737 <li class="md-nav__item md-nav__item--active"> 738 739 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 740 741 742 743 744 <label class="md-nav__link md-nav__link--active" for="__toc"> 745 List Processing 746 </label> 747 748 <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link md-nav__link--active"> 749 List Processing 750 </a> 751 752 753<nav class="md-nav md-nav--secondary"> 754 755 756 757 758 759 <label class="md-nav__title" for="__toc">Table of contents</label> 760 <ul class="md-nav__list" data-md-scrollfix> 761 762 <li class="md-nav__item"> 763 <a href="#synopsis" class="md-nav__link"> 764 Synopsis 765 </a> 766 767</li> 768 769 <li class="md-nav__item"> 770 <a href="#ft_list" class="md-nav__link"> 771 FT_List 772 </a> 773 774</li> 775 776 <li class="md-nav__item"> 777 <a href="#ft_listnode" class="md-nav__link"> 778 FT_ListNode 779 </a> 780 781</li> 782 783 <li class="md-nav__item"> 784 <a href="#ft_listrec" class="md-nav__link"> 785 FT_ListRec 786 </a> 787 788</li> 789 790 <li class="md-nav__item"> 791 <a href="#ft_listnoderec" class="md-nav__link"> 792 FT_ListNodeRec 793 </a> 794 795</li> 796 797 <li class="md-nav__item"> 798 <a href="#ft_list_add" class="md-nav__link"> 799 FT_List_Add 800 </a> 801 802</li> 803 804 <li class="md-nav__item"> 805 <a href="#ft_list_insert" class="md-nav__link"> 806 FT_List_Insert 807 </a> 808 809</li> 810 811 <li class="md-nav__item"> 812 <a href="#ft_list_find" class="md-nav__link"> 813 FT_List_Find 814 </a> 815 816</li> 817 818 <li class="md-nav__item"> 819 <a href="#ft_list_remove" class="md-nav__link"> 820 FT_List_Remove 821 </a> 822 823</li> 824 825 <li class="md-nav__item"> 826 <a href="#ft_list_up" class="md-nav__link"> 827 FT_List_Up 828 </a> 829 830</li> 831 832 <li class="md-nav__item"> 833 <a href="#ft_list_iterate" class="md-nav__link"> 834 FT_List_Iterate 835 </a> 836 837</li> 838 839 <li class="md-nav__item"> 840 <a href="#ft_list_iterator" class="md-nav__link"> 841 FT_List_Iterator 842 </a> 843 844</li> 845 846 <li class="md-nav__item"> 847 <a href="#ft_list_finalize" class="md-nav__link"> 848 FT_List_Finalize 849 </a> 850 851</li> 852 853 <li class="md-nav__item"> 854 <a href="#ft_list_destructor" class="md-nav__link"> 855 FT_List_Destructor 856 </a> 857 858</li> 859 860 861 862 863 864 </ul> 865 866</nav> 867 868 </li> 869 870 871 872 873 874 875 876 <li class="md-nav__item"> 877 <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link"> 878 Outline Processing 879 </a> 880 </li> 881 882 883 884 885 886 887 888 <li class="md-nav__item"> 889 <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link"> 890 Quick retrieval of advance values 891 </a> 892 </li> 893 894 895 896 897 898 899 900 <li class="md-nav__item"> 901 <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link"> 902 Bitmap Handling 903 </a> 904 </li> 905 906 907 908 909 910 911 912 <li class="md-nav__item"> 913 <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link"> 914 Scanline Converter 915 </a> 916 </li> 917 918 919 920 921 922 923 924 <li class="md-nav__item"> 925 <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link"> 926 Glyph Stroker 927 </a> 928 </li> 929 930 931 932 933 934 935 936 <li class="md-nav__item"> 937 <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link"> 938 System Interface 939 </a> 940 </li> 941 942 943 944 945 946 947 948 <li class="md-nav__item"> 949 <a href="ft2-module_management.html" title="Module Management" class="md-nav__link"> 950 Module Management 951 </a> 952 </li> 953 954 955 956 957 958 959 960 <li class="md-nav__item"> 961 <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link"> 962 GZIP Streams 963 </a> 964 </li> 965 966 967 968 969 970 971 972 <li class="md-nav__item"> 973 <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link"> 974 LZW Streams 975 </a> 976 </li> 977 978 979 980 981 982 983 984 <li class="md-nav__item"> 985 <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link"> 986 BZIP2 Streams 987 </a> 988 </li> 989 990 991 </ul> 992 </nav> 993 </li> 994 995 996 997 998 999 1000 1001 <li class="md-nav__item md-nav__item--nested"> 1002 1003 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9"> 1004 1005 <label class="md-nav__link" for="nav-9"> 1006 Error Codes 1007 </label> 1008 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 1009 <label class="md-nav__title" for="nav-9"> 1010 Error Codes 1011 </label> 1012 <ul class="md-nav__list" data-md-scrollfix> 1013 1014 1015 1016 1017 1018 1019 1020 <li class="md-nav__item"> 1021 <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link"> 1022 Error Enumerations 1023 </a> 1024 </li> 1025 1026 1027 1028 1029 1030 1031 1032 <li class="md-nav__item"> 1033 <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link"> 1034 Error Code Values 1035 </a> 1036 </li> 1037 1038 1039 </ul> 1040 </nav> 1041 </li> 1042 1043 1044 1045 1046 1047 1048 1049 <li class="md-nav__item md-nav__item--nested"> 1050 1051 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10"> 1052 1053 <label class="md-nav__link" for="nav-10"> 1054 Miscellaneous 1055 </label> 1056 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 1057 <label class="md-nav__title" for="nav-10"> 1058 Miscellaneous 1059 </label> 1060 <ul class="md-nav__list" data-md-scrollfix> 1061 1062 1063 1064 1065 1066 1067 1068 <li class="md-nav__item"> 1069 <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link"> 1070 TrueTypeGX/AAT Validation 1071 </a> 1072 </li> 1073 1074 1075 1076 1077 1078 1079 1080 <li class="md-nav__item"> 1081 <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link"> 1082 Incremental Loading 1083 </a> 1084 </li> 1085 1086 1087 1088 1089 1090 1091 1092 <li class="md-nav__item"> 1093 <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link"> 1094 The TrueType Engine 1095 </a> 1096 </li> 1097 1098 1099 1100 1101 1102 1103 1104 <li class="md-nav__item"> 1105 <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link"> 1106 OpenType Validation 1107 </a> 1108 </li> 1109 1110 1111 </ul> 1112 </nav> 1113 </li> 1114 1115 1116 </ul> 1117</nav> 1118 </div> 1119 </div> 1120 </div> 1121 1122 1123 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> 1124 <div class="md-sidebar__scrollwrap"> 1125 <div class="md-sidebar__inner"> 1126 1127<nav class="md-nav md-nav--secondary"> 1128 1129 1130 1131 1132 1133 <label class="md-nav__title" for="__toc">Table of contents</label> 1134 <ul class="md-nav__list" data-md-scrollfix> 1135 1136 <li class="md-nav__item"> 1137 <a href="#synopsis" class="md-nav__link"> 1138 Synopsis 1139 </a> 1140 1141</li> 1142 1143 <li class="md-nav__item"> 1144 <a href="#ft_list" class="md-nav__link"> 1145 FT_List 1146 </a> 1147 1148</li> 1149 1150 <li class="md-nav__item"> 1151 <a href="#ft_listnode" class="md-nav__link"> 1152 FT_ListNode 1153 </a> 1154 1155</li> 1156 1157 <li class="md-nav__item"> 1158 <a href="#ft_listrec" class="md-nav__link"> 1159 FT_ListRec 1160 </a> 1161 1162</li> 1163 1164 <li class="md-nav__item"> 1165 <a href="#ft_listnoderec" class="md-nav__link"> 1166 FT_ListNodeRec 1167 </a> 1168 1169</li> 1170 1171 <li class="md-nav__item"> 1172 <a href="#ft_list_add" class="md-nav__link"> 1173 FT_List_Add 1174 </a> 1175 1176</li> 1177 1178 <li class="md-nav__item"> 1179 <a href="#ft_list_insert" class="md-nav__link"> 1180 FT_List_Insert 1181 </a> 1182 1183</li> 1184 1185 <li class="md-nav__item"> 1186 <a href="#ft_list_find" class="md-nav__link"> 1187 FT_List_Find 1188 </a> 1189 1190</li> 1191 1192 <li class="md-nav__item"> 1193 <a href="#ft_list_remove" class="md-nav__link"> 1194 FT_List_Remove 1195 </a> 1196 1197</li> 1198 1199 <li class="md-nav__item"> 1200 <a href="#ft_list_up" class="md-nav__link"> 1201 FT_List_Up 1202 </a> 1203 1204</li> 1205 1206 <li class="md-nav__item"> 1207 <a href="#ft_list_iterate" class="md-nav__link"> 1208 FT_List_Iterate 1209 </a> 1210 1211</li> 1212 1213 <li class="md-nav__item"> 1214 <a href="#ft_list_iterator" class="md-nav__link"> 1215 FT_List_Iterator 1216 </a> 1217 1218</li> 1219 1220 <li class="md-nav__item"> 1221 <a href="#ft_list_finalize" class="md-nav__link"> 1222 FT_List_Finalize 1223 </a> 1224 1225</li> 1226 1227 <li class="md-nav__item"> 1228 <a href="#ft_list_destructor" class="md-nav__link"> 1229 FT_List_Destructor 1230 </a> 1231 1232</li> 1233 1234 1235 1236 1237 1238 </ul> 1239 1240</nav> 1241 </div> 1242 </div> 1243 </div> 1244 1245 1246 <div class="md-content"> 1247 <article class="md-content__inner md-typeset"> 1248 1249 1250 1251 <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> 1252<hr /> 1253<h1 id="list-processing">List Processing<a class="headerlink" href="#list-processing" title="Permanent link">¶</a></h1> 1254<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> 1255<p>This section contains various definitions related to list processing using doubly-linked nodes.</p> 1256<h2 id="ft_list">FT_List<a class="headerlink" href="#ft_list" title="Permanent link">¶</a></h2> 1257<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1258<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListRec_* <b>FT_List</b>; 1259</code></pre></div> 1260 1261<p>A handle to a list record (see <code><a href="ft2-list_processing.html#ft_listrec">FT_ListRec</a></code>).</p> 1262<hr> 1263 1264<h2 id="ft_listnode">FT_ListNode<a class="headerlink" href="#ft_listnode" title="Permanent link">¶</a></h2> 1265<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1266<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListNodeRec_* <b>FT_ListNode</b>; 1267</code></pre></div> 1268 1269<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> 1270<hr> 1271 1272<h2 id="ft_listrec">FT_ListRec<a class="headerlink" href="#ft_listrec" title="Permanent link">¶</a></h2> 1273<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1274<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListRec_ 1275 { 1276 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> head; 1277 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> tail; 1278 1279 } <b>FT_ListRec</b>; 1280</code></pre></div> 1281 1282<p>A structure used to hold a simple doubly-linked list. These are used in many parts of FreeType.</p> 1283<h4>fields</h4> 1284 1285<table class="fields"> 1286<tr><td class="val" id="head">head</td><td class="desc"> 1287<p>The head (first element) of doubly-linked list.</p> 1288</td></tr> 1289<tr><td class="val" id="tail">tail</td><td class="desc"> 1290<p>The tail (last element) of doubly-linked list.</p> 1291</td></tr> 1292</table> 1293 1294<hr> 1295 1296<h2 id="ft_listnoderec">FT_ListNodeRec<a class="headerlink" href="#ft_listnoderec" title="Permanent link">¶</a></h2> 1297<p>Defined in FT_TYPES_H (freetype/fttypes.h).</p> 1298<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_ListNodeRec_ 1299 { 1300 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> prev; 1301 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> next; 1302 <span class="keyword">void</span>* data; 1303 1304 } <b>FT_ListNodeRec</b>; 1305</code></pre></div> 1306 1307<p>A structure used to hold a single list element.</p> 1308<h4>fields</h4> 1309 1310<table class="fields"> 1311<tr><td class="val" id="prev">prev</td><td class="desc"> 1312<p>The previous element in the list. <code>NULL</code> if first.</p> 1313</td></tr> 1314<tr><td class="val" id="next">next</td><td class="desc"> 1315<p>The next element in the list. <code>NULL</code> if last.</p> 1316</td></tr> 1317<tr><td class="val" id="data">data</td><td class="desc"> 1318<p>A typeless pointer to the listed object.</p> 1319</td></tr> 1320</table> 1321 1322<hr> 1323 1324<h2 id="ft_list_add">FT_List_Add<a class="headerlink" href="#ft_list_add" title="Permanent link">¶</a></h2> 1325<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1326<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1327 <b>FT_List_Add</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1328 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1329</code></pre></div> 1330 1331<p>Append an element to the end of a list.</p> 1332<h4>inout</h4> 1333 1334<table class="fields"> 1335<tr><td class="val" id="list">list</td><td class="desc"> 1336<p>A pointer to the parent list.</p> 1337</td></tr> 1338<tr><td class="val" id="node">node</td><td class="desc"> 1339<p>The node to append.</p> 1340</td></tr> 1341</table> 1342 1343<hr> 1344 1345<h2 id="ft_list_insert">FT_List_Insert<a class="headerlink" href="#ft_list_insert" title="Permanent link">¶</a></h2> 1346<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1347<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1348 <b>FT_List_Insert</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1349 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1350</code></pre></div> 1351 1352<p>Insert an element at the head of a list.</p> 1353<h4>inout</h4> 1354 1355<table class="fields"> 1356<tr><td class="val" id="list">list</td><td class="desc"> 1357<p>A pointer to parent list.</p> 1358</td></tr> 1359<tr><td class="val" id="node">node</td><td class="desc"> 1360<p>The node to insert.</p> 1361</td></tr> 1362</table> 1363 1364<hr> 1365 1366<h2 id="ft_list_find">FT_List_Find<a class="headerlink" href="#ft_list_find" title="Permanent link">¶</a></h2> 1367<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1368<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> ) 1369 <b>FT_List_Find</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1370 <span class="keyword">void</span>* data ); 1371</code></pre></div> 1372 1373<p>Find the list node for a given listed object.</p> 1374<h4>input</h4> 1375 1376<table class="fields"> 1377<tr><td class="val" id="list">list</td><td class="desc"> 1378<p>A pointer to the parent list.</p> 1379</td></tr> 1380<tr><td class="val" id="data">data</td><td class="desc"> 1381<p>The address of the listed object.</p> 1382</td></tr> 1383</table> 1384 1385<h4>return</h4> 1386 1387<p>List node. <code>NULL</code> if it wasn't found.</p> 1388<hr> 1389 1390<h2 id="ft_list_remove">FT_List_Remove<a class="headerlink" href="#ft_list_remove" title="Permanent link">¶</a></h2> 1391<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1392<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1393 <b>FT_List_Remove</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1394 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1395</code></pre></div> 1396 1397<p>Remove a node from a list. This function doesn't check whether the node is in the list!</p> 1398<h4>input</h4> 1399 1400<table class="fields"> 1401<tr><td class="val" id="node">node</td><td class="desc"> 1402<p>The node to remove.</p> 1403</td></tr> 1404</table> 1405 1406<h4>inout</h4> 1407 1408<table class="fields"> 1409<tr><td class="val" id="list">list</td><td class="desc"> 1410<p>A pointer to the parent list.</p> 1411</td></tr> 1412</table> 1413 1414<hr> 1415 1416<h2 id="ft_list_up">FT_List_Up<a class="headerlink" href="#ft_list_up" title="Permanent link">¶</a></h2> 1417<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1418<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1419 <b>FT_List_Up</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1420 <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node ); 1421</code></pre></div> 1422 1423<p>Move a node to the head/top of a list. Used to maintain LRU lists.</p> 1424<h4>inout</h4> 1425 1426<table class="fields"> 1427<tr><td class="val" id="list">list</td><td class="desc"> 1428<p>A pointer to the parent list.</p> 1429</td></tr> 1430<tr><td class="val" id="node">node</td><td class="desc"> 1431<p>The node to move.</p> 1432</td></tr> 1433</table> 1434 1435<hr> 1436 1437<h2 id="ft_list_iterate">FT_List_Iterate<a class="headerlink" href="#ft_list_iterate" title="Permanent link">¶</a></h2> 1438<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1439<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1440 <b>FT_List_Iterate</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1441 <a href="ft2-list_processing.html#ft_list_iterator">FT_List_Iterator</a> iterator, 1442 <span class="keyword">void</span>* user ); 1443</code></pre></div> 1444 1445<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> 1446<h4>input</h4> 1447 1448<table class="fields"> 1449<tr><td class="val" id="list">list</td><td class="desc"> 1450<p>A handle to the list.</p> 1451</td></tr> 1452<tr><td class="val" id="iterator">iterator</td><td class="desc"> 1453<p>An iterator function, called on each node of the list.</p> 1454</td></tr> 1455<tr><td class="val" id="user">user</td><td class="desc"> 1456<p>A user-supplied field that is passed as the second argument to the iterator.</p> 1457</td></tr> 1458</table> 1459 1460<h4>return</h4> 1461 1462<p>The result (a FreeType error code) of the last iterator call.</p> 1463<hr> 1464 1465<h2 id="ft_list_iterator">FT_List_Iterator<a class="headerlink" href="#ft_list_iterator" title="Permanent link">¶</a></h2> 1466<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1467<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> 1468 (*<b>FT_List_Iterator</b>)( <a href="ft2-list_processing.html#ft_listnode">FT_ListNode</a> node, 1469 <span class="keyword">void</span>* user ); 1470</code></pre></div> 1471 1472<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> 1473<h4>input</h4> 1474 1475<table class="fields"> 1476<tr><td class="val" id="node">node</td><td class="desc"> 1477<p>The current iteration list node.</p> 1478</td></tr> 1479<tr><td class="val" id="user">user</td><td class="desc"> 1480<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> 1481</td></tr> 1482</table> 1483 1484<hr> 1485 1486<h2 id="ft_list_finalize">FT_List_Finalize<a class="headerlink" href="#ft_list_finalize" title="Permanent link">¶</a></h2> 1487<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1488<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1489 <b>FT_List_Finalize</b>( <a href="ft2-list_processing.html#ft_list">FT_List</a> list, 1490 <a href="ft2-list_processing.html#ft_list_destructor">FT_List_Destructor</a> destroy, 1491 <a href="ft2-system_interface.html#ft_memory">FT_Memory</a> memory, 1492 <span class="keyword">void</span>* user ); 1493</code></pre></div> 1494 1495<p>Destroy all elements in the list as well as the list itself.</p> 1496<h4>input</h4> 1497 1498<table class="fields"> 1499<tr><td class="val" id="list">list</td><td class="desc"> 1500<p>A handle to the list.</p> 1501</td></tr> 1502<tr><td class="val" id="destroy">destroy</td><td class="desc"> 1503<p>A list destructor that will be applied to each element of the list. Set this to <code>NULL</code> if not needed.</p> 1504</td></tr> 1505<tr><td class="val" id="memory">memory</td><td class="desc"> 1506<p>The current memory object that handles deallocation.</p> 1507</td></tr> 1508<tr><td class="val" id="user">user</td><td class="desc"> 1509<p>A user-supplied field that is passed as the last argument to the destructor.</p> 1510</td></tr> 1511</table> 1512 1513<h4>note</h4> 1514 1515<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> 1516<hr> 1517 1518<h2 id="ft_list_destructor">FT_List_Destructor<a class="headerlink" href="#ft_list_destructor" title="Permanent link">¶</a></h2> 1519<p>Defined in FT_LIST_H (freetype/ftlist.h).</p> 1520<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1521 (*<b>FT_List_Destructor</b>)( <a href="ft2-system_interface.html#ft_memory">FT_Memory</a> memory, 1522 <span class="keyword">void</span>* data, 1523 <span class="keyword">void</span>* user ); 1524</code></pre></div> 1525 1526<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> 1527<h4>input</h4> 1528 1529<table class="fields"> 1530<tr><td class="val" id="system">system</td><td class="desc"> 1531<p>The current system object.</p> 1532</td></tr> 1533<tr><td class="val" id="data">data</td><td class="desc"> 1534<p>The current object to destroy.</p> 1535</td></tr> 1536<tr><td class="val" id="user">user</td><td class="desc"> 1537<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> 1538</td></tr> 1539</table> 1540 1541<hr> 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 </article> 1553 </div> 1554 </div> 1555 </main> 1556 1557 1558<footer class="md-footer"> 1559 1560 <div class="md-footer-nav"> 1561 <nav class="md-footer-nav__inner md-grid"> 1562 1563 <a href="ft2-computations.html" title="Computations" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev"> 1564 <div class="md-flex__cell md-flex__cell--shrink"> 1565 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> 1566 </div> 1567 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 1568 <span class="md-flex__ellipsis"> 1569 <span class="md-footer-nav__direction"> 1570 Previous 1571 </span> 1572 Computations 1573 </span> 1574 </div> 1575 </a> 1576 1577 1578 <a href="ft2-outline_processing.html" title="Outline Processing" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next"> 1579 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 1580 <span class="md-flex__ellipsis"> 1581 <span class="md-footer-nav__direction"> 1582 Next 1583 </span> 1584 Outline Processing 1585 </span> 1586 </div> 1587 <div class="md-flex__cell md-flex__cell--shrink"> 1588 <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> 1589 </div> 1590 </a> 1591 1592 </nav> 1593 </div> 1594 1595 <div class="md-footer-meta md-typeset"> 1596 <div class="md-footer-meta__inner md-grid"> 1597 <div class="md-footer-copyright"> 1598 1599 <div class="md-footer-copyright__highlight"> 1600 Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. 1601 </div> 1602 1603 powered by 1604 <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a> 1605 and 1606 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 1607 Material for MkDocs</a> 1608 </div> 1609 1610 </div> 1611 </div> 1612</footer> 1613 1614 </div> 1615 1616 <script src="assets/javascripts/application.c33a9706.js"></script> 1617 1618 <script>app.initialize({version:"1.1",url:{base:"."}})</script> 1619 1620 <script src="javascripts/extra.js"></script> 1621 1622 1623 </body> 1624</html>