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