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