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