• 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>OpenType Validation - 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="#opentype-validation" 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              OpenType Validation
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    <li class="md-nav__item md-nav__item--nested">
771
772
773        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
774
775      <label class="md-nav__link" for="__nav_8">
776        Support API
777        <span class="md-nav__icon md-icon"></span>
778      </label>
779      <nav class="md-nav" aria-label="Support API" data-md-level="1">
780        <label class="md-nav__title" for="__nav_8">
781          <span class="md-nav__icon md-icon"></span>
782          Support API
783        </label>
784        <ul class="md-nav__list" data-md-scrollfix>
785
786
787
788
789
790    <li class="md-nav__item">
791      <a href="ft2-computations.html" class="md-nav__link">
792        Computations
793      </a>
794    </li>
795
796
797
798
799
800
801
802    <li class="md-nav__item">
803      <a href="ft2-list_processing.html" class="md-nav__link">
804        List Processing
805      </a>
806    </li>
807
808
809
810
811
812
813
814    <li class="md-nav__item">
815      <a href="ft2-outline_processing.html" class="md-nav__link">
816        Outline Processing
817      </a>
818    </li>
819
820
821
822
823
824
825
826    <li class="md-nav__item">
827      <a href="ft2-quick_advance.html" class="md-nav__link">
828        Quick retrieval of advance values
829      </a>
830    </li>
831
832
833
834
835
836
837
838    <li class="md-nav__item">
839      <a href="ft2-bitmap_handling.html" class="md-nav__link">
840        Bitmap Handling
841      </a>
842    </li>
843
844
845
846
847
848
849
850    <li class="md-nav__item">
851      <a href="ft2-raster.html" class="md-nav__link">
852        Scanline Converter
853      </a>
854    </li>
855
856
857
858
859
860
861
862    <li class="md-nav__item">
863      <a href="ft2-glyph_stroker.html" class="md-nav__link">
864        Glyph Stroker
865      </a>
866    </li>
867
868
869
870
871
872
873
874    <li class="md-nav__item">
875      <a href="ft2-system_interface.html" class="md-nav__link">
876        System Interface
877      </a>
878    </li>
879
880
881
882
883
884
885
886    <li class="md-nav__item">
887      <a href="ft2-module_management.html" class="md-nav__link">
888        Module Management
889      </a>
890    </li>
891
892
893
894
895
896
897
898    <li class="md-nav__item">
899      <a href="ft2-gzip.html" class="md-nav__link">
900        GZIP Streams
901      </a>
902    </li>
903
904
905
906
907
908
909
910    <li class="md-nav__item">
911      <a href="ft2-lzw.html" class="md-nav__link">
912        LZW Streams
913      </a>
914    </li>
915
916
917
918
919
920
921
922    <li class="md-nav__item">
923      <a href="ft2-bzip2.html" class="md-nav__link">
924        BZIP2 Streams
925      </a>
926    </li>
927
928
929
930
931
932
933
934    <li class="md-nav__item">
935      <a href="ft2-debugging_apis.html" class="md-nav__link">
936        External Debugging APIs
937      </a>
938    </li>
939
940
941
942        </ul>
943      </nav>
944    </li>
945
946
947
948
949
950
951
952
953
954
955
956    <li class="md-nav__item md-nav__item--nested">
957
958
959        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
960
961      <label class="md-nav__link" for="__nav_9">
962        Error Codes
963        <span class="md-nav__icon md-icon"></span>
964      </label>
965      <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
966        <label class="md-nav__title" for="__nav_9">
967          <span class="md-nav__icon md-icon"></span>
968          Error Codes
969        </label>
970        <ul class="md-nav__list" data-md-scrollfix>
971
972
973
974
975
976    <li class="md-nav__item">
977      <a href="ft2-error_enumerations.html" class="md-nav__link">
978        Error Enumerations
979      </a>
980    </li>
981
982
983
984
985
986
987
988    <li class="md-nav__item">
989      <a href="ft2-error_code_values.html" class="md-nav__link">
990        Error Code Values
991      </a>
992    </li>
993
994
995
996        </ul>
997      </nav>
998    </li>
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
1013
1014
1015        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" checked>
1016
1017      <label class="md-nav__link" for="__nav_10">
1018        Miscellaneous
1019        <span class="md-nav__icon md-icon"></span>
1020      </label>
1021      <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
1022        <label class="md-nav__title" for="__nav_10">
1023          <span class="md-nav__icon md-icon"></span>
1024          Miscellaneous
1025        </label>
1026        <ul class="md-nav__list" data-md-scrollfix>
1027
1028
1029
1030
1031
1032    <li class="md-nav__item">
1033      <a href="ft2-gx_validation.html" class="md-nav__link">
1034        TrueTypeGX/AAT Validation
1035      </a>
1036    </li>
1037
1038
1039
1040
1041
1042
1043
1044    <li class="md-nav__item">
1045      <a href="ft2-incremental.html" class="md-nav__link">
1046        Incremental Loading
1047      </a>
1048    </li>
1049
1050
1051
1052
1053
1054
1055
1056    <li class="md-nav__item">
1057      <a href="ft2-truetype_engine.html" class="md-nav__link">
1058        The TrueType Engine
1059      </a>
1060    </li>
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070    <li class="md-nav__item md-nav__item--active">
1071
1072      <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
1073
1074
1075
1076
1077
1078        <label class="md-nav__link md-nav__link--active" for="__toc">
1079          OpenType Validation
1080          <span class="md-nav__icon md-icon"></span>
1081        </label>
1082
1083      <a href="ft2-ot_validation.html" class="md-nav__link md-nav__link--active">
1084        OpenType Validation
1085      </a>
1086
1087
1088<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1089
1090
1091
1092
1093
1094
1095    <label class="md-nav__title" for="__toc">
1096      <span class="md-nav__icon md-icon"></span>
1097      Table of contents
1098    </label>
1099    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1100
1101        <li class="md-nav__item">
1102  <a href="#synopsis" class="md-nav__link">
1103    Synopsis
1104  </a>
1105
1106</li>
1107
1108        <li class="md-nav__item">
1109  <a href="#ft_opentype_validate" class="md-nav__link">
1110    FT_OpenType_Validate
1111  </a>
1112
1113</li>
1114
1115        <li class="md-nav__item">
1116  <a href="#ft_opentype_free" class="md-nav__link">
1117    FT_OpenType_Free
1118  </a>
1119
1120</li>
1121
1122        <li class="md-nav__item">
1123  <a href="#ft_validate_otxxx" class="md-nav__link">
1124    FT_VALIDATE_OTXXX
1125  </a>
1126
1127</li>
1128
1129    </ul>
1130
1131</nav>
1132
1133    </li>
1134
1135
1136
1137        </ul>
1138      </nav>
1139    </li>
1140
1141
1142
1143  </ul>
1144</nav>
1145                  </div>
1146                </div>
1147              </div>
1148
1149
1150
1151              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1152                <div class="md-sidebar__scrollwrap">
1153                  <div class="md-sidebar__inner">
1154
1155<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1156
1157
1158
1159
1160
1161
1162    <label class="md-nav__title" for="__toc">
1163      <span class="md-nav__icon md-icon"></span>
1164      Table of contents
1165    </label>
1166    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1167
1168        <li class="md-nav__item">
1169  <a href="#synopsis" class="md-nav__link">
1170    Synopsis
1171  </a>
1172
1173</li>
1174
1175        <li class="md-nav__item">
1176  <a href="#ft_opentype_validate" class="md-nav__link">
1177    FT_OpenType_Validate
1178  </a>
1179
1180</li>
1181
1182        <li class="md-nav__item">
1183  <a href="#ft_opentype_free" class="md-nav__link">
1184    FT_OpenType_Free
1185  </a>
1186
1187</li>
1188
1189        <li class="md-nav__item">
1190  <a href="#ft_validate_otxxx" class="md-nav__link">
1191    FT_VALIDATE_OTXXX
1192  </a>
1193
1194</li>
1195
1196    </ul>
1197
1198</nav>
1199                  </div>
1200                </div>
1201              </div>
1202
1203
1204          <div class="md-content" data-md-component="content">
1205            <article class="md-content__inner md-typeset">
1206
1207
1208
1209                <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#miscellaneous">Miscellaneous</a> &raquo; OpenType Validation</p>
1210<hr />
1211<h1 id="opentype-validation">OpenType Validation<a class="headerlink" href="#opentype-validation" title="Permanent link">&para;</a></h1>
1212<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1213<p>This section contains the declaration of functions to validate some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).</p>
1214<h2 id="ft_opentype_validate">FT_OpenType_Validate<a class="headerlink" href="#ft_opentype_validate" title="Permanent link">&para;</a></h2>
1215<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p>
1216<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1217  <b>FT_OpenType_Validate</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a>    face,
1218                        <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>    validation_flags,
1219                        <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a>  *BASE_table,
1220                        <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a>  *GDEF_table,
1221                        <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a>  *GPOS_table,
1222                        <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a>  *GSUB_table,
1223                        <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a>  *JSTF_table );
1224</code></pre></div>
1225
1226<p>Validate various OpenType tables to assure that all offsets and indices are valid. The idea is that a higher-level library that actually does the text layout can access those tables without error checking (which can be quite time consuming).</p>
1227<h4>input</h4>
1228<table class="fields">
1229<tr><td class="val" id="face">face</td><td class="desc">
1230<p>A handle to the input face.</p>
1231</td></tr>
1232<tr><td class="val" id="validation_flags">validation_flags</td><td class="desc">
1233<p>A bit field that specifies the tables to be validated. See <code><a href="ft2-ot_validation.html#ft_validate_otxxx">FT_VALIDATE_OTXXX</a></code> for possible values.</p>
1234</td></tr>
1235</table>
1236
1237<h4>output</h4>
1238<table class="fields">
1239<tr><td class="val" id="base_table">BASE_table</td><td class="desc">
1240<p>A pointer to the BASE table.</p>
1241</td></tr>
1242<tr><td class="val" id="gdef_table">GDEF_table</td><td class="desc">
1243<p>A pointer to the GDEF table.</p>
1244</td></tr>
1245<tr><td class="val" id="gpos_table">GPOS_table</td><td class="desc">
1246<p>A pointer to the GPOS table.</p>
1247</td></tr>
1248<tr><td class="val" id="gsub_table">GSUB_table</td><td class="desc">
1249<p>A pointer to the GSUB table.</p>
1250</td></tr>
1251<tr><td class="val" id="jstf_table">JSTF_table</td><td class="desc">
1252<p>A pointer to the JSTF table.</p>
1253</td></tr>
1254</table>
1255
1256<h4>return</h4>
1257
1258<p>FreeType error code. 0&nbsp;means success.</p>
1259<h4>note</h4>
1260
1261<p>This function only works with OpenType fonts, returning an error otherwise.</p>
1262<p>After use, the application should deallocate the five tables with <code><a href="ft2-ot_validation.html#ft_opentype_free">FT_OpenType_Free</a></code>. A <code>NULL</code> value indicates that the table either doesn't exist in the font, or the application hasn't asked for validation.</p>
1263<hr>
1264
1265<h2 id="ft_opentype_free">FT_OpenType_Free<a class="headerlink" href="#ft_opentype_free" title="Permanent link">&para;</a></h2>
1266<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p>
1267<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1268  <b>FT_OpenType_Free</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a>   face,
1269                    <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a>  table );
1270</code></pre></div>
1271
1272<p>Free the buffer allocated by OpenType validator.</p>
1273<h4>input</h4>
1274<table class="fields">
1275<tr><td class="val" id="face">face</td><td class="desc">
1276<p>A handle to the input face.</p>
1277</td></tr>
1278<tr><td class="val" id="table">table</td><td class="desc">
1279<p>The pointer to the buffer that is allocated by <code><a href="ft2-ot_validation.html#ft_opentype_validate">FT_OpenType_Validate</a></code>.</p>
1280</td></tr>
1281</table>
1282
1283<h4>note</h4>
1284
1285<p>This function must be used to free the buffer allocated by <code><a href="ft2-ot_validation.html#ft_opentype_validate">FT_OpenType_Validate</a></code> only.</p>
1286<hr>
1287
1288<h2 id="ft_validate_otxxx">FT_VALIDATE_OTXXX<a class="headerlink" href="#ft_validate_otxxx" title="Permanent link">&para;</a></h2>
1289<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p>
1290<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_base">FT_VALIDATE_BASE</a>  0x0100
1291#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_gdef">FT_VALIDATE_GDEF</a>  0x0200
1292#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_gpos">FT_VALIDATE_GPOS</a>  0x0400
1293#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_gsub">FT_VALIDATE_GSUB</a>  0x0800
1294#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_jstf">FT_VALIDATE_JSTF</a>  0x1000
1295#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_math">FT_VALIDATE_MATH</a>  0x2000
1296
1297#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_ot">FT_VALIDATE_OT</a>  ( <a href="ft2-ot_validation.html#ft_validate_base">FT_VALIDATE_BASE</a> | \
1298                          <a href="ft2-ot_validation.html#ft_validate_gdef">FT_VALIDATE_GDEF</a> | \
1299                          <a href="ft2-ot_validation.html#ft_validate_gpos">FT_VALIDATE_GPOS</a> | \
1300                          <a href="ft2-ot_validation.html#ft_validate_gsub">FT_VALIDATE_GSUB</a> | \
1301                          <a href="ft2-ot_validation.html#ft_validate_jstf">FT_VALIDATE_JSTF</a> | \
1302                          <a href="ft2-ot_validation.html#ft_validate_math">FT_VALIDATE_MATH</a> )
1303</code></pre></div>
1304
1305<p>A list of bit-field constants used with <code><a href="ft2-ot_validation.html#ft_opentype_validate">FT_OpenType_Validate</a></code> to indicate which OpenType tables should be validated.</p>
1306<h4>values</h4>
1307<table class="fields">
1308<tr><td class="val" id="ft_validate_base">FT_VALIDATE_BASE</td><td class="desc">
1309<p>Validate BASE table.</p>
1310</td></tr>
1311<tr><td class="val" id="ft_validate_gdef">FT_VALIDATE_GDEF</td><td class="desc">
1312<p>Validate GDEF table.</p>
1313</td></tr>
1314<tr><td class="val" id="ft_validate_gpos">FT_VALIDATE_GPOS</td><td class="desc">
1315<p>Validate GPOS table.</p>
1316</td></tr>
1317<tr><td class="val" id="ft_validate_gsub">FT_VALIDATE_GSUB</td><td class="desc">
1318<p>Validate GSUB table.</p>
1319</td></tr>
1320<tr><td class="val" id="ft_validate_jstf">FT_VALIDATE_JSTF</td><td class="desc">
1321<p>Validate JSTF table.</p>
1322</td></tr>
1323<tr><td class="val" id="ft_validate_math">FT_VALIDATE_MATH</td><td class="desc">
1324<p>Validate MATH table.</p>
1325</td></tr>
1326<tr><td class="val" id="ft_validate_ot">FT_VALIDATE_OT</td><td class="desc">
1327<p>Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).</p>
1328</td></tr>
1329</table>
1330
1331<hr>
1332
1333
1334
1335
1336
1337
1338
1339            </article>
1340          </div>
1341        </div>
1342
1343      </main>
1344
1345
1346<footer class="md-footer">
1347
1348    <nav class="md-footer__inner md-grid" aria-label="Footer">
1349
1350
1351        <a href="ft2-truetype_engine.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: The TrueType Engine" rel="prev">
1352          <div class="md-footer__button md-icon">
1353            <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>
1354          </div>
1355          <div class="md-footer__title">
1356            <div class="md-ellipsis">
1357              <span class="md-footer__direction">
1358                Previous
1359              </span>
1360              The TrueType Engine
1361            </div>
1362          </div>
1363        </a>
1364
1365
1366    </nav>
1367
1368  <div class="md-footer-meta md-typeset">
1369    <div class="md-footer-meta__inner md-grid">
1370      <div class="md-footer-copyright">
1371
1372          <div class="md-footer-copyright__highlight">
1373            Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1374          </div>
1375
1376        Made with
1377        <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1378          Material for MkDocs
1379        </a>
1380
1381      </div>
1382
1383    </div>
1384  </div>
1385</footer>
1386
1387    </div>
1388    <div class="md-dialog" data-md-component="dialog">
1389      <div class="md-dialog__inner md-typeset"></div>
1390    </div>
1391    <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>
1392
1393
1394      <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
1395
1396        <script src="javascripts/extra.js"></script>
1397
1398
1399  </body>
1400</html>