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>Glyph Stroker - 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="#glyph-stroker" 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 Glyph Stroker 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 703 704 <li class="md-nav__item md-nav__item--active md-nav__item--nested"> 705 706 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8" checked> 707 708 <label class="md-nav__link" for="nav-8"> 709 Support API 710 </label> 711 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 712 <label class="md-nav__title" for="nav-8"> 713 Support API 714 </label> 715 <ul class="md-nav__list" data-md-scrollfix> 716 717 718 719 720 721 722 723 <li class="md-nav__item"> 724 <a href="ft2-computations.html" title="Computations" class="md-nav__link"> 725 Computations 726 </a> 727 </li> 728 729 730 731 732 733 734 735 <li class="md-nav__item"> 736 <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link"> 737 List Processing 738 </a> 739 </li> 740 741 742 743 744 745 746 747 <li class="md-nav__item"> 748 <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link"> 749 Outline Processing 750 </a> 751 </li> 752 753 754 755 756 757 758 759 <li class="md-nav__item"> 760 <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link"> 761 Quick retrieval of advance values 762 </a> 763 </li> 764 765 766 767 768 769 770 771 <li class="md-nav__item"> 772 <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link"> 773 Bitmap Handling 774 </a> 775 </li> 776 777 778 779 780 781 782 783 <li class="md-nav__item"> 784 <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link"> 785 Scanline Converter 786 </a> 787 </li> 788 789 790 791 792 793 794 795 796 797 <li class="md-nav__item md-nav__item--active"> 798 799 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 800 801 802 803 804 <label class="md-nav__link md-nav__link--active" for="__toc"> 805 Glyph Stroker 806 </label> 807 808 <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link md-nav__link--active"> 809 Glyph Stroker 810 </a> 811 812 813<nav class="md-nav md-nav--secondary"> 814 815 816 817 818 819 <label class="md-nav__title" for="__toc">Table of contents</label> 820 <ul class="md-nav__list" data-md-scrollfix> 821 822 <li class="md-nav__item"> 823 <a href="#synopsis" class="md-nav__link"> 824 Synopsis 825 </a> 826 827</li> 828 829 <li class="md-nav__item"> 830 <a href="#ft_stroker" class="md-nav__link"> 831 FT_Stroker 832 </a> 833 834</li> 835 836 <li class="md-nav__item"> 837 <a href="#ft_stroker_linejoin" class="md-nav__link"> 838 FT_Stroker_LineJoin 839 </a> 840 841</li> 842 843 <li class="md-nav__item"> 844 <a href="#ft_stroker_linecap" class="md-nav__link"> 845 FT_Stroker_LineCap 846 </a> 847 848</li> 849 850 <li class="md-nav__item"> 851 <a href="#ft_strokerborder" class="md-nav__link"> 852 FT_StrokerBorder 853 </a> 854 855</li> 856 857 <li class="md-nav__item"> 858 <a href="#ft_outline_getinsideborder" class="md-nav__link"> 859 FT_Outline_GetInsideBorder 860 </a> 861 862</li> 863 864 <li class="md-nav__item"> 865 <a href="#ft_outline_getoutsideborder" class="md-nav__link"> 866 FT_Outline_GetOutsideBorder 867 </a> 868 869</li> 870 871 <li class="md-nav__item"> 872 <a href="#ft_glyph_stroke" class="md-nav__link"> 873 FT_Glyph_Stroke 874 </a> 875 876</li> 877 878 <li class="md-nav__item"> 879 <a href="#ft_glyph_strokeborder" class="md-nav__link"> 880 FT_Glyph_StrokeBorder 881 </a> 882 883</li> 884 885 <li class="md-nav__item"> 886 <a href="#ft_stroker_new" class="md-nav__link"> 887 FT_Stroker_New 888 </a> 889 890</li> 891 892 <li class="md-nav__item"> 893 <a href="#ft_stroker_set" class="md-nav__link"> 894 FT_Stroker_Set 895 </a> 896 897</li> 898 899 <li class="md-nav__item"> 900 <a href="#ft_stroker_rewind" class="md-nav__link"> 901 FT_Stroker_Rewind 902 </a> 903 904</li> 905 906 <li class="md-nav__item"> 907 <a href="#ft_stroker_parseoutline" class="md-nav__link"> 908 FT_Stroker_ParseOutline 909 </a> 910 911</li> 912 913 <li class="md-nav__item"> 914 <a href="#ft_stroker_done" class="md-nav__link"> 915 FT_Stroker_Done 916 </a> 917 918</li> 919 920 <li class="md-nav__item"> 921 <a href="#ft_stroker_beginsubpath" class="md-nav__link"> 922 FT_Stroker_BeginSubPath 923 </a> 924 925</li> 926 927 <li class="md-nav__item"> 928 <a href="#ft_stroker_endsubpath" class="md-nav__link"> 929 FT_Stroker_EndSubPath 930 </a> 931 932</li> 933 934 <li class="md-nav__item"> 935 <a href="#ft_stroker_lineto" class="md-nav__link"> 936 FT_Stroker_LineTo 937 </a> 938 939</li> 940 941 <li class="md-nav__item"> 942 <a href="#ft_stroker_conicto" class="md-nav__link"> 943 FT_Stroker_ConicTo 944 </a> 945 946</li> 947 948 <li class="md-nav__item"> 949 <a href="#ft_stroker_cubicto" class="md-nav__link"> 950 FT_Stroker_CubicTo 951 </a> 952 953</li> 954 955 <li class="md-nav__item"> 956 <a href="#ft_stroker_getbordercounts" class="md-nav__link"> 957 FT_Stroker_GetBorderCounts 958 </a> 959 960</li> 961 962 <li class="md-nav__item"> 963 <a href="#ft_stroker_exportborder" class="md-nav__link"> 964 FT_Stroker_ExportBorder 965 </a> 966 967</li> 968 969 <li class="md-nav__item"> 970 <a href="#ft_stroker_getcounts" class="md-nav__link"> 971 FT_Stroker_GetCounts 972 </a> 973 974</li> 975 976 <li class="md-nav__item"> 977 <a href="#ft_stroker_export" class="md-nav__link"> 978 FT_Stroker_Export 979 </a> 980 981</li> 982 983 984 985 986 987 </ul> 988 989</nav> 990 991 </li> 992 993 994 995 996 997 998 999 <li class="md-nav__item"> 1000 <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link"> 1001 System Interface 1002 </a> 1003 </li> 1004 1005 1006 1007 1008 1009 1010 1011 <li class="md-nav__item"> 1012 <a href="ft2-module_management.html" title="Module Management" class="md-nav__link"> 1013 Module Management 1014 </a> 1015 </li> 1016 1017 1018 1019 1020 1021 1022 1023 <li class="md-nav__item"> 1024 <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link"> 1025 GZIP Streams 1026 </a> 1027 </li> 1028 1029 1030 1031 1032 1033 1034 1035 <li class="md-nav__item"> 1036 <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link"> 1037 LZW Streams 1038 </a> 1039 </li> 1040 1041 1042 1043 1044 1045 1046 1047 <li class="md-nav__item"> 1048 <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link"> 1049 BZIP2 Streams 1050 </a> 1051 </li> 1052 1053 1054 </ul> 1055 </nav> 1056 </li> 1057 1058 1059 1060 1061 1062 1063 1064 <li class="md-nav__item md-nav__item--nested"> 1065 1066 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9"> 1067 1068 <label class="md-nav__link" for="nav-9"> 1069 Error Codes 1070 </label> 1071 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 1072 <label class="md-nav__title" for="nav-9"> 1073 Error Codes 1074 </label> 1075 <ul class="md-nav__list" data-md-scrollfix> 1076 1077 1078 1079 1080 1081 1082 1083 <li class="md-nav__item"> 1084 <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link"> 1085 Error Enumerations 1086 </a> 1087 </li> 1088 1089 1090 1091 1092 1093 1094 1095 <li class="md-nav__item"> 1096 <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link"> 1097 Error Code Values 1098 </a> 1099 </li> 1100 1101 1102 </ul> 1103 </nav> 1104 </li> 1105 1106 1107 1108 1109 1110 1111 1112 <li class="md-nav__item md-nav__item--nested"> 1113 1114 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10"> 1115 1116 <label class="md-nav__link" for="nav-10"> 1117 Miscellaneous 1118 </label> 1119 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 1120 <label class="md-nav__title" for="nav-10"> 1121 Miscellaneous 1122 </label> 1123 <ul class="md-nav__list" data-md-scrollfix> 1124 1125 1126 1127 1128 1129 1130 1131 <li class="md-nav__item"> 1132 <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link"> 1133 TrueTypeGX/AAT Validation 1134 </a> 1135 </li> 1136 1137 1138 1139 1140 1141 1142 1143 <li class="md-nav__item"> 1144 <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link"> 1145 Incremental Loading 1146 </a> 1147 </li> 1148 1149 1150 1151 1152 1153 1154 1155 <li class="md-nav__item"> 1156 <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link"> 1157 The TrueType Engine 1158 </a> 1159 </li> 1160 1161 1162 1163 1164 1165 1166 1167 <li class="md-nav__item"> 1168 <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link"> 1169 OpenType Validation 1170 </a> 1171 </li> 1172 1173 1174 </ul> 1175 </nav> 1176 </li> 1177 1178 1179 </ul> 1180</nav> 1181 </div> 1182 </div> 1183 </div> 1184 1185 1186 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> 1187 <div class="md-sidebar__scrollwrap"> 1188 <div class="md-sidebar__inner"> 1189 1190<nav class="md-nav md-nav--secondary"> 1191 1192 1193 1194 1195 1196 <label class="md-nav__title" for="__toc">Table of contents</label> 1197 <ul class="md-nav__list" data-md-scrollfix> 1198 1199 <li class="md-nav__item"> 1200 <a href="#synopsis" class="md-nav__link"> 1201 Synopsis 1202 </a> 1203 1204</li> 1205 1206 <li class="md-nav__item"> 1207 <a href="#ft_stroker" class="md-nav__link"> 1208 FT_Stroker 1209 </a> 1210 1211</li> 1212 1213 <li class="md-nav__item"> 1214 <a href="#ft_stroker_linejoin" class="md-nav__link"> 1215 FT_Stroker_LineJoin 1216 </a> 1217 1218</li> 1219 1220 <li class="md-nav__item"> 1221 <a href="#ft_stroker_linecap" class="md-nav__link"> 1222 FT_Stroker_LineCap 1223 </a> 1224 1225</li> 1226 1227 <li class="md-nav__item"> 1228 <a href="#ft_strokerborder" class="md-nav__link"> 1229 FT_StrokerBorder 1230 </a> 1231 1232</li> 1233 1234 <li class="md-nav__item"> 1235 <a href="#ft_outline_getinsideborder" class="md-nav__link"> 1236 FT_Outline_GetInsideBorder 1237 </a> 1238 1239</li> 1240 1241 <li class="md-nav__item"> 1242 <a href="#ft_outline_getoutsideborder" class="md-nav__link"> 1243 FT_Outline_GetOutsideBorder 1244 </a> 1245 1246</li> 1247 1248 <li class="md-nav__item"> 1249 <a href="#ft_glyph_stroke" class="md-nav__link"> 1250 FT_Glyph_Stroke 1251 </a> 1252 1253</li> 1254 1255 <li class="md-nav__item"> 1256 <a href="#ft_glyph_strokeborder" class="md-nav__link"> 1257 FT_Glyph_StrokeBorder 1258 </a> 1259 1260</li> 1261 1262 <li class="md-nav__item"> 1263 <a href="#ft_stroker_new" class="md-nav__link"> 1264 FT_Stroker_New 1265 </a> 1266 1267</li> 1268 1269 <li class="md-nav__item"> 1270 <a href="#ft_stroker_set" class="md-nav__link"> 1271 FT_Stroker_Set 1272 </a> 1273 1274</li> 1275 1276 <li class="md-nav__item"> 1277 <a href="#ft_stroker_rewind" class="md-nav__link"> 1278 FT_Stroker_Rewind 1279 </a> 1280 1281</li> 1282 1283 <li class="md-nav__item"> 1284 <a href="#ft_stroker_parseoutline" class="md-nav__link"> 1285 FT_Stroker_ParseOutline 1286 </a> 1287 1288</li> 1289 1290 <li class="md-nav__item"> 1291 <a href="#ft_stroker_done" class="md-nav__link"> 1292 FT_Stroker_Done 1293 </a> 1294 1295</li> 1296 1297 <li class="md-nav__item"> 1298 <a href="#ft_stroker_beginsubpath" class="md-nav__link"> 1299 FT_Stroker_BeginSubPath 1300 </a> 1301 1302</li> 1303 1304 <li class="md-nav__item"> 1305 <a href="#ft_stroker_endsubpath" class="md-nav__link"> 1306 FT_Stroker_EndSubPath 1307 </a> 1308 1309</li> 1310 1311 <li class="md-nav__item"> 1312 <a href="#ft_stroker_lineto" class="md-nav__link"> 1313 FT_Stroker_LineTo 1314 </a> 1315 1316</li> 1317 1318 <li class="md-nav__item"> 1319 <a href="#ft_stroker_conicto" class="md-nav__link"> 1320 FT_Stroker_ConicTo 1321 </a> 1322 1323</li> 1324 1325 <li class="md-nav__item"> 1326 <a href="#ft_stroker_cubicto" class="md-nav__link"> 1327 FT_Stroker_CubicTo 1328 </a> 1329 1330</li> 1331 1332 <li class="md-nav__item"> 1333 <a href="#ft_stroker_getbordercounts" class="md-nav__link"> 1334 FT_Stroker_GetBorderCounts 1335 </a> 1336 1337</li> 1338 1339 <li class="md-nav__item"> 1340 <a href="#ft_stroker_exportborder" class="md-nav__link"> 1341 FT_Stroker_ExportBorder 1342 </a> 1343 1344</li> 1345 1346 <li class="md-nav__item"> 1347 <a href="#ft_stroker_getcounts" class="md-nav__link"> 1348 FT_Stroker_GetCounts 1349 </a> 1350 1351</li> 1352 1353 <li class="md-nav__item"> 1354 <a href="#ft_stroker_export" class="md-nav__link"> 1355 FT_Stroker_Export 1356 </a> 1357 1358</li> 1359 1360 1361 1362 1363 1364 </ul> 1365 1366</nav> 1367 </div> 1368 </div> 1369 </div> 1370 1371 1372 <div class="md-content"> 1373 <article class="md-content__inner md-typeset"> 1374 1375 1376 1377 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » Glyph Stroker</p> 1378<hr /> 1379<h1 id="glyph-stroker">Glyph Stroker<a class="headerlink" href="#glyph-stroker" title="Permanent link">¶</a></h1> 1380<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> 1381<p>This component generates stroked outlines of a given vectorial glyph. It also allows you to retrieve the ‘outside’ and/or the ‘inside’ borders of the stroke.</p> 1382<p>This can be useful to generate ‘bordered’ glyph, i.e., glyphs displayed with a colored (and anti-aliased) border around their shape.</p> 1383<h2 id="ft_stroker">FT_Stroker<a class="headerlink" href="#ft_stroker" title="Permanent link">¶</a></h2> 1384<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1385<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_StrokerRec_* <b>FT_Stroker</b>; 1386</code></pre></div> 1387 1388<p>Opaque handle to a path stroker object.</p> 1389<hr> 1390 1391<h2 id="ft_stroker_linejoin">FT_Stroker_LineJoin<a class="headerlink" href="#ft_stroker_linejoin" title="Permanent link">¶</a></h2> 1392<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1393<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_Stroker_LineJoin_ 1394 { 1395 <a href="ft2-glyph_stroker.html#ft_stroker_linejoin_round">FT_STROKER_LINEJOIN_ROUND</a> = 0, 1396 <a href="ft2-glyph_stroker.html#ft_stroker_linejoin_bevel">FT_STROKER_LINEJOIN_BEVEL</a> = 1, 1397 <a href="ft2-glyph_stroker.html#ft_stroker_linejoin_miter_variable">FT_STROKER_LINEJOIN_MITER_VARIABLE</a> = 2, 1398 <a href="ft2-glyph_stroker.html#ft_stroker_linejoin_miter">FT_STROKER_LINEJOIN_MITER</a> = <a href="ft2-glyph_stroker.html#ft_stroker_linejoin_miter_variable">FT_STROKER_LINEJOIN_MITER_VARIABLE</a>, 1399 <a href="ft2-glyph_stroker.html#ft_stroker_linejoin_miter_fixed">FT_STROKER_LINEJOIN_MITER_FIXED</a> = 3 1400 1401 } <b>FT_Stroker_LineJoin</b>; 1402</code></pre></div> 1403 1404<p>These values determine how two joining lines are rendered in a stroker.</p> 1405<h4>values</h4> 1406 1407<table class="fields long"> 1408<tr><td class="val" id="ft_stroker_linejoin_round">FT_STROKER_LINEJOIN_ROUND</td><td class="desc"> 1409<p>Used to render rounded line joins. Circular arcs are used to join two lines smoothly.</p> 1410</td></tr> 1411<tr><td class="val" id="ft_stroker_linejoin_bevel">FT_STROKER_LINEJOIN_BEVEL</td><td class="desc"> 1412<p>Used to render beveled line joins. The outer corner of the joined lines is filled by enclosing the triangular region of the corner with a straight line between the outer corners of each stroke.</p> 1413</td></tr> 1414<tr><td class="val" id="ft_stroker_linejoin_miter_fixed">FT_STROKER_LINEJOIN_MITER_FIXED</td><td class="desc"> 1415<p>Used to render mitered line joins, with fixed bevels if the miter limit is exceeded. The outer edges of the strokes for the two segments are extended until they meet at an angle. A bevel join (see above) is used if the segments meet at too sharp an angle and the outer edges meet beyond a distance corresponding to the meter limit. This prevents long spikes being created. <code>FT_STROKER_LINEJOIN_MITER_FIXED</code> generates a miter line join as used in PostScript and PDF.</p> 1416</td></tr> 1417<tr><td class="val" id="ft_stroker_linejoin_miter_variable">FT_STROKER_LINEJOIN_MITER_VARIABLE</td><td class="desc"> 1418 1419</td></tr> 1420<tr><td class="val" id="ft_stroker_linejoin_miter">FT_STROKER_LINEJOIN_MITER</td><td class="desc"> 1421<p>Used to render mitered line joins, with variable bevels if the miter limit is exceeded. The intersection of the strokes is clipped perpendicularly to the bisector, at a distance corresponding to the miter limit. This prevents long spikes being created. <code>FT_STROKER_LINEJOIN_MITER_VARIABLE</code> generates a mitered line join as used in XPS. <code>FT_STROKER_LINEJOIN_MITER</code> is an alias for <code>FT_STROKER_LINEJOIN_MITER_VARIABLE</code>, retained for backward compatibility.</p> 1422</td></tr> 1423</table> 1424 1425<hr> 1426 1427<h2 id="ft_stroker_linecap">FT_Stroker_LineCap<a class="headerlink" href="#ft_stroker_linecap" title="Permanent link">¶</a></h2> 1428<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1429<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_Stroker_LineCap_ 1430 { 1431 <a href="ft2-glyph_stroker.html#ft_stroker_linecap_butt">FT_STROKER_LINECAP_BUTT</a> = 0, 1432 <a href="ft2-glyph_stroker.html#ft_stroker_linecap_round">FT_STROKER_LINECAP_ROUND</a>, 1433 <a href="ft2-glyph_stroker.html#ft_stroker_linecap_square">FT_STROKER_LINECAP_SQUARE</a> 1434 1435 } <b>FT_Stroker_LineCap</b>; 1436</code></pre></div> 1437 1438<p>These values determine how the end of opened sub-paths are rendered in a stroke.</p> 1439<h4>values</h4> 1440 1441<table class="fields"> 1442<tr><td class="val" id="ft_stroker_linecap_butt">FT_STROKER_LINECAP_BUTT</td><td class="desc"> 1443<p>The end of lines is rendered as a full stop on the last point itself.</p> 1444</td></tr> 1445<tr><td class="val" id="ft_stroker_linecap_round">FT_STROKER_LINECAP_ROUND</td><td class="desc"> 1446<p>The end of lines is rendered as a half-circle around the last point.</p> 1447</td></tr> 1448<tr><td class="val" id="ft_stroker_linecap_square">FT_STROKER_LINECAP_SQUARE</td><td class="desc"> 1449<p>The end of lines is rendered as a square around the last point.</p> 1450</td></tr> 1451</table> 1452 1453<hr> 1454 1455<h2 id="ft_strokerborder">FT_StrokerBorder<a class="headerlink" href="#ft_strokerborder" title="Permanent link">¶</a></h2> 1456<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1457<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_StrokerBorder_ 1458 { 1459 <a href="ft2-glyph_stroker.html#ft_stroker_border_left">FT_STROKER_BORDER_LEFT</a> = 0, 1460 <a href="ft2-glyph_stroker.html#ft_stroker_border_right">FT_STROKER_BORDER_RIGHT</a> 1461 1462 } <b>FT_StrokerBorder</b>; 1463</code></pre></div> 1464 1465<p>These values are used to select a given stroke border in <code><a href="ft2-glyph_stroker.html#ft_stroker_getbordercounts">FT_Stroker_GetBorderCounts</a></code> and <code><a href="ft2-glyph_stroker.html#ft_stroker_exportborder">FT_Stroker_ExportBorder</a></code>.</p> 1466<h4>values</h4> 1467 1468<table class="fields"> 1469<tr><td class="val" id="ft_stroker_border_left">FT_STROKER_BORDER_LEFT</td><td class="desc"> 1470<p>Select the left border, relative to the drawing direction.</p> 1471</td></tr> 1472<tr><td class="val" id="ft_stroker_border_right">FT_STROKER_BORDER_RIGHT</td><td class="desc"> 1473<p>Select the right border, relative to the drawing direction.</p> 1474</td></tr> 1475</table> 1476 1477<h4>note</h4> 1478 1479<p>Applications are generally interested in the ‘inside’ and ‘outside’ borders. However, there is no direct mapping between these and the ‘left’ and ‘right’ ones, since this really depends on the glyph's drawing orientation, which varies between font formats.</p> 1480<p>You can however use <code><a href="ft2-glyph_stroker.html#ft_outline_getinsideborder">FT_Outline_GetInsideBorder</a></code> and <code><a href="ft2-glyph_stroker.html#ft_outline_getoutsideborder">FT_Outline_GetOutsideBorder</a></code> to get these.</p> 1481<hr> 1482 1483<h2 id="ft_outline_getinsideborder">FT_Outline_GetInsideBorder<a class="headerlink" href="#ft_outline_getinsideborder" title="Permanent link">¶</a></h2> 1484<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1485<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-glyph_stroker.html#ft_strokerborder">FT_StrokerBorder</a> ) 1486 <b>FT_Outline_GetInsideBorder</b>( <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a>* outline ); 1487</code></pre></div> 1488 1489<p>Retrieve the <code><a href="ft2-glyph_stroker.html#ft_strokerborder">FT_StrokerBorder</a></code> value corresponding to the ‘inside’ borders of a given outline.</p> 1490<h4>input</h4> 1491 1492<table class="fields"> 1493<tr><td class="val" id="outline">outline</td><td class="desc"> 1494<p>The source outline handle.</p> 1495</td></tr> 1496</table> 1497 1498<h4>return</h4> 1499 1500<p>The border index. <code><a href="ft2-glyph_stroker.html#ft_strokerborder">FT_STROKER_BORDER_RIGHT</a></code> for empty or invalid outlines.</p> 1501<hr> 1502 1503<h2 id="ft_outline_getoutsideborder">FT_Outline_GetOutsideBorder<a class="headerlink" href="#ft_outline_getoutsideborder" title="Permanent link">¶</a></h2> 1504<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1505<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-glyph_stroker.html#ft_strokerborder">FT_StrokerBorder</a> ) 1506 <b>FT_Outline_GetOutsideBorder</b>( <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a>* outline ); 1507</code></pre></div> 1508 1509<p>Retrieve the <code><a href="ft2-glyph_stroker.html#ft_strokerborder">FT_StrokerBorder</a></code> value corresponding to the ‘outside’ borders of a given outline.</p> 1510<h4>input</h4> 1511 1512<table class="fields"> 1513<tr><td class="val" id="outline">outline</td><td class="desc"> 1514<p>The source outline handle.</p> 1515</td></tr> 1516</table> 1517 1518<h4>return</h4> 1519 1520<p>The border index. <code><a href="ft2-glyph_stroker.html#ft_strokerborder">FT_STROKER_BORDER_LEFT</a></code> for empty or invalid outlines.</p> 1521<hr> 1522 1523<h2 id="ft_glyph_stroke">FT_Glyph_Stroke<a class="headerlink" href="#ft_glyph_stroke" title="Permanent link">¶</a></h2> 1524<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1525<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1526 <b>FT_Glyph_Stroke</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a> *pglyph, 1527 <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1528 <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> destroy ); 1529</code></pre></div> 1530 1531<p>Stroke a given outline glyph object with a given stroker.</p> 1532<h4>inout</h4> 1533 1534<table class="fields"> 1535<tr><td class="val" id="pglyph">pglyph</td><td class="desc"> 1536<p>Source glyph handle on input, new glyph handle on output.</p> 1537</td></tr> 1538</table> 1539 1540<h4>input</h4> 1541 1542<table class="fields"> 1543<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1544<p>A stroker handle.</p> 1545</td></tr> 1546<tr><td class="val" id="destroy">destroy</td><td class="desc"> 1547<p>A Boolean. If 1, the source glyph object is destroyed on success.</p> 1548</td></tr> 1549</table> 1550 1551<h4>return</h4> 1552 1553<p>FreeType error code. 0 means success.</p> 1554<h4>note</h4> 1555 1556<p>The source glyph is untouched in case of error.</p> 1557<p>Adding stroke may yield a significantly wider and taller glyph depending on how large of a radius was used to stroke the glyph. You may need to manually adjust horizontal and vertical advance amounts to account for this added size.</p> 1558<hr> 1559 1560<h2 id="ft_glyph_strokeborder">FT_Glyph_StrokeBorder<a class="headerlink" href="#ft_glyph_strokeborder" title="Permanent link">¶</a></h2> 1561<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1562<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1563 <b>FT_Glyph_StrokeBorder</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a> *pglyph, 1564 <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1565 <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> inside, 1566 <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> destroy ); 1567</code></pre></div> 1568 1569<p>Stroke a given outline glyph object with a given stroker, but only return either its inside or outside border.</p> 1570<h4>inout</h4> 1571 1572<table class="fields"> 1573<tr><td class="val" id="pglyph">pglyph</td><td class="desc"> 1574<p>Source glyph handle on input, new glyph handle on output.</p> 1575</td></tr> 1576</table> 1577 1578<h4>input</h4> 1579 1580<table class="fields"> 1581<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1582<p>A stroker handle.</p> 1583</td></tr> 1584<tr><td class="val" id="inside">inside</td><td class="desc"> 1585<p>A Boolean. If 1, return the inside border, otherwise the outside border.</p> 1586</td></tr> 1587<tr><td class="val" id="destroy">destroy</td><td class="desc"> 1588<p>A Boolean. If 1, the source glyph object is destroyed on success.</p> 1589</td></tr> 1590</table> 1591 1592<h4>return</h4> 1593 1594<p>FreeType error code. 0 means success.</p> 1595<h4>note</h4> 1596 1597<p>The source glyph is untouched in case of error.</p> 1598<p>Adding stroke may yield a significantly wider and taller glyph depending on how large of a radius was used to stroke the glyph. You may need to manually adjust horizontal and vertical advance amounts to account for this added size.</p> 1599<hr> 1600 1601<h2 id="ft_stroker_new">FT_Stroker_New<a class="headerlink" href="#ft_stroker_new" title="Permanent link">¶</a></h2> 1602<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1603<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1604 <b>FT_Stroker_New</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, 1605 <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> *astroker ); 1606</code></pre></div> 1607 1608<p>Create a new stroker object.</p> 1609<h4>input</h4> 1610 1611<table class="fields"> 1612<tr><td class="val" id="library">library</td><td class="desc"> 1613<p>FreeType library handle.</p> 1614</td></tr> 1615</table> 1616 1617<h4>output</h4> 1618 1619<table class="fields"> 1620<tr><td class="val" id="astroker">astroker</td><td class="desc"> 1621<p>A new stroker object handle. <code>NULL</code> in case of error.</p> 1622</td></tr> 1623</table> 1624 1625<h4>return</h4> 1626 1627<p>FreeType error code. 0 means success.</p> 1628<hr> 1629 1630<h2 id="ft_stroker_set">FT_Stroker_Set<a class="headerlink" href="#ft_stroker_set" title="Permanent link">¶</a></h2> 1631<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1632<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1633 <b>FT_Stroker_Set</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1634 <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> radius, 1635 <a href="ft2-glyph_stroker.html#ft_stroker_linecap">FT_Stroker_LineCap</a> line_cap, 1636 <a href="ft2-glyph_stroker.html#ft_stroker_linejoin">FT_Stroker_LineJoin</a> line_join, 1637 <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> miter_limit ); 1638</code></pre></div> 1639 1640<p>Reset a stroker object's attributes.</p> 1641<h4>input</h4> 1642 1643<table class="fields"> 1644<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1645<p>The target stroker handle.</p> 1646</td></tr> 1647<tr><td class="val" id="radius">radius</td><td class="desc"> 1648<p>The border radius.</p> 1649</td></tr> 1650<tr><td class="val" id="line_cap">line_cap</td><td class="desc"> 1651<p>The line cap style.</p> 1652</td></tr> 1653<tr><td class="val" id="line_join">line_join</td><td class="desc"> 1654<p>The line join style.</p> 1655</td></tr> 1656<tr><td class="val" id="miter_limit">miter_limit</td><td class="desc"> 1657<p>The maximum reciprocal sine of half-angle at the miter join, expressed as 16.16 fixed point value.</p> 1658</td></tr> 1659</table> 1660 1661<h4>note</h4> 1662 1663<p>The <code>radius</code> is expressed in the same units as the outline coordinates.</p> 1664<p>The <code>miter_limit</code> multiplied by the <code>radius</code> gives the maximum size of a miter spike, at which it is clipped for <code><a href="ft2-glyph_stroker.html#ft_stroker_linejoin">FT_STROKER_LINEJOIN_MITER_VARIABLE</a></code> or replaced with a bevel join for <code><a href="ft2-glyph_stroker.html#ft_stroker_linejoin">FT_STROKER_LINEJOIN_MITER_FIXED</a></code>.</p> 1665<p>This function calls <code><a href="ft2-glyph_stroker.html#ft_stroker_rewind">FT_Stroker_Rewind</a></code> automatically.</p> 1666<hr> 1667 1668<h2 id="ft_stroker_rewind">FT_Stroker_Rewind<a class="headerlink" href="#ft_stroker_rewind" title="Permanent link">¶</a></h2> 1669<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1670<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1671 <b>FT_Stroker_Rewind</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker ); 1672</code></pre></div> 1673 1674<p>Reset a stroker object without changing its attributes. You should call this function before beginning a new series of calls to <code><a href="ft2-glyph_stroker.html#ft_stroker_beginsubpath">FT_Stroker_BeginSubPath</a></code> or <code><a href="ft2-glyph_stroker.html#ft_stroker_endsubpath">FT_Stroker_EndSubPath</a></code>.</p> 1675<h4>input</h4> 1676 1677<table class="fields"> 1678<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1679<p>The target stroker handle.</p> 1680</td></tr> 1681</table> 1682 1683<hr> 1684 1685<h2 id="ft_stroker_parseoutline">FT_Stroker_ParseOutline<a class="headerlink" href="#ft_stroker_parseoutline" title="Permanent link">¶</a></h2> 1686<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1687<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1688 <b>FT_Stroker_ParseOutline</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1689 <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a>* outline, 1690 <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> opened ); 1691</code></pre></div> 1692 1693<p>A convenience function used to parse a whole outline with the stroker. The resulting outline(s) can be retrieved later by functions like <code><a href="ft2-glyph_stroker.html#ft_stroker_getcounts">FT_Stroker_GetCounts</a></code> and <code><a href="ft2-glyph_stroker.html#ft_stroker_export">FT_Stroker_Export</a></code>.</p> 1694<h4>input</h4> 1695 1696<table class="fields"> 1697<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1698<p>The target stroker handle.</p> 1699</td></tr> 1700<tr><td class="val" id="outline">outline</td><td class="desc"> 1701<p>The source outline.</p> 1702</td></tr> 1703<tr><td class="val" id="opened">opened</td><td class="desc"> 1704<p>A boolean. If 1, the outline is treated as an open path instead of a closed one.</p> 1705</td></tr> 1706</table> 1707 1708<h4>return</h4> 1709 1710<p>FreeType error code. 0 means success.</p> 1711<h4>note</h4> 1712 1713<p>If <code>opened</code> is 0 (the default), the outline is treated as a closed path, and the stroker generates two distinct ‘border’ outlines.</p> 1714<p>If <code>opened</code> is 1, the outline is processed as an open path, and the stroker generates a single ‘stroke’ outline.</p> 1715<p>This function calls <code><a href="ft2-glyph_stroker.html#ft_stroker_rewind">FT_Stroker_Rewind</a></code> automatically.</p> 1716<hr> 1717 1718<h2 id="ft_stroker_done">FT_Stroker_Done<a class="headerlink" href="#ft_stroker_done" title="Permanent link">¶</a></h2> 1719<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1720<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1721 <b>FT_Stroker_Done</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker ); 1722</code></pre></div> 1723 1724<p>Destroy a stroker object.</p> 1725<h4>input</h4> 1726 1727<table class="fields"> 1728<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1729<p>A stroker handle. Can be <code>NULL</code>.</p> 1730</td></tr> 1731</table> 1732 1733<hr> 1734 1735<h2 id="ft_stroker_beginsubpath">FT_Stroker_BeginSubPath<a class="headerlink" href="#ft_stroker_beginsubpath" title="Permanent link">¶</a></h2> 1736<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1737<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1738 <b>FT_Stroker_BeginSubPath</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1739 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* to, 1740 <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> open ); 1741</code></pre></div> 1742 1743<p>Start a new sub-path in the stroker.</p> 1744<h4>input</h4> 1745 1746<table class="fields"> 1747<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1748<p>The target stroker handle.</p> 1749</td></tr> 1750<tr><td class="val" id="to">to</td><td class="desc"> 1751<p>A pointer to the start vector.</p> 1752</td></tr> 1753<tr><td class="val" id="open">open</td><td class="desc"> 1754<p>A boolean. If 1, the sub-path is treated as an open one.</p> 1755</td></tr> 1756</table> 1757 1758<h4>return</h4> 1759 1760<p>FreeType error code. 0 means success.</p> 1761<h4>note</h4> 1762 1763<p>This function is useful when you need to stroke a path that is not stored as an <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code> object.</p> 1764<hr> 1765 1766<h2 id="ft_stroker_endsubpath">FT_Stroker_EndSubPath<a class="headerlink" href="#ft_stroker_endsubpath" title="Permanent link">¶</a></h2> 1767<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1768<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1769 <b>FT_Stroker_EndSubPath</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker ); 1770</code></pre></div> 1771 1772<p>Close the current sub-path in the stroker.</p> 1773<h4>input</h4> 1774 1775<table class="fields"> 1776<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1777<p>The target stroker handle.</p> 1778</td></tr> 1779</table> 1780 1781<h4>return</h4> 1782 1783<p>FreeType error code. 0 means success.</p> 1784<h4>note</h4> 1785 1786<p>You should call this function after <code><a href="ft2-glyph_stroker.html#ft_stroker_beginsubpath">FT_Stroker_BeginSubPath</a></code>. If the subpath was not ‘opened’, this function ‘draws’ a single line segment to the start position when needed.</p> 1787<hr> 1788 1789<h2 id="ft_stroker_lineto">FT_Stroker_LineTo<a class="headerlink" href="#ft_stroker_lineto" title="Permanent link">¶</a></h2> 1790<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1791<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1792 <b>FT_Stroker_LineTo</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1793 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* to ); 1794</code></pre></div> 1795 1796<p>‘Draw’ a single line segment in the stroker's current sub-path, from the last position.</p> 1797<h4>input</h4> 1798 1799<table class="fields"> 1800<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1801<p>The target stroker handle.</p> 1802</td></tr> 1803<tr><td class="val" id="to">to</td><td class="desc"> 1804<p>A pointer to the destination point.</p> 1805</td></tr> 1806</table> 1807 1808<h4>return</h4> 1809 1810<p>FreeType error code. 0 means success.</p> 1811<h4>note</h4> 1812 1813<p>You should call this function between <code><a href="ft2-glyph_stroker.html#ft_stroker_beginsubpath">FT_Stroker_BeginSubPath</a></code> and <code><a href="ft2-glyph_stroker.html#ft_stroker_endsubpath">FT_Stroker_EndSubPath</a></code>.</p> 1814<hr> 1815 1816<h2 id="ft_stroker_conicto">FT_Stroker_ConicTo<a class="headerlink" href="#ft_stroker_conicto" title="Permanent link">¶</a></h2> 1817<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1818<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1819 <b>FT_Stroker_ConicTo</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1820 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* control, 1821 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* to ); 1822</code></pre></div> 1823 1824<p>‘Draw’ a single quadratic Bezier in the stroker's current sub-path, from the last position.</p> 1825<h4>input</h4> 1826 1827<table class="fields"> 1828<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1829<p>The target stroker handle.</p> 1830</td></tr> 1831<tr><td class="val" id="control">control</td><td class="desc"> 1832<p>A pointer to a Bezier control point.</p> 1833</td></tr> 1834<tr><td class="val" id="to">to</td><td class="desc"> 1835<p>A pointer to the destination point.</p> 1836</td></tr> 1837</table> 1838 1839<h4>return</h4> 1840 1841<p>FreeType error code. 0 means success.</p> 1842<h4>note</h4> 1843 1844<p>You should call this function between <code><a href="ft2-glyph_stroker.html#ft_stroker_beginsubpath">FT_Stroker_BeginSubPath</a></code> and <code><a href="ft2-glyph_stroker.html#ft_stroker_endsubpath">FT_Stroker_EndSubPath</a></code>.</p> 1845<hr> 1846 1847<h2 id="ft_stroker_cubicto">FT_Stroker_CubicTo<a class="headerlink" href="#ft_stroker_cubicto" title="Permanent link">¶</a></h2> 1848<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1849<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1850 <b>FT_Stroker_CubicTo</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1851 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* control1, 1852 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* control2, 1853 <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* to ); 1854</code></pre></div> 1855 1856<p>‘Draw’ a single cubic Bezier in the stroker's current sub-path, from the last position.</p> 1857<h4>input</h4> 1858 1859<table class="fields"> 1860<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1861<p>The target stroker handle.</p> 1862</td></tr> 1863<tr><td class="val" id="control1">control1</td><td class="desc"> 1864<p>A pointer to the first Bezier control point.</p> 1865</td></tr> 1866<tr><td class="val" id="control2">control2</td><td class="desc"> 1867<p>A pointer to second Bezier control point.</p> 1868</td></tr> 1869<tr><td class="val" id="to">to</td><td class="desc"> 1870<p>A pointer to the destination point.</p> 1871</td></tr> 1872</table> 1873 1874<h4>return</h4> 1875 1876<p>FreeType error code. 0 means success.</p> 1877<h4>note</h4> 1878 1879<p>You should call this function between <code><a href="ft2-glyph_stroker.html#ft_stroker_beginsubpath">FT_Stroker_BeginSubPath</a></code> and <code><a href="ft2-glyph_stroker.html#ft_stroker_endsubpath">FT_Stroker_EndSubPath</a></code>.</p> 1880<hr> 1881 1882<h2 id="ft_stroker_getbordercounts">FT_Stroker_GetBorderCounts<a class="headerlink" href="#ft_stroker_getbordercounts" title="Permanent link">¶</a></h2> 1883<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1884<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1885 <b>FT_Stroker_GetBorderCounts</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1886 <a href="ft2-glyph_stroker.html#ft_strokerborder">FT_StrokerBorder</a> border, 1887 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> *anum_points, 1888 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> *anum_contours ); 1889</code></pre></div> 1890 1891<p>Call this function once you have finished parsing your paths with the stroker. It returns the number of points and contours necessary to export one of the ‘border’ or ‘stroke’ outlines generated by the stroker.</p> 1892<h4>input</h4> 1893 1894<table class="fields"> 1895<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1896<p>The target stroker handle.</p> 1897</td></tr> 1898<tr><td class="val" id="border">border</td><td class="desc"> 1899<p>The border index.</p> 1900</td></tr> 1901</table> 1902 1903<h4>output</h4> 1904 1905<table class="fields"> 1906<tr><td class="val" id="anum_points">anum_points</td><td class="desc"> 1907<p>The number of points.</p> 1908</td></tr> 1909<tr><td class="val" id="anum_contours">anum_contours</td><td class="desc"> 1910<p>The number of contours.</p> 1911</td></tr> 1912</table> 1913 1914<h4>return</h4> 1915 1916<p>FreeType error code. 0 means success.</p> 1917<h4>note</h4> 1918 1919<p>When an outline, or a sub-path, is ‘closed’, the stroker generates two independent ‘border’ outlines, named ‘left’ and ‘right’.</p> 1920<p>When the outline, or a sub-path, is ‘opened’, the stroker merges the ‘border’ outlines with caps. The ‘left’ border receives all points, while the ‘right’ border becomes empty.</p> 1921<p>Use the function <code><a href="ft2-glyph_stroker.html#ft_stroker_getcounts">FT_Stroker_GetCounts</a></code> instead if you want to retrieve the counts associated to both borders.</p> 1922<hr> 1923 1924<h2 id="ft_stroker_exportborder">FT_Stroker_ExportBorder<a class="headerlink" href="#ft_stroker_exportborder" title="Permanent link">¶</a></h2> 1925<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1926<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1927 <b>FT_Stroker_ExportBorder</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1928 <a href="ft2-glyph_stroker.html#ft_strokerborder">FT_StrokerBorder</a> border, 1929 <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a>* outline ); 1930</code></pre></div> 1931 1932<p>Call this function after <code><a href="ft2-glyph_stroker.html#ft_stroker_getbordercounts">FT_Stroker_GetBorderCounts</a></code> to export the corresponding border to your own <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code> structure.</p> 1933<p>Note that this function appends the border points and contours to your outline, but does not try to resize its arrays.</p> 1934<h4>input</h4> 1935 1936<table class="fields"> 1937<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1938<p>The target stroker handle.</p> 1939</td></tr> 1940<tr><td class="val" id="border">border</td><td class="desc"> 1941<p>The border index.</p> 1942</td></tr> 1943<tr><td class="val" id="outline">outline</td><td class="desc"> 1944<p>The target outline handle.</p> 1945</td></tr> 1946</table> 1947 1948<h4>note</h4> 1949 1950<p>Always call this function after <code><a href="ft2-glyph_stroker.html#ft_stroker_getbordercounts">FT_Stroker_GetBorderCounts</a></code> to get sure that there is enough room in your <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code> object to receive all new data.</p> 1951<p>When an outline, or a sub-path, is ‘closed’, the stroker generates two independent ‘border’ outlines, named ‘left’ and ‘right’.</p> 1952<p>When the outline, or a sub-path, is ‘opened’, the stroker merges the ‘border’ outlines with caps. The ‘left’ border receives all points, while the ‘right’ border becomes empty.</p> 1953<p>Use the function <code><a href="ft2-glyph_stroker.html#ft_stroker_export">FT_Stroker_Export</a></code> instead if you want to retrieve all borders at once.</p> 1954<hr> 1955 1956<h2 id="ft_stroker_getcounts">FT_Stroker_GetCounts<a class="headerlink" href="#ft_stroker_getcounts" title="Permanent link">¶</a></h2> 1957<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1958<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) 1959 <b>FT_Stroker_GetCounts</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1960 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> *anum_points, 1961 <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> *anum_contours ); 1962</code></pre></div> 1963 1964<p>Call this function once you have finished parsing your paths with the stroker. It returns the number of points and contours necessary to export all points/borders from the stroked outline/path.</p> 1965<h4>input</h4> 1966 1967<table class="fields"> 1968<tr><td class="val" id="stroker">stroker</td><td class="desc"> 1969<p>The target stroker handle.</p> 1970</td></tr> 1971</table> 1972 1973<h4>output</h4> 1974 1975<table class="fields"> 1976<tr><td class="val" id="anum_points">anum_points</td><td class="desc"> 1977<p>The number of points.</p> 1978</td></tr> 1979<tr><td class="val" id="anum_contours">anum_contours</td><td class="desc"> 1980<p>The number of contours.</p> 1981</td></tr> 1982</table> 1983 1984<h4>return</h4> 1985 1986<p>FreeType error code. 0 means success.</p> 1987<hr> 1988 1989<h2 id="ft_stroker_export">FT_Stroker_Export<a class="headerlink" href="#ft_stroker_export" title="Permanent link">¶</a></h2> 1990<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p> 1991<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> ) 1992 <b>FT_Stroker_Export</b>( <a href="ft2-glyph_stroker.html#ft_stroker">FT_Stroker</a> stroker, 1993 <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a>* outline ); 1994</code></pre></div> 1995 1996<p>Call this function after <code><a href="ft2-glyph_stroker.html#ft_stroker_getbordercounts">FT_Stroker_GetBorderCounts</a></code> to export all borders to your own <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code> structure.</p> 1997<p>Note that this function appends the border points and contours to your outline, but does not try to resize its arrays.</p> 1998<h4>input</h4> 1999 2000<table class="fields"> 2001<tr><td class="val" id="stroker">stroker</td><td class="desc"> 2002<p>The target stroker handle.</p> 2003</td></tr> 2004<tr><td class="val" id="outline">outline</td><td class="desc"> 2005<p>The target outline handle.</p> 2006</td></tr> 2007</table> 2008 2009<hr> 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 </article> 2021 </div> 2022 </div> 2023 </main> 2024 2025 2026<footer class="md-footer"> 2027 2028 <div class="md-footer-nav"> 2029 <nav class="md-footer-nav__inner md-grid"> 2030 2031 <a href="ft2-raster.html" title="Scanline Converter" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev"> 2032 <div class="md-flex__cell md-flex__cell--shrink"> 2033 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> 2034 </div> 2035 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 2036 <span class="md-flex__ellipsis"> 2037 <span class="md-footer-nav__direction"> 2038 Previous 2039 </span> 2040 Scanline Converter 2041 </span> 2042 </div> 2043 </a> 2044 2045 2046 <a href="ft2-system_interface.html" title="System Interface" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next"> 2047 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 2048 <span class="md-flex__ellipsis"> 2049 <span class="md-footer-nav__direction"> 2050 Next 2051 </span> 2052 System Interface 2053 </span> 2054 </div> 2055 <div class="md-flex__cell md-flex__cell--shrink"> 2056 <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> 2057 </div> 2058 </a> 2059 2060 </nav> 2061 </div> 2062 2063 <div class="md-footer-meta md-typeset"> 2064 <div class="md-footer-meta__inner md-grid"> 2065 <div class="md-footer-copyright"> 2066 2067 <div class="md-footer-copyright__highlight"> 2068 Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. 2069 </div> 2070 2071 powered by 2072 <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a> 2073 and 2074 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 2075 Material for MkDocs</a> 2076 </div> 2077 2078 </div> 2079 </div> 2080</footer> 2081 2082 </div> 2083 2084 <script src="assets/javascripts/application.c33a9706.js"></script> 2085 2086 <script>app.initialize({version:"1.1",url:{base:"."}})</script> 2087 2088 <script src="javascripts/extra.js"></script> 2089 2090 2091 </body> 2092</html>