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>OpenType 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="#opentype-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 OpenType 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 <li class="md-nav__item"> 940 <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link"> 941 TrueTypeGX/AAT Validation 942 </a> 943 </li> 944 945 946 947 948 949 950 951 <li class="md-nav__item"> 952 <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link"> 953 Incremental Loading 954 </a> 955 </li> 956 957 958 959 960 961 962 963 <li class="md-nav__item"> 964 <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link"> 965 The TrueType Engine 966 </a> 967 </li> 968 969 970 971 972 973 974 975 976 977 <li class="md-nav__item md-nav__item--active"> 978 979 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 980 981 982 983 984 <label class="md-nav__link md-nav__link--active" for="__toc"> 985 OpenType Validation 986 </label> 987 988 <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link md-nav__link--active"> 989 OpenType Validation 990 </a> 991 992 993<nav class="md-nav md-nav--secondary"> 994 995 996 997 998 999 <label class="md-nav__title" for="__toc">Table of contents</label> 1000 <ul class="md-nav__list" data-md-scrollfix> 1001 1002 <li class="md-nav__item"> 1003 <a href="#synopsis" class="md-nav__link"> 1004 Synopsis 1005 </a> 1006 1007</li> 1008 1009 <li class="md-nav__item"> 1010 <a href="#ft_opentype_validate" class="md-nav__link"> 1011 FT_OpenType_Validate 1012 </a> 1013 1014</li> 1015 1016 <li class="md-nav__item"> 1017 <a href="#ft_opentype_free" class="md-nav__link"> 1018 FT_OpenType_Free 1019 </a> 1020 1021</li> 1022 1023 <li class="md-nav__item"> 1024 <a href="#ft_validate_otxxx" class="md-nav__link"> 1025 FT_VALIDATE_OTXXX 1026 </a> 1027 1028</li> 1029 1030 1031 1032 1033 1034 </ul> 1035 1036</nav> 1037 1038 </li> 1039 1040 1041 </ul> 1042 </nav> 1043 </li> 1044 1045 1046 </ul> 1047</nav> 1048 </div> 1049 </div> 1050 </div> 1051 1052 1053 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> 1054 <div class="md-sidebar__scrollwrap"> 1055 <div class="md-sidebar__inner"> 1056 1057<nav class="md-nav md-nav--secondary"> 1058 1059 1060 1061 1062 1063 <label class="md-nav__title" for="__toc">Table of contents</label> 1064 <ul class="md-nav__list" data-md-scrollfix> 1065 1066 <li class="md-nav__item"> 1067 <a href="#synopsis" class="md-nav__link"> 1068 Synopsis 1069 </a> 1070 1071</li> 1072 1073 <li class="md-nav__item"> 1074 <a href="#ft_opentype_validate" class="md-nav__link"> 1075 FT_OpenType_Validate 1076 </a> 1077 1078</li> 1079 1080 <li class="md-nav__item"> 1081 <a href="#ft_opentype_free" class="md-nav__link"> 1082 FT_OpenType_Free 1083 </a> 1084 1085</li> 1086 1087 <li class="md-nav__item"> 1088 <a href="#ft_validate_otxxx" class="md-nav__link"> 1089 FT_VALIDATE_OTXXX 1090 </a> 1091 1092</li> 1093 1094 1095 1096 1097 1098 </ul> 1099 1100</nav> 1101 </div> 1102 </div> 1103 </div> 1104 1105 1106 <div class="md-content"> 1107 <article class="md-content__inner md-typeset"> 1108 1109 1110 1111 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#miscellaneous">Miscellaneous</a> » OpenType Validation</p> 1112<hr /> 1113<h1 id="opentype-validation">OpenType Validation<a class="headerlink" href="#opentype-validation" title="Permanent link">¶</a></h1> 1114<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> 1115<p>This section contains the declaration of functions to validate some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).</p> 1116<h2 id="ft_opentype_validate">FT_OpenType_Validate<a class="headerlink" href="#ft_opentype_validate" title="Permanent link">¶</a></h2> 1117<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p> 1118<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1119 <b>FT_OpenType_Validate</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, 1120 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> validation_flags, 1121 <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> *BASE_table, 1122 <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> *GDEF_table, 1123 <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> *GPOS_table, 1124 <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> *GSUB_table, 1125 <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> *JSTF_table ); 1126</code></pre></div> 1127 1128<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> 1129<h4>input</h4> 1130 1131<table class="fields"> 1132<tr><td class="val" id="face">face</td><td class="desc"> 1133<p>A handle to the input face.</p> 1134</td></tr> 1135<tr><td class="val" id="validation_flags">validation_flags</td><td class="desc"> 1136<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> 1137</td></tr> 1138</table> 1139 1140<h4>output</h4> 1141 1142<table class="fields"> 1143<tr><td class="val" id="base_table">BASE_table</td><td class="desc"> 1144<p>A pointer to the BASE table.</p> 1145</td></tr> 1146<tr><td class="val" id="gdef_table">GDEF_table</td><td class="desc"> 1147<p>A pointer to the GDEF table.</p> 1148</td></tr> 1149<tr><td class="val" id="gpos_table">GPOS_table</td><td class="desc"> 1150<p>A pointer to the GPOS table.</p> 1151</td></tr> 1152<tr><td class="val" id="gsub_table">GSUB_table</td><td class="desc"> 1153<p>A pointer to the GSUB table.</p> 1154</td></tr> 1155<tr><td class="val" id="jstf_table">JSTF_table</td><td class="desc"> 1156<p>A pointer to the JSTF table.</p> 1157</td></tr> 1158</table> 1159 1160<h4>return</h4> 1161 1162<p>FreeType error code. 0 means success.</p> 1163<h4>note</h4> 1164 1165<p>This function only works with OpenType fonts, returning an error otherwise.</p> 1166<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> 1167<hr> 1168 1169<h2 id="ft_opentype_free">FT_OpenType_Free<a class="headerlink" href="#ft_opentype_free" title="Permanent link">¶</a></h2> 1170<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p> 1171<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1172 <b>FT_OpenType_Free</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, 1173 <a href="ft2-basic_types.html#ft_bytes">FT_Bytes</a> table ); 1174</code></pre></div> 1175 1176<p>Free the buffer allocated by OpenType validator.</p> 1177<h4>input</h4> 1178 1179<table class="fields"> 1180<tr><td class="val" id="face">face</td><td class="desc"> 1181<p>A handle to the input face.</p> 1182</td></tr> 1183<tr><td class="val" id="table">table</td><td class="desc"> 1184<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> 1185</td></tr> 1186</table> 1187 1188<h4>note</h4> 1189 1190<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> 1191<hr> 1192 1193<h2 id="ft_validate_otxxx">FT_VALIDATE_OTXXX<a class="headerlink" href="#ft_validate_otxxx" title="Permanent link">¶</a></h2> 1194<p>Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h).</p> 1195<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_base">FT_VALIDATE_BASE</a> 0x0100 1196#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_gdef">FT_VALIDATE_GDEF</a> 0x0200 1197#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_gpos">FT_VALIDATE_GPOS</a> 0x0400 1198#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_gsub">FT_VALIDATE_GSUB</a> 0x0800 1199#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_jstf">FT_VALIDATE_JSTF</a> 0x1000 1200#<span class="keyword">define</span> <a href="ft2-ot_validation.html#ft_validate_math">FT_VALIDATE_MATH</a> 0x2000 1201 1202#<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> | \ 1203 <a href="ft2-ot_validation.html#ft_validate_gdef">FT_VALIDATE_GDEF</a> | \ 1204 <a href="ft2-ot_validation.html#ft_validate_gpos">FT_VALIDATE_GPOS</a> | \ 1205 <a href="ft2-ot_validation.html#ft_validate_gsub">FT_VALIDATE_GSUB</a> | \ 1206 <a href="ft2-ot_validation.html#ft_validate_jstf">FT_VALIDATE_JSTF</a> | \ 1207 <a href="ft2-ot_validation.html#ft_validate_math">FT_VALIDATE_MATH</a> ) 1208</code></pre></div> 1209 1210<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> 1211<h4>values</h4> 1212 1213<table class="fields"> 1214<tr><td class="val" id="ft_validate_base">FT_VALIDATE_BASE</td><td class="desc"> 1215<p>Validate BASE table.</p> 1216</td></tr> 1217<tr><td class="val" id="ft_validate_gdef">FT_VALIDATE_GDEF</td><td class="desc"> 1218<p>Validate GDEF table.</p> 1219</td></tr> 1220<tr><td class="val" id="ft_validate_gpos">FT_VALIDATE_GPOS</td><td class="desc"> 1221<p>Validate GPOS table.</p> 1222</td></tr> 1223<tr><td class="val" id="ft_validate_gsub">FT_VALIDATE_GSUB</td><td class="desc"> 1224<p>Validate GSUB table.</p> 1225</td></tr> 1226<tr><td class="val" id="ft_validate_jstf">FT_VALIDATE_JSTF</td><td class="desc"> 1227<p>Validate JSTF table.</p> 1228</td></tr> 1229<tr><td class="val" id="ft_validate_math">FT_VALIDATE_MATH</td><td class="desc"> 1230<p>Validate MATH table.</p> 1231</td></tr> 1232<tr><td class="val" id="ft_validate_ot">FT_VALIDATE_OT</td><td class="desc"> 1233<p>Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).</p> 1234</td></tr> 1235</table> 1236 1237<hr> 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 </article> 1249 </div> 1250 </div> 1251 </main> 1252 1253 1254<footer class="md-footer"> 1255 1256 <div class="md-footer-nav"> 1257 <nav class="md-footer-nav__inner md-grid"> 1258 1259 <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev"> 1260 <div class="md-flex__cell md-flex__cell--shrink"> 1261 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> 1262 </div> 1263 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 1264 <span class="md-flex__ellipsis"> 1265 <span class="md-footer-nav__direction"> 1266 Previous 1267 </span> 1268 The TrueType Engine 1269 </span> 1270 </div> 1271 </a> 1272 1273 1274 </nav> 1275 </div> 1276 1277 <div class="md-footer-meta md-typeset"> 1278 <div class="md-footer-meta__inner md-grid"> 1279 <div class="md-footer-copyright"> 1280 1281 <div class="md-footer-copyright__highlight"> 1282 Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. 1283 </div> 1284 1285 powered by 1286 <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a> 1287 and 1288 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 1289 Material for MkDocs</a> 1290 </div> 1291 1292 </div> 1293 </div> 1294</footer> 1295 1296 </div> 1297 1298 <script src="assets/javascripts/application.c33a9706.js"></script> 1299 1300 <script>app.initialize({version:"1.1",url:{base:"."}})</script> 1301 1302 <script src="javascripts/extra.js"></script> 1303 1304 1305 </body> 1306</html>