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  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> » <a href="../">Docs</a> » <a href="index.html#miscellaneous">Miscellaneous</a> » TrueTypeGX/AAT Validation</p> 1168<hr /> 1169<h1 id="truetypegxaat-validation">TrueTypeGX/AAT Validation<a class="headerlink" href="#truetypegxaat-validation" title="Permanent link">¶</a></h1> 1170<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</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">¶</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 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">¶</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">¶</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 ‘kern’ 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 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">¶</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">¶</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">¶</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 ‘feat’ table.</p> 1337</td></tr> 1338<tr><td class="val" id="ft_validate_mort">FT_VALIDATE_mort</td><td class="desc"> 1339<p>Validate ‘mort’ table.</p> 1340</td></tr> 1341<tr><td class="val" id="ft_validate_morx">FT_VALIDATE_morx</td><td class="desc"> 1342<p>Validate ‘morx’ table.</p> 1343</td></tr> 1344<tr><td class="val" id="ft_validate_bsln">FT_VALIDATE_bsln</td><td class="desc"> 1345<p>Validate ‘bsln’ table.</p> 1346</td></tr> 1347<tr><td class="val" id="ft_validate_just">FT_VALIDATE_just</td><td class="desc"> 1348<p>Validate ‘just’ table.</p> 1349</td></tr> 1350<tr><td class="val" id="ft_validate_kern">FT_VALIDATE_kern</td><td class="desc"> 1351<p>Validate ‘kern’ table.</p> 1352</td></tr> 1353<tr><td class="val" id="ft_validate_opbd">FT_VALIDATE_opbd</td><td class="desc"> 1354<p>Validate ‘opbd’ table.</p> 1355</td></tr> 1356<tr><td class="val" id="ft_validate_trak">FT_VALIDATE_trak</td><td class="desc"> 1357<p>Validate ‘trak’ table.</p> 1358</td></tr> 1359<tr><td class="val" id="ft_validate_prop">FT_VALIDATE_prop</td><td class="desc"> 1360<p>Validate ‘prop’ table.</p> 1361</td></tr> 1362<tr><td class="val" id="ft_validate_lcar">FT_VALIDATE_lcar</td><td class="desc"> 1363<p>Validate ‘lcar’ 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">¶</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 << 0 ) 1375#<span class="keyword">define</span> <a href="ft2-gx_validation.html#ft_validate_apple">FT_VALIDATE_APPLE</a> ( FT_VALIDATE_GX_START << 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 ‘kern’ 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 ‘kern’ 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 ‘kern’ 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>