• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#support-api">Support API</a> &raquo; List Processing</p>
1350<hr />
1351<h1 id="list-processing">List Processing<a class="headerlink" href="#list-processing" title="Permanent link">&para;</a></h1>
1352<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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">&para;</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>