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>Scanline Converter - 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="#scanline-converter" 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 Scanline Converter 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 784 785 <li class="md-nav__item md-nav__item--active"> 786 787 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc"> 788 789 790 791 792 <label class="md-nav__link md-nav__link--active" for="__toc"> 793 Scanline Converter 794 </label> 795 796 <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link md-nav__link--active"> 797 Scanline Converter 798 </a> 799 800 801<nav class="md-nav md-nav--secondary"> 802 803 804 805 806 807 <label class="md-nav__title" for="__toc">Table of contents</label> 808 <ul class="md-nav__list" data-md-scrollfix> 809 810 <li class="md-nav__item"> 811 <a href="#synopsis" class="md-nav__link"> 812 Synopsis 813 </a> 814 815</li> 816 817 <li class="md-nav__item"> 818 <a href="#ft_raster" class="md-nav__link"> 819 FT_Raster 820 </a> 821 822</li> 823 824 <li class="md-nav__item"> 825 <a href="#ft_span" class="md-nav__link"> 826 FT_Span 827 </a> 828 829</li> 830 831 <li class="md-nav__item"> 832 <a href="#ft_spanfunc" class="md-nav__link"> 833 FT_SpanFunc 834 </a> 835 836</li> 837 838 <li class="md-nav__item"> 839 <a href="#ft_raster_params" class="md-nav__link"> 840 FT_Raster_Params 841 </a> 842 843</li> 844 845 <li class="md-nav__item"> 846 <a href="#ft_raster_flag_xxx" class="md-nav__link"> 847 FT_RASTER_FLAG_XXX 848 </a> 849 850</li> 851 852 <li class="md-nav__item"> 853 <a href="#ft_raster_newfunc" class="md-nav__link"> 854 FT_Raster_NewFunc 855 </a> 856 857</li> 858 859 <li class="md-nav__item"> 860 <a href="#ft_raster_donefunc" class="md-nav__link"> 861 FT_Raster_DoneFunc 862 </a> 863 864</li> 865 866 <li class="md-nav__item"> 867 <a href="#ft_raster_resetfunc" class="md-nav__link"> 868 FT_Raster_ResetFunc 869 </a> 870 871</li> 872 873 <li class="md-nav__item"> 874 <a href="#ft_raster_setmodefunc" class="md-nav__link"> 875 FT_Raster_SetModeFunc 876 </a> 877 878</li> 879 880 <li class="md-nav__item"> 881 <a href="#ft_raster_renderfunc" class="md-nav__link"> 882 FT_Raster_RenderFunc 883 </a> 884 885</li> 886 887 <li class="md-nav__item"> 888 <a href="#ft_raster_funcs" class="md-nav__link"> 889 FT_Raster_Funcs 890 </a> 891 892</li> 893 894 <li class="md-nav__item"> 895 <a href="#ft_raster_bittest_func" class="md-nav__link"> 896 FT_Raster_BitTest_Func 897 </a> 898 899</li> 900 901 <li class="md-nav__item"> 902 <a href="#ft_raster_bitset_func" class="md-nav__link"> 903 FT_Raster_BitSet_Func 904 </a> 905 906</li> 907 908 909 910 911 912 </ul> 913 914</nav> 915 916 </li> 917 918 919 920 921 922 923 924 <li class="md-nav__item"> 925 <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link"> 926 Glyph Stroker 927 </a> 928 </li> 929 930 931 932 933 934 935 936 <li class="md-nav__item"> 937 <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link"> 938 System Interface 939 </a> 940 </li> 941 942 943 944 945 946 947 948 <li class="md-nav__item"> 949 <a href="ft2-module_management.html" title="Module Management" class="md-nav__link"> 950 Module Management 951 </a> 952 </li> 953 954 955 956 957 958 959 960 <li class="md-nav__item"> 961 <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link"> 962 GZIP Streams 963 </a> 964 </li> 965 966 967 968 969 970 971 972 <li class="md-nav__item"> 973 <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link"> 974 LZW Streams 975 </a> 976 </li> 977 978 979 980 981 982 983 984 <li class="md-nav__item"> 985 <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link"> 986 BZIP2 Streams 987 </a> 988 </li> 989 990 991 </ul> 992 </nav> 993 </li> 994 995 996 997 998 999 1000 1001 <li class="md-nav__item md-nav__item--nested"> 1002 1003 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9"> 1004 1005 <label class="md-nav__link" for="nav-9"> 1006 Error Codes 1007 </label> 1008 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 1009 <label class="md-nav__title" for="nav-9"> 1010 Error Codes 1011 </label> 1012 <ul class="md-nav__list" data-md-scrollfix> 1013 1014 1015 1016 1017 1018 1019 1020 <li class="md-nav__item"> 1021 <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link"> 1022 Error Enumerations 1023 </a> 1024 </li> 1025 1026 1027 1028 1029 1030 1031 1032 <li class="md-nav__item"> 1033 <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link"> 1034 Error Code Values 1035 </a> 1036 </li> 1037 1038 1039 </ul> 1040 </nav> 1041 </li> 1042 1043 1044 1045 1046 1047 1048 1049 <li class="md-nav__item md-nav__item--nested"> 1050 1051 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10"> 1052 1053 <label class="md-nav__link" for="nav-10"> 1054 Miscellaneous 1055 </label> 1056 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 1057 <label class="md-nav__title" for="nav-10"> 1058 Miscellaneous 1059 </label> 1060 <ul class="md-nav__list" data-md-scrollfix> 1061 1062 1063 1064 1065 1066 1067 1068 <li class="md-nav__item"> 1069 <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link"> 1070 TrueTypeGX/AAT Validation 1071 </a> 1072 </li> 1073 1074 1075 1076 1077 1078 1079 1080 <li class="md-nav__item"> 1081 <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link"> 1082 Incremental Loading 1083 </a> 1084 </li> 1085 1086 1087 1088 1089 1090 1091 1092 <li class="md-nav__item"> 1093 <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link"> 1094 The TrueType Engine 1095 </a> 1096 </li> 1097 1098 1099 1100 1101 1102 1103 1104 <li class="md-nav__item"> 1105 <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link"> 1106 OpenType Validation 1107 </a> 1108 </li> 1109 1110 1111 </ul> 1112 </nav> 1113 </li> 1114 1115 1116 </ul> 1117</nav> 1118 </div> 1119 </div> 1120 </div> 1121 1122 1123 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> 1124 <div class="md-sidebar__scrollwrap"> 1125 <div class="md-sidebar__inner"> 1126 1127<nav class="md-nav md-nav--secondary"> 1128 1129 1130 1131 1132 1133 <label class="md-nav__title" for="__toc">Table of contents</label> 1134 <ul class="md-nav__list" data-md-scrollfix> 1135 1136 <li class="md-nav__item"> 1137 <a href="#synopsis" class="md-nav__link"> 1138 Synopsis 1139 </a> 1140 1141</li> 1142 1143 <li class="md-nav__item"> 1144 <a href="#ft_raster" class="md-nav__link"> 1145 FT_Raster 1146 </a> 1147 1148</li> 1149 1150 <li class="md-nav__item"> 1151 <a href="#ft_span" class="md-nav__link"> 1152 FT_Span 1153 </a> 1154 1155</li> 1156 1157 <li class="md-nav__item"> 1158 <a href="#ft_spanfunc" class="md-nav__link"> 1159 FT_SpanFunc 1160 </a> 1161 1162</li> 1163 1164 <li class="md-nav__item"> 1165 <a href="#ft_raster_params" class="md-nav__link"> 1166 FT_Raster_Params 1167 </a> 1168 1169</li> 1170 1171 <li class="md-nav__item"> 1172 <a href="#ft_raster_flag_xxx" class="md-nav__link"> 1173 FT_RASTER_FLAG_XXX 1174 </a> 1175 1176</li> 1177 1178 <li class="md-nav__item"> 1179 <a href="#ft_raster_newfunc" class="md-nav__link"> 1180 FT_Raster_NewFunc 1181 </a> 1182 1183</li> 1184 1185 <li class="md-nav__item"> 1186 <a href="#ft_raster_donefunc" class="md-nav__link"> 1187 FT_Raster_DoneFunc 1188 </a> 1189 1190</li> 1191 1192 <li class="md-nav__item"> 1193 <a href="#ft_raster_resetfunc" class="md-nav__link"> 1194 FT_Raster_ResetFunc 1195 </a> 1196 1197</li> 1198 1199 <li class="md-nav__item"> 1200 <a href="#ft_raster_setmodefunc" class="md-nav__link"> 1201 FT_Raster_SetModeFunc 1202 </a> 1203 1204</li> 1205 1206 <li class="md-nav__item"> 1207 <a href="#ft_raster_renderfunc" class="md-nav__link"> 1208 FT_Raster_RenderFunc 1209 </a> 1210 1211</li> 1212 1213 <li class="md-nav__item"> 1214 <a href="#ft_raster_funcs" class="md-nav__link"> 1215 FT_Raster_Funcs 1216 </a> 1217 1218</li> 1219 1220 <li class="md-nav__item"> 1221 <a href="#ft_raster_bittest_func" class="md-nav__link"> 1222 FT_Raster_BitTest_Func 1223 </a> 1224 1225</li> 1226 1227 <li class="md-nav__item"> 1228 <a href="#ft_raster_bitset_func" class="md-nav__link"> 1229 FT_Raster_BitSet_Func 1230 </a> 1231 1232</li> 1233 1234 1235 1236 1237 1238 </ul> 1239 1240</nav> 1241 </div> 1242 </div> 1243 </div> 1244 1245 1246 <div class="md-content"> 1247 <article class="md-content__inner md-typeset"> 1248 1249 1250 1251 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » Scanline Converter</p> 1252<hr /> 1253<h1 id="scanline-converter">Scanline Converter<a class="headerlink" href="#scanline-converter" title="Permanent link">¶</a></h1> 1254<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> 1255<p>This section contains technical definitions.</p> 1256<h2 id="ft_raster">FT_Raster<a class="headerlink" href="#ft_raster" title="Permanent link">¶</a></h2> 1257<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1258<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_RasterRec_* <b>FT_Raster</b>; 1259</code></pre></div> 1260 1261<p>An opaque handle (pointer) to a raster object. Each object can be used independently to convert an outline into a bitmap or pixmap.</p> 1262<hr> 1263 1264<h2 id="ft_span">FT_Span<a class="headerlink" href="#ft_span" title="Permanent link">¶</a></h2> 1265<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1266<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Span_ 1267 { 1268 <span class="keyword">short</span> x; 1269 <span class="keyword">unsigned</span> <span class="keyword">short</span> len; 1270 <span class="keyword">unsigned</span> <span class="keyword">char</span> coverage; 1271 1272 } <b>FT_Span</b>; 1273</code></pre></div> 1274 1275<p>A structure used to model a single span of gray pixels when rendering an anti-aliased bitmap.</p> 1276<h4>fields</h4> 1277 1278<table class="fields"> 1279<tr><td class="val" id="x">x</td><td class="desc"> 1280<p>The span's horizontal start position.</p> 1281</td></tr> 1282<tr><td class="val" id="len">len</td><td class="desc"> 1283<p>The span's length in pixels.</p> 1284</td></tr> 1285<tr><td class="val" id="coverage">coverage</td><td class="desc"> 1286<p>The span color/coverage, ranging from 0 (background) to 255 (foreground).</p> 1287</td></tr> 1288</table> 1289 1290<h4>note</h4> 1291 1292<p>This structure is used by the span drawing callback type named <code><a href="ft2-raster.html#ft_spanfunc">FT_SpanFunc</a></code> that takes the y coordinate of the span as a parameter.</p> 1293<p>The coverage value is always between 0 and 255. If you want less gray values, the callback function has to reduce them.</p> 1294<hr> 1295 1296<h2 id="ft_spanfunc">FT_SpanFunc<a class="headerlink" href="#ft_spanfunc" title="Permanent link">¶</a></h2> 1297<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1298<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1299 (*<b>FT_SpanFunc</b>)( <span class="keyword">int</span> y, 1300 <span class="keyword">int</span> count, 1301 <span class="keyword">const</span> <a href="ft2-raster.html#ft_span">FT_Span</a>* spans, 1302 <span class="keyword">void</span>* user ); 1303 1304#<span class="keyword">define</span> FT_Raster_Span_Func <b>FT_SpanFunc</b> 1305</code></pre></div> 1306 1307<p>A function used as a call-back by the anti-aliased renderer in order to let client applications draw themselves the gray pixel spans on each scan line.</p> 1308<h4>input</h4> 1309 1310<table class="fields"> 1311<tr><td class="val" id="y">y</td><td class="desc"> 1312<p>The scanline's upward y coordinate.</p> 1313</td></tr> 1314<tr><td class="val" id="count">count</td><td class="desc"> 1315<p>The number of spans to draw on this scanline.</p> 1316</td></tr> 1317<tr><td class="val" id="spans">spans</td><td class="desc"> 1318<p>A table of <code>count</code> spans to draw on the scanline.</p> 1319</td></tr> 1320<tr><td class="val" id="user">user</td><td class="desc"> 1321<p>User-supplied data that is passed to the callback.</p> 1322</td></tr> 1323</table> 1324 1325<h4>note</h4> 1326 1327<p>This callback allows client applications to directly render the gray spans of the anti-aliased bitmap to any kind of surfaces.</p> 1328<p>This can be used to write anti-aliased outlines directly to a given background bitmap, and even perform translucency.</p> 1329<hr> 1330 1331<h2 id="ft_raster_params">FT_Raster_Params<a class="headerlink" href="#ft_raster_params" title="Permanent link">¶</a></h2> 1332<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1333<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Raster_Params_ 1334 { 1335 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>* target; 1336 <span class="keyword">const</span> <span class="keyword">void</span>* source; 1337 <span class="keyword">int</span> flags; 1338 <a href="ft2-raster.html#ft_spanfunc">FT_SpanFunc</a> gray_spans; 1339 <a href="ft2-raster.html#ft_spanfunc">FT_SpanFunc</a> black_spans; /* unused */ 1340 <a href="ft2-raster.html#ft_raster_bittest_func">FT_Raster_BitTest_Func</a> bit_test; /* unused */ 1341 <a href="ft2-raster.html#ft_raster_bitset_func">FT_Raster_BitSet_Func</a> bit_set; /* unused */ 1342 <span class="keyword">void</span>* user; 1343 <a href="ft2-basic_types.html#ft_bbox">FT_BBox</a> clip_box; 1344 1345 } <b>FT_Raster_Params</b>; 1346</code></pre></div> 1347 1348<p>A structure to hold the parameters used by a raster's render function, passed as an argument to <code><a href="ft2-outline_processing.html#ft_outline_render">FT_Outline_Render</a></code>.</p> 1349<h4>fields</h4> 1350 1351<table class="fields"> 1352<tr><td class="val" id="target">target</td><td class="desc"> 1353<p>The target bitmap.</p> 1354</td></tr> 1355<tr><td class="val" id="source">source</td><td class="desc"> 1356<p>A pointer to the source glyph image (e.g., an <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>).</p> 1357</td></tr> 1358<tr><td class="val" id="flags">flags</td><td class="desc"> 1359<p>The rendering flags.</p> 1360</td></tr> 1361<tr><td class="val" id="gray_spans">gray_spans</td><td class="desc"> 1362<p>The gray span drawing callback.</p> 1363</td></tr> 1364<tr><td class="val" id="black_spans">black_spans</td><td class="desc"> 1365<p>Unused.</p> 1366</td></tr> 1367<tr><td class="val" id="bit_test">bit_test</td><td class="desc"> 1368<p>Unused.</p> 1369</td></tr> 1370<tr><td class="val" id="bit_set">bit_set</td><td class="desc"> 1371<p>Unused.</p> 1372</td></tr> 1373<tr><td class="val" id="user">user</td><td class="desc"> 1374<p>User-supplied data that is passed to each drawing callback.</p> 1375</td></tr> 1376<tr><td class="val" id="clip_box">clip_box</td><td class="desc"> 1377<p>An optional span clipping box expressed in <em>integer</em> pixels (not in 26.6 fixed-point units).</p> 1378</td></tr> 1379</table> 1380 1381<h4>note</h4> 1382 1383<p>The <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_AA</a></code> bit flag must be set in the <code>flags</code> to generate an anti-aliased glyph bitmap, otherwise a monochrome bitmap is generated. The <code>target</code> should have appropriate pixel mode and its dimensions define the clipping region.</p> 1384<p>If both <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_AA</a></code> and <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> bit flags are set in <code>flags</code>, the raster calls an <code><a href="ft2-raster.html#ft_spanfunc">FT_SpanFunc</a></code> callback <code>gray_spans</code> with <code>user</code> data as an argument ignoring <code>target</code>. This allows direct composition over a pre-existing user surface to perform the span drawing and composition. To optionally clip the spans, set the <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_CLIP</a></code> flag and <code>clip_box</code>. The monochrome raster does not support the direct mode.</p> 1385<p>The gray-level rasterizer always uses 256 gray levels. If you want fewer gray levels, you have to use <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> and reduce the levels in the callback function.</p> 1386<hr> 1387 1388<h2 id="ft_raster_flag_xxx">FT_RASTER_FLAG_XXX<a class="headerlink" href="#ft_raster_flag_xxx" title="Permanent link">¶</a></h2> 1389<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1390<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-raster.html#ft_raster_flag_default">FT_RASTER_FLAG_DEFAULT</a> 0x0 1391#<span class="keyword">define</span> <a href="ft2-raster.html#ft_raster_flag_aa">FT_RASTER_FLAG_AA</a> 0x1 1392#<span class="keyword">define</span> <a href="ft2-raster.html#ft_raster_flag_direct">FT_RASTER_FLAG_DIRECT</a> 0x2 1393#<span class="keyword">define</span> <a href="ft2-raster.html#ft_raster_flag_clip">FT_RASTER_FLAG_CLIP</a> 0x4 1394 1395 /* these constants are deprecated; use the corresponding */ 1396 /* `<b>FT_RASTER_FLAG_XXX</b>` values instead */ 1397#<span class="keyword">define</span> ft_raster_flag_default <a href="ft2-raster.html#ft_raster_flag_default">FT_RASTER_FLAG_DEFAULT</a> 1398#<span class="keyword">define</span> ft_raster_flag_aa <a href="ft2-raster.html#ft_raster_flag_aa">FT_RASTER_FLAG_AA</a> 1399#<span class="keyword">define</span> ft_raster_flag_direct <a href="ft2-raster.html#ft_raster_flag_direct">FT_RASTER_FLAG_DIRECT</a> 1400#<span class="keyword">define</span> ft_raster_flag_clip <a href="ft2-raster.html#ft_raster_flag_clip">FT_RASTER_FLAG_CLIP</a> 1401</code></pre></div> 1402 1403<p>A list of bit flag constants as used in the <code>flags</code> field of a <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> structure.</p> 1404<h4>values</h4> 1405 1406<table class="fields"> 1407<tr><td class="val" id="ft_raster_flag_default">FT_RASTER_FLAG_DEFAULT</td><td class="desc"> 1408<p>This value is 0.</p> 1409</td></tr> 1410<tr><td class="val" id="ft_raster_flag_aa">FT_RASTER_FLAG_AA</td><td class="desc"> 1411<p>This flag is set to indicate that an anti-aliased glyph image should be generated. Otherwise, it will be monochrome (1-bit).</p> 1412</td></tr> 1413<tr><td class="val" id="ft_raster_flag_direct">FT_RASTER_FLAG_DIRECT</td><td class="desc"> 1414<p>This flag is set to indicate direct rendering. In this mode, client applications must provide their own span callback. This lets them directly draw or compose over an existing bitmap. If this bit is <em>not</em> set, the target pixmap's buffer <em>must</em> be zeroed before rendering and the output will be clipped to its size.</p> 1415<p>Direct rendering is only possible with anti-aliased glyphs.</p> 1416</td></tr> 1417<tr><td class="val" id="ft_raster_flag_clip">FT_RASTER_FLAG_CLIP</td><td class="desc"> 1418<p>This flag is only used in direct rendering mode. If set, the output will be clipped to a box specified in the <code>clip_box</code> field of the <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> structure. Otherwise, the <code>clip_box</code> is effectively set to the bounding box and all spans are generated.</p> 1419</td></tr> 1420</table> 1421 1422<hr> 1423 1424<h2 id="ft_raster_newfunc">FT_Raster_NewFunc<a class="headerlink" href="#ft_raster_newfunc" title="Permanent link">¶</a></h2> 1425<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1426<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">int</span> 1427 (*<b>FT_Raster_NewFunc</b>)( <span class="keyword">void</span>* memory, 1428 <a href="ft2-raster.html#ft_raster">FT_Raster</a>* raster ); 1429 1430#<span class="keyword">define</span> FT_Raster_New_Func <b>FT_Raster_NewFunc</b> 1431</code></pre></div> 1432 1433<p>A function used to create a new raster object.</p> 1434<h4>input</h4> 1435 1436<table class="fields"> 1437<tr><td class="val" id="memory">memory</td><td class="desc"> 1438<p>A handle to the memory allocator.</p> 1439</td></tr> 1440</table> 1441 1442<h4>output</h4> 1443 1444<table class="fields"> 1445<tr><td class="val" id="raster">raster</td><td class="desc"> 1446<p>A handle to the new raster object.</p> 1447</td></tr> 1448</table> 1449 1450<h4>return</h4> 1451 1452<p>Error code. 0 means success.</p> 1453<h4>note</h4> 1454 1455<p>The <code>memory</code> parameter is a typeless pointer in order to avoid un-wanted dependencies on the rest of the FreeType code. In practice, it is an <code><a href="ft2-system_interface.html#ft_memory">FT_Memory</a></code> object, i.e., a handle to the standard FreeType memory allocator. However, this field can be completely ignored by a given raster implementation.</p> 1456<hr> 1457 1458<h2 id="ft_raster_donefunc">FT_Raster_DoneFunc<a class="headerlink" href="#ft_raster_donefunc" title="Permanent link">¶</a></h2> 1459<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1460<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1461 (*<b>FT_Raster_DoneFunc</b>)( <a href="ft2-raster.html#ft_raster">FT_Raster</a> raster ); 1462 1463#<span class="keyword">define</span> FT_Raster_Done_Func <b>FT_Raster_DoneFunc</b> 1464</code></pre></div> 1465 1466<p>A function used to destroy a given raster object.</p> 1467<h4>input</h4> 1468 1469<table class="fields"> 1470<tr><td class="val" id="raster">raster</td><td class="desc"> 1471<p>A handle to the raster object.</p> 1472</td></tr> 1473</table> 1474 1475<hr> 1476 1477<h2 id="ft_raster_resetfunc">FT_Raster_ResetFunc<a class="headerlink" href="#ft_raster_resetfunc" title="Permanent link">¶</a></h2> 1478<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1479<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1480 (*<b>FT_Raster_ResetFunc</b>)( <a href="ft2-raster.html#ft_raster">FT_Raster</a> raster, 1481 <span class="keyword">unsigned</span> <span class="keyword">char</span>* pool_base, 1482 <span class="keyword">unsigned</span> <span class="keyword">long</span> pool_size ); 1483 1484#<span class="keyword">define</span> FT_Raster_Reset_Func <b>FT_Raster_ResetFunc</b> 1485</code></pre></div> 1486 1487<p>FreeType used to provide an area of memory called the ‘render pool’ available to all registered rasterizers. This was not thread safe, however, and now FreeType never allocates this pool.</p> 1488<p>This function is called after a new raster object is created.</p> 1489<h4>input</h4> 1490 1491<table class="fields"> 1492<tr><td class="val" id="raster">raster</td><td class="desc"> 1493<p>A handle to the new raster object.</p> 1494</td></tr> 1495<tr><td class="val" id="pool_base">pool_base</td><td class="desc"> 1496<p>Previously, the address in memory of the render pool. Set this to <code>NULL</code>.</p> 1497</td></tr> 1498<tr><td class="val" id="pool_size">pool_size</td><td class="desc"> 1499<p>Previously, the size in bytes of the render pool. Set this to 0.</p> 1500</td></tr> 1501</table> 1502 1503<h4>note</h4> 1504 1505<p>Rasterizers should rely on dynamic or stack allocation if they want to (a handle to the memory allocator is passed to the rasterizer constructor).</p> 1506<hr> 1507 1508<h2 id="ft_raster_setmodefunc">FT_Raster_SetModeFunc<a class="headerlink" href="#ft_raster_setmodefunc" title="Permanent link">¶</a></h2> 1509<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1510<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">int</span> 1511 (*<b>FT_Raster_SetModeFunc</b>)( <a href="ft2-raster.html#ft_raster">FT_Raster</a> raster, 1512 <span class="keyword">unsigned</span> <span class="keyword">long</span> mode, 1513 <span class="keyword">void</span>* args ); 1514 1515#<span class="keyword">define</span> FT_Raster_Set_Mode_Func <b>FT_Raster_SetModeFunc</b> 1516</code></pre></div> 1517 1518<p>This function is a generic facility to change modes or attributes in a given raster. This can be used for debugging purposes, or simply to allow implementation-specific ‘features’ in a given raster module.</p> 1519<h4>input</h4> 1520 1521<table class="fields"> 1522<tr><td class="val" id="raster">raster</td><td class="desc"> 1523<p>A handle to the new raster object.</p> 1524</td></tr> 1525<tr><td class="val" id="mode">mode</td><td class="desc"> 1526<p>A 4-byte tag used to name the mode or property.</p> 1527</td></tr> 1528<tr><td class="val" id="args">args</td><td class="desc"> 1529<p>A pointer to the new mode/property to use.</p> 1530</td></tr> 1531</table> 1532 1533<hr> 1534 1535<h2 id="ft_raster_renderfunc">FT_Raster_RenderFunc<a class="headerlink" href="#ft_raster_renderfunc" title="Permanent link">¶</a></h2> 1536<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1537<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">int</span> 1538 (*<b>FT_Raster_RenderFunc</b>)( <a href="ft2-raster.html#ft_raster">FT_Raster</a> raster, 1539 <span class="keyword">const</span> <a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a>* params ); 1540 1541#<span class="keyword">define</span> FT_Raster_Render_Func <b>FT_Raster_RenderFunc</b> 1542</code></pre></div> 1543 1544<p>Invoke a given raster to scan-convert a given glyph image into a target bitmap.</p> 1545<h4>input</h4> 1546 1547<table class="fields"> 1548<tr><td class="val" id="raster">raster</td><td class="desc"> 1549<p>A handle to the raster object.</p> 1550</td></tr> 1551<tr><td class="val" id="params">params</td><td class="desc"> 1552<p>A pointer to an <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> structure used to store the rendering parameters.</p> 1553</td></tr> 1554</table> 1555 1556<h4>return</h4> 1557 1558<p>Error code. 0 means success.</p> 1559<h4>note</h4> 1560 1561<p>The exact format of the source image depends on the raster's glyph format defined in its <code><a href="ft2-raster.html#ft_raster_funcs">FT_Raster_Funcs</a></code> structure. It can be an <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code> or anything else in order to support a large array of glyph formats.</p> 1562<p>Note also that the render function can fail and return a <code>FT_Err_Unimplemented_Feature</code> error code if the raster used does not support direct composition.</p> 1563<hr> 1564 1565<h2 id="ft_raster_funcs">FT_Raster_Funcs<a class="headerlink" href="#ft_raster_funcs" title="Permanent link">¶</a></h2> 1566<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1567<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Raster_Funcs_ 1568 { 1569 <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a> glyph_format; 1570 1571 <a href="ft2-raster.html#ft_raster_newfunc">FT_Raster_NewFunc</a> raster_new; 1572 <a href="ft2-raster.html#ft_raster_resetfunc">FT_Raster_ResetFunc</a> raster_reset; 1573 <a href="ft2-raster.html#ft_raster_setmodefunc">FT_Raster_SetModeFunc</a> raster_set_mode; 1574 <a href="ft2-raster.html#ft_raster_renderfunc">FT_Raster_RenderFunc</a> raster_render; 1575 <a href="ft2-raster.html#ft_raster_donefunc">FT_Raster_DoneFunc</a> raster_done; 1576 1577 } <b>FT_Raster_Funcs</b>; 1578</code></pre></div> 1579 1580<p>A structure used to describe a given raster class to the library.</p> 1581<h4>fields</h4> 1582 1583<table class="fields"> 1584<tr><td class="val" id="glyph_format">glyph_format</td><td class="desc"> 1585<p>The supported glyph format for this raster.</p> 1586</td></tr> 1587<tr><td class="val" id="raster_new">raster_new</td><td class="desc"> 1588<p>The raster constructor.</p> 1589</td></tr> 1590<tr><td class="val" id="raster_reset">raster_reset</td><td class="desc"> 1591<p>Used to reset the render pool within the raster.</p> 1592</td></tr> 1593<tr><td class="val" id="raster_render">raster_render</td><td class="desc"> 1594<p>A function to render a glyph into a given bitmap.</p> 1595</td></tr> 1596<tr><td class="val" id="raster_done">raster_done</td><td class="desc"> 1597<p>The raster destructor.</p> 1598</td></tr> 1599</table> 1600 1601<hr> 1602 1603<h2 id="ft_raster_bittest_func">FT_Raster_BitTest_Func<a class="headerlink" href="#ft_raster_bittest_func" title="Permanent link">¶</a></h2> 1604<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1605<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">int</span> 1606 (*<b>FT_Raster_BitTest_Func</b>)( <span class="keyword">int</span> y, 1607 <span class="keyword">int</span> x, 1608 <span class="keyword">void</span>* user ); 1609</code></pre></div> 1610 1611<p>Deprecated, unimplemented.</p> 1612<hr> 1613 1614<h2 id="ft_raster_bitset_func">FT_Raster_BitSet_Func<a class="headerlink" href="#ft_raster_bitset_func" title="Permanent link">¶</a></h2> 1615<p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> 1616<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> 1617 (*<b>FT_Raster_BitSet_Func</b>)( <span class="keyword">int</span> y, 1618 <span class="keyword">int</span> x, 1619 <span class="keyword">void</span>* user ); 1620</code></pre></div> 1621 1622<p>Deprecated, unimplemented.</p> 1623<hr> 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 </article> 1635 </div> 1636 </div> 1637 </main> 1638 1639 1640<footer class="md-footer"> 1641 1642 <div class="md-footer-nav"> 1643 <nav class="md-footer-nav__inner md-grid"> 1644 1645 <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev"> 1646 <div class="md-flex__cell md-flex__cell--shrink"> 1647 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> 1648 </div> 1649 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 1650 <span class="md-flex__ellipsis"> 1651 <span class="md-footer-nav__direction"> 1652 Previous 1653 </span> 1654 Bitmap Handling 1655 </span> 1656 </div> 1657 </a> 1658 1659 1660 <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next"> 1661 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 1662 <span class="md-flex__ellipsis"> 1663 <span class="md-footer-nav__direction"> 1664 Next 1665 </span> 1666 Glyph Stroker 1667 </span> 1668 </div> 1669 <div class="md-flex__cell md-flex__cell--shrink"> 1670 <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> 1671 </div> 1672 </a> 1673 1674 </nav> 1675 </div> 1676 1677 <div class="md-footer-meta md-typeset"> 1678 <div class="md-footer-meta__inner md-grid"> 1679 <div class="md-footer-copyright"> 1680 1681 <div class="md-footer-copyright__highlight"> 1682 Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. 1683 </div> 1684 1685 powered by 1686 <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a> 1687 and 1688 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 1689 Material for MkDocs</a> 1690 </div> 1691 1692 </div> 1693 </div> 1694</footer> 1695 1696 </div> 1697 1698 <script src="assets/javascripts/application.c33a9706.js"></script> 1699 1700 <script>app.initialize({version:"1.1",url:{base:"."}})</script> 1701 1702 <script src="javascripts/extra.js"></script> 1703 1704 1705 </body> 1706</html>