• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2<!doctype html>
3<html lang="en" class="no-js">
4  <head>
5
6      <meta charset="utf-8">
7      <meta name="viewport" content="width=device-width,initial-scale=1">
8
9        <meta name="description" content="API Reference Documentation for FreeType-2.12.1">
10
11
12
13        <meta name="author" content="FreeType Contributors">
14
15
16      <link rel="icon" href="images/favico.ico">
17      <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9">
18
19
20
21        <title>Driver properties - FreeType-2.12.1 API Reference</title>
22
23
24
25      <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css">
26
27
28        <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css">
29
30
31
32          <meta name="theme-color" content="#4cae4f">
33
34
35
36
37
38
39
40        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
41        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
42        <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style>
43
44
45
46
47      <link rel="stylesheet" href="stylesheets/extra.css">
48
49
50
51
52
53
54
55  </head>
56
57
58
59
60
61
62
63    <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green">
64
65
66    <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
67
68    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
69    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
70    <label class="md-overlay" for="__drawer"></label>
71    <div data-md-component="skip">
72
73
74        <a href="#driver-properties" class="md-skip">
75          Skip to content
76        </a>
77
78    </div>
79    <div data-md-component="announce">
80
81    </div>
82
83      <header class="md-header" data-md-component="header">
84  <nav class="md-header__inner md-grid" aria-label="Header">
85    <a href="index.html" title="FreeType-2.12.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.1 API Reference" data-md-component="logo">
86
87  <img src="images/favico.ico" alt="logo">
88
89    </a>
90    <label class="md-header__button md-icon" for="__drawer">
91      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
92    </label>
93    <div class="md-header__title" data-md-component="header-title">
94      <div class="md-header__ellipsis">
95        <div class="md-header__topic">
96          <span class="md-ellipsis">
97            FreeType-2.12.1 API Reference
98          </span>
99        </div>
100        <div class="md-header__topic" data-md-component="header-topic">
101          <span class="md-ellipsis">
102
103              Driver properties
104
105          </span>
106        </div>
107      </div>
108    </div>
109
110
111
112      <label class="md-header__button md-icon" for="__search">
113        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
114      </label>
115
116<div class="md-search" data-md-component="search" role="dialog">
117  <label class="md-search__overlay" for="__search"></label>
118  <div class="md-search__inner" role="search">
119    <form class="md-search__form" name="search">
120      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
121      <label class="md-search__icon md-icon" for="__search">
122        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
123        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
124      </label>
125      <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
126        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
127      </button>
128    </form>
129    <div class="md-search__output">
130      <div class="md-search__scrollwrap" data-md-scrollfix>
131        <div class="md-search-result" data-md-component="search-result">
132          <div class="md-search-result__meta">
133            Initializing search
134          </div>
135          <ol class="md-search-result__list"></ol>
136        </div>
137      </div>
138    </div>
139  </div>
140</div>
141
142
143  </nav>
144</header>
145
146    <div class="md-container" data-md-component="container">
147
148
149
150
151      <main class="md-main" data-md-component="main">
152        <div class="md-main__inner md-grid">
153
154
155
156              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
157                <div class="md-sidebar__scrollwrap">
158                  <div class="md-sidebar__inner">
159
160
161
162<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
163  <label class="md-nav__title" for="__drawer">
164    <a href="index.html" title="FreeType-2.12.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.1 API Reference" data-md-component="logo">
165
166  <img src="images/favico.ico" alt="logo">
167
168    </a>
169    FreeType-2.12.1 API Reference
170  </label>
171
172  <ul class="md-nav__list" data-md-scrollfix>
173
174
175
176
177
178
179
180
181    <li class="md-nav__item">
182      <a href="index.html" class="md-nav__link">
183        TOC
184      </a>
185    </li>
186
187
188
189
190
191
192
193
194
195
196    <li class="md-nav__item">
197      <a href="ft2-index.html" class="md-nav__link">
198        Index
199      </a>
200    </li>
201
202
203
204
205
206
207
208
209
210
211
212    <li class="md-nav__item md-nav__item--nested">
213
214
215        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
216
217      <label class="md-nav__link" for="__nav_3">
218        General Remarks
219        <span class="md-nav__icon md-icon"></span>
220      </label>
221      <nav class="md-nav" aria-label="General Remarks" data-md-level="1">
222        <label class="md-nav__title" for="__nav_3">
223          <span class="md-nav__icon md-icon"></span>
224          General Remarks
225        </label>
226        <ul class="md-nav__list" data-md-scrollfix>
227
228
229
230
231
232    <li class="md-nav__item">
233      <a href="ft2-preamble.html" class="md-nav__link">
234        Preamble
235      </a>
236    </li>
237
238
239
240
241
242
243
244    <li class="md-nav__item">
245      <a href="ft2-header_inclusion.html" class="md-nav__link">
246        FreeType's header inclusion scheme
247      </a>
248    </li>
249
250
251
252
253
254
255
256    <li class="md-nav__item">
257      <a href="ft2-user_allocation.html" class="md-nav__link">
258        User allocation
259      </a>
260    </li>
261
262
263
264        </ul>
265      </nav>
266    </li>
267
268
269
270
271
272
273
274
275
276
277
278    <li class="md-nav__item md-nav__item--nested">
279
280
281        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
282
283      <label class="md-nav__link" for="__nav_4">
284        Core API
285        <span class="md-nav__icon md-icon"></span>
286      </label>
287      <nav class="md-nav" aria-label="Core API" data-md-level="1">
288        <label class="md-nav__title" for="__nav_4">
289          <span class="md-nav__icon md-icon"></span>
290          Core API
291        </label>
292        <ul class="md-nav__list" data-md-scrollfix>
293
294
295
296
297
298    <li class="md-nav__item">
299      <a href="ft2-version.html" class="md-nav__link">
300        FreeType Version
301      </a>
302    </li>
303
304
305
306
307
308
309
310    <li class="md-nav__item">
311      <a href="ft2-basic_types.html" class="md-nav__link">
312        Basic Data Types
313      </a>
314    </li>
315
316
317
318
319
320
321
322    <li class="md-nav__item">
323      <a href="ft2-base_interface.html" class="md-nav__link">
324        Base Interface
325      </a>
326    </li>
327
328
329
330
331
332
333
334    <li class="md-nav__item">
335      <a href="ft2-glyph_variants.html" class="md-nav__link">
336        Unicode Variation Sequences
337      </a>
338    </li>
339
340
341
342
343
344
345
346    <li class="md-nav__item">
347      <a href="ft2-color_management.html" class="md-nav__link">
348        Glyph Color Management
349      </a>
350    </li>
351
352
353
354
355
356
357
358    <li class="md-nav__item">
359      <a href="ft2-layer_management.html" class="md-nav__link">
360        Glyph Layer Management
361      </a>
362    </li>
363
364
365
366
367
368
369
370    <li class="md-nav__item">
371      <a href="ft2-glyph_management.html" class="md-nav__link">
372        Glyph Management
373      </a>
374    </li>
375
376
377
378
379
380
381
382    <li class="md-nav__item">
383      <a href="ft2-mac_specific.html" class="md-nav__link">
384        Mac Specific Interface
385      </a>
386    </li>
387
388
389
390
391
392
393
394    <li class="md-nav__item">
395      <a href="ft2-sizes_management.html" class="md-nav__link">
396        Size Management
397      </a>
398    </li>
399
400
401
402
403
404
405
406    <li class="md-nav__item">
407      <a href="ft2-header_file_macros.html" class="md-nav__link">
408        Header File Macros
409      </a>
410    </li>
411
412
413
414        </ul>
415      </nav>
416    </li>
417
418
419
420
421
422
423
424
425
426
427
428    <li class="md-nav__item md-nav__item--nested">
429
430
431        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
432
433      <label class="md-nav__link" for="__nav_5">
434        Format-Specific API
435        <span class="md-nav__icon md-icon"></span>
436      </label>
437      <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1">
438        <label class="md-nav__title" for="__nav_5">
439          <span class="md-nav__icon md-icon"></span>
440          Format-Specific API
441        </label>
442        <ul class="md-nav__list" data-md-scrollfix>
443
444
445
446
447
448    <li class="md-nav__item">
449      <a href="ft2-multiple_masters.html" class="md-nav__link">
450        Multiple Masters
451      </a>
452    </li>
453
454
455
456
457
458
459
460    <li class="md-nav__item">
461      <a href="ft2-truetype_tables.html" class="md-nav__link">
462        TrueType Tables
463      </a>
464    </li>
465
466
467
468
469
470
471
472    <li class="md-nav__item">
473      <a href="ft2-type1_tables.html" class="md-nav__link">
474        Type 1 Tables
475      </a>
476    </li>
477
478
479
480
481
482
483
484    <li class="md-nav__item">
485      <a href="ft2-sfnt_names.html" class="md-nav__link">
486        SFNT Names
487      </a>
488    </li>
489
490
491
492
493
494
495
496    <li class="md-nav__item">
497      <a href="ft2-bdf_fonts.html" class="md-nav__link">
498        BDF and PCF Files
499      </a>
500    </li>
501
502
503
504
505
506
507
508    <li class="md-nav__item">
509      <a href="ft2-cid_fonts.html" class="md-nav__link">
510        CID Fonts
511      </a>
512    </li>
513
514
515
516
517
518
519
520    <li class="md-nav__item">
521      <a href="ft2-pfr_fonts.html" class="md-nav__link">
522        PFR Fonts
523      </a>
524    </li>
525
526
527
528
529
530
531
532    <li class="md-nav__item">
533      <a href="ft2-winfnt_fonts.html" class="md-nav__link">
534        Window FNT Files
535      </a>
536    </li>
537
538
539
540
541
542
543
544    <li class="md-nav__item">
545      <a href="ft2-svg_fonts.html" class="md-nav__link">
546        OpenType SVG Fonts
547      </a>
548    </li>
549
550
551
552
553
554
555
556    <li class="md-nav__item">
557      <a href="ft2-font_formats.html" class="md-nav__link">
558        Font Formats
559      </a>
560    </li>
561
562
563
564
565
566
567
568    <li class="md-nav__item">
569      <a href="ft2-gasp_table.html" class="md-nav__link">
570        Gasp Table
571      </a>
572    </li>
573
574
575
576        </ul>
577      </nav>
578    </li>
579
580
581
582
583
584
585
586
587
588
589
590
591
592    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
593
594
595        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" checked>
596
597      <label class="md-nav__link" for="__nav_6">
598        Controlling FreeType Modules
599        <span class="md-nav__icon md-icon"></span>
600      </label>
601      <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1">
602        <label class="md-nav__title" for="__nav_6">
603          <span class="md-nav__icon md-icon"></span>
604          Controlling FreeType Modules
605        </label>
606        <ul class="md-nav__list" data-md-scrollfix>
607
608
609
610
611
612    <li class="md-nav__item">
613      <a href="ft2-auto_hinter.html" class="md-nav__link">
614        The auto-hinter
615      </a>
616    </li>
617
618
619
620
621
622
623
624    <li class="md-nav__item">
625      <a href="ft2-cff_driver.html" class="md-nav__link">
626        The CFF driver
627      </a>
628    </li>
629
630
631
632
633
634
635
636    <li class="md-nav__item">
637      <a href="ft2-t1_cid_driver.html" class="md-nav__link">
638        The Type 1 and CID drivers
639      </a>
640    </li>
641
642
643
644
645
646
647
648    <li class="md-nav__item">
649      <a href="ft2-tt_driver.html" class="md-nav__link">
650        The TrueType driver
651      </a>
652    </li>
653
654
655
656
657
658
659
660    <li class="md-nav__item">
661      <a href="ft2-pcf_driver.html" class="md-nav__link">
662        The PCF driver
663      </a>
664    </li>
665
666
667
668
669
670
671
672    <li class="md-nav__item">
673      <a href="ft2-ot_svg_driver.html" class="md-nav__link">
674        The SVG driver
675      </a>
676    </li>
677
678
679
680
681
682
683
684
685
686    <li class="md-nav__item md-nav__item--active">
687
688      <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
689
690
691
692
693
694        <label class="md-nav__link md-nav__link--active" for="__toc">
695          Driver properties
696          <span class="md-nav__icon md-icon"></span>
697        </label>
698
699      <a href="ft2-properties.html" class="md-nav__link md-nav__link--active">
700        Driver properties
701      </a>
702
703
704<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
705
706
707
708
709
710
711    <label class="md-nav__title" for="__toc">
712      <span class="md-nav__icon md-icon"></span>
713      Table of contents
714    </label>
715    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
716
717        <li class="md-nav__item">
718  <a href="#synopsis" class="md-nav__link">
719    Synopsis
720  </a>
721
722</li>
723
724        <li class="md-nav__item">
725  <a href="#ft_hinting_xxx" class="md-nav__link">
726    FT_HINTING_XXX
727  </a>
728
729</li>
730
731        <li class="md-nav__item">
732  <a href="#hinting-engine" class="md-nav__link">
733    hinting-engine
734  </a>
735
736</li>
737
738        <li class="md-nav__item">
739  <a href="#no-stem-darkening" class="md-nav__link">
740    no-stem-darkening
741  </a>
742
743</li>
744
745        <li class="md-nav__item">
746  <a href="#darkening-parameters" class="md-nav__link">
747    darkening-parameters
748  </a>
749
750</li>
751
752        <li class="md-nav__item">
753  <a href="#random-seed" class="md-nav__link">
754    random-seed
755  </a>
756
757</li>
758
759        <li class="md-nav__item">
760  <a href="#no-long-family-names" class="md-nav__link">
761    no-long-family-names
762  </a>
763
764</li>
765
766        <li class="md-nav__item">
767  <a href="#tt_interpreter_version_xxx" class="md-nav__link">
768    TT_INTERPRETER_VERSION_XXX
769  </a>
770
771</li>
772
773        <li class="md-nav__item">
774  <a href="#interpreter-version" class="md-nav__link">
775    interpreter-version
776  </a>
777
778</li>
779
780        <li class="md-nav__item">
781  <a href="#svg-hooks" class="md-nav__link">
782    svg-hooks
783  </a>
784
785</li>
786
787        <li class="md-nav__item">
788  <a href="#glyph-to-script-map" class="md-nav__link">
789    glyph-to-script-map
790  </a>
791
792</li>
793
794        <li class="md-nav__item">
795  <a href="#ft_autohinter_script_xxx" class="md-nav__link">
796    FT_AUTOHINTER_SCRIPT_XXX
797  </a>
798
799</li>
800
801        <li class="md-nav__item">
802  <a href="#ft_prop_glyphtoscriptmap" class="md-nav__link">
803    FT_Prop_GlyphToScriptMap
804  </a>
805
806</li>
807
808        <li class="md-nav__item">
809  <a href="#fallback-script" class="md-nav__link">
810    fallback-script
811  </a>
812
813</li>
814
815        <li class="md-nav__item">
816  <a href="#default-script" class="md-nav__link">
817    default-script
818  </a>
819
820</li>
821
822        <li class="md-nav__item">
823  <a href="#increase-x-height" class="md-nav__link">
824    increase-x-height
825  </a>
826
827</li>
828
829        <li class="md-nav__item">
830  <a href="#ft_prop_increasexheight" class="md-nav__link">
831    FT_Prop_IncreaseXHeight
832  </a>
833
834</li>
835
836        <li class="md-nav__item">
837  <a href="#warping" class="md-nav__link">
838    warping
839  </a>
840
841</li>
842
843    </ul>
844
845</nav>
846
847    </li>
848
849
850
851
852
853
854
855    <li class="md-nav__item">
856      <a href="ft2-parameter_tags.html" class="md-nav__link">
857        Parameter Tags
858      </a>
859    </li>
860
861
862
863
864
865
866
867    <li class="md-nav__item">
868      <a href="ft2-lcd_rendering.html" class="md-nav__link">
869        Subpixel Rendering
870      </a>
871    </li>
872
873
874
875        </ul>
876      </nav>
877    </li>
878
879
880
881
882
883
884
885
886
887
888
889    <li class="md-nav__item md-nav__item--nested">
890
891
892        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
893
894      <label class="md-nav__link" for="__nav_7">
895        Cache Sub-System
896        <span class="md-nav__icon md-icon"></span>
897      </label>
898      <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
899        <label class="md-nav__title" for="__nav_7">
900          <span class="md-nav__icon md-icon"></span>
901          Cache Sub-System
902        </label>
903        <ul class="md-nav__list" data-md-scrollfix>
904
905
906
907
908
909    <li class="md-nav__item">
910      <a href="ft2-cache_subsystem.html" class="md-nav__link">
911        Cache Sub-System
912      </a>
913    </li>
914
915
916
917        </ul>
918      </nav>
919    </li>
920
921
922
923
924
925
926
927
928
929
930
931    <li class="md-nav__item md-nav__item--nested">
932
933
934        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
935
936      <label class="md-nav__link" for="__nav_8">
937        Support API
938        <span class="md-nav__icon md-icon"></span>
939      </label>
940      <nav class="md-nav" aria-label="Support API" data-md-level="1">
941        <label class="md-nav__title" for="__nav_8">
942          <span class="md-nav__icon md-icon"></span>
943          Support API
944        </label>
945        <ul class="md-nav__list" data-md-scrollfix>
946
947
948
949
950
951    <li class="md-nav__item">
952      <a href="ft2-computations.html" class="md-nav__link">
953        Computations
954      </a>
955    </li>
956
957
958
959
960
961
962
963    <li class="md-nav__item">
964      <a href="ft2-list_processing.html" class="md-nav__link">
965        List Processing
966      </a>
967    </li>
968
969
970
971
972
973
974
975    <li class="md-nav__item">
976      <a href="ft2-outline_processing.html" class="md-nav__link">
977        Outline Processing
978      </a>
979    </li>
980
981
982
983
984
985
986
987    <li class="md-nav__item">
988      <a href="ft2-quick_advance.html" class="md-nav__link">
989        Quick retrieval of advance values
990      </a>
991    </li>
992
993
994
995
996
997
998
999    <li class="md-nav__item">
1000      <a href="ft2-bitmap_handling.html" class="md-nav__link">
1001        Bitmap Handling
1002      </a>
1003    </li>
1004
1005
1006
1007
1008
1009
1010
1011    <li class="md-nav__item">
1012      <a href="ft2-raster.html" class="md-nav__link">
1013        Scanline Converter
1014      </a>
1015    </li>
1016
1017
1018
1019
1020
1021
1022
1023    <li class="md-nav__item">
1024      <a href="ft2-glyph_stroker.html" class="md-nav__link">
1025        Glyph Stroker
1026      </a>
1027    </li>
1028
1029
1030
1031
1032
1033
1034
1035    <li class="md-nav__item">
1036      <a href="ft2-system_interface.html" class="md-nav__link">
1037        System Interface
1038      </a>
1039    </li>
1040
1041
1042
1043
1044
1045
1046
1047    <li class="md-nav__item">
1048      <a href="ft2-module_management.html" class="md-nav__link">
1049        Module Management
1050      </a>
1051    </li>
1052
1053
1054
1055
1056
1057
1058
1059    <li class="md-nav__item">
1060      <a href="ft2-gzip.html" class="md-nav__link">
1061        GZIP Streams
1062      </a>
1063    </li>
1064
1065
1066
1067
1068
1069
1070
1071    <li class="md-nav__item">
1072      <a href="ft2-lzw.html" class="md-nav__link">
1073        LZW Streams
1074      </a>
1075    </li>
1076
1077
1078
1079
1080
1081
1082
1083    <li class="md-nav__item">
1084      <a href="ft2-bzip2.html" class="md-nav__link">
1085        BZIP2 Streams
1086      </a>
1087    </li>
1088
1089
1090
1091
1092
1093
1094
1095    <li class="md-nav__item">
1096      <a href="ft2-debugging_apis.html" class="md-nav__link">
1097        External Debugging APIs
1098      </a>
1099    </li>
1100
1101
1102
1103        </ul>
1104      </nav>
1105    </li>
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117    <li class="md-nav__item md-nav__item--nested">
1118
1119
1120        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
1121
1122      <label class="md-nav__link" for="__nav_9">
1123        Error Codes
1124        <span class="md-nav__icon md-icon"></span>
1125      </label>
1126      <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
1127        <label class="md-nav__title" for="__nav_9">
1128          <span class="md-nav__icon md-icon"></span>
1129          Error Codes
1130        </label>
1131        <ul class="md-nav__list" data-md-scrollfix>
1132
1133
1134
1135
1136
1137    <li class="md-nav__item">
1138      <a href="ft2-error_enumerations.html" class="md-nav__link">
1139        Error Enumerations
1140      </a>
1141    </li>
1142
1143
1144
1145
1146
1147
1148
1149    <li class="md-nav__item">
1150      <a href="ft2-error_code_values.html" class="md-nav__link">
1151        Error Code Values
1152      </a>
1153    </li>
1154
1155
1156
1157        </ul>
1158      </nav>
1159    </li>
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171    <li class="md-nav__item md-nav__item--nested">
1172
1173
1174        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
1175
1176      <label class="md-nav__link" for="__nav_10">
1177        Miscellaneous
1178        <span class="md-nav__icon md-icon"></span>
1179      </label>
1180      <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
1181        <label class="md-nav__title" for="__nav_10">
1182          <span class="md-nav__icon md-icon"></span>
1183          Miscellaneous
1184        </label>
1185        <ul class="md-nav__list" data-md-scrollfix>
1186
1187
1188
1189
1190
1191    <li class="md-nav__item">
1192      <a href="ft2-gx_validation.html" class="md-nav__link">
1193        TrueTypeGX/AAT Validation
1194      </a>
1195    </li>
1196
1197
1198
1199
1200
1201
1202
1203    <li class="md-nav__item">
1204      <a href="ft2-incremental.html" class="md-nav__link">
1205        Incremental Loading
1206      </a>
1207    </li>
1208
1209
1210
1211
1212
1213
1214
1215    <li class="md-nav__item">
1216      <a href="ft2-truetype_engine.html" class="md-nav__link">
1217        The TrueType Engine
1218      </a>
1219    </li>
1220
1221
1222
1223
1224
1225
1226
1227    <li class="md-nav__item">
1228      <a href="ft2-ot_validation.html" class="md-nav__link">
1229        OpenType Validation
1230      </a>
1231    </li>
1232
1233
1234
1235        </ul>
1236      </nav>
1237    </li>
1238
1239
1240
1241  </ul>
1242</nav>
1243                  </div>
1244                </div>
1245              </div>
1246
1247
1248
1249              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1250                <div class="md-sidebar__scrollwrap">
1251                  <div class="md-sidebar__inner">
1252
1253<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1254
1255
1256
1257
1258
1259
1260    <label class="md-nav__title" for="__toc">
1261      <span class="md-nav__icon md-icon"></span>
1262      Table of contents
1263    </label>
1264    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1265
1266        <li class="md-nav__item">
1267  <a href="#synopsis" class="md-nav__link">
1268    Synopsis
1269  </a>
1270
1271</li>
1272
1273        <li class="md-nav__item">
1274  <a href="#ft_hinting_xxx" class="md-nav__link">
1275    FT_HINTING_XXX
1276  </a>
1277
1278</li>
1279
1280        <li class="md-nav__item">
1281  <a href="#hinting-engine" class="md-nav__link">
1282    hinting-engine
1283  </a>
1284
1285</li>
1286
1287        <li class="md-nav__item">
1288  <a href="#no-stem-darkening" class="md-nav__link">
1289    no-stem-darkening
1290  </a>
1291
1292</li>
1293
1294        <li class="md-nav__item">
1295  <a href="#darkening-parameters" class="md-nav__link">
1296    darkening-parameters
1297  </a>
1298
1299</li>
1300
1301        <li class="md-nav__item">
1302  <a href="#random-seed" class="md-nav__link">
1303    random-seed
1304  </a>
1305
1306</li>
1307
1308        <li class="md-nav__item">
1309  <a href="#no-long-family-names" class="md-nav__link">
1310    no-long-family-names
1311  </a>
1312
1313</li>
1314
1315        <li class="md-nav__item">
1316  <a href="#tt_interpreter_version_xxx" class="md-nav__link">
1317    TT_INTERPRETER_VERSION_XXX
1318  </a>
1319
1320</li>
1321
1322        <li class="md-nav__item">
1323  <a href="#interpreter-version" class="md-nav__link">
1324    interpreter-version
1325  </a>
1326
1327</li>
1328
1329        <li class="md-nav__item">
1330  <a href="#svg-hooks" class="md-nav__link">
1331    svg-hooks
1332  </a>
1333
1334</li>
1335
1336        <li class="md-nav__item">
1337  <a href="#glyph-to-script-map" class="md-nav__link">
1338    glyph-to-script-map
1339  </a>
1340
1341</li>
1342
1343        <li class="md-nav__item">
1344  <a href="#ft_autohinter_script_xxx" class="md-nav__link">
1345    FT_AUTOHINTER_SCRIPT_XXX
1346  </a>
1347
1348</li>
1349
1350        <li class="md-nav__item">
1351  <a href="#ft_prop_glyphtoscriptmap" class="md-nav__link">
1352    FT_Prop_GlyphToScriptMap
1353  </a>
1354
1355</li>
1356
1357        <li class="md-nav__item">
1358  <a href="#fallback-script" class="md-nav__link">
1359    fallback-script
1360  </a>
1361
1362</li>
1363
1364        <li class="md-nav__item">
1365  <a href="#default-script" class="md-nav__link">
1366    default-script
1367  </a>
1368
1369</li>
1370
1371        <li class="md-nav__item">
1372  <a href="#increase-x-height" class="md-nav__link">
1373    increase-x-height
1374  </a>
1375
1376</li>
1377
1378        <li class="md-nav__item">
1379  <a href="#ft_prop_increasexheight" class="md-nav__link">
1380    FT_Prop_IncreaseXHeight
1381  </a>
1382
1383</li>
1384
1385        <li class="md-nav__item">
1386  <a href="#warping" class="md-nav__link">
1387    warping
1388  </a>
1389
1390</li>
1391
1392    </ul>
1393
1394</nav>
1395                  </div>
1396                </div>
1397              </div>
1398
1399
1400          <div class="md-content" data-md-component="content">
1401            <article class="md-content__inner md-typeset">
1402
1403
1404
1405                <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#controlling-freetype-modules">Controlling FreeType Modules</a> &raquo; Driver properties</p>
1406<hr />
1407<h1 id="driver-properties">Driver properties<a class="headerlink" href="#driver-properties" title="Permanent link">&para;</a></h1>
1408<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1409<p>Driver modules can be controlled by setting and unsetting properties, using the functions <code><a href="ft2-module_management.html#ft_property_set">FT_Property_Set</a></code> and <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code>. This section documents the available properties, together with auxiliary macros and structures.</p>
1410<h2 id="ft_hinting_xxx">FT_HINTING_XXX<a class="headerlink" href="#ft_hinting_xxx" title="Permanent link">&para;</a></h2>
1411<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
1412<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-properties.html#ft_hinting_freetype">FT_HINTING_FREETYPE</a>  0
1413#<span class="keyword">define</span> <a href="ft2-properties.html#ft_hinting_adobe">FT_HINTING_ADOBE</a>     1
1414
1415  /* these constants (introduced in 2.4.12) are deprecated */
1416#<span class="keyword">define</span> FT_CFF_HINTING_FREETYPE  <a href="ft2-properties.html#ft_hinting_freetype">FT_HINTING_FREETYPE</a>
1417#<span class="keyword">define</span> FT_CFF_HINTING_ADOBE     <a href="ft2-properties.html#ft_hinting_adobe">FT_HINTING_ADOBE</a>
1418</code></pre></div>
1419
1420<p>A list of constants used for the <code><a href="ft2-properties.html#hinting-engine">hinting-engine</a></code> property to select the hinting engine for CFF, Type&nbsp;1, and CID fonts.</p>
1421<h4>values</h4>
1422<table class="fields">
1423<tr><td class="val" id="ft_hinting_freetype">FT_HINTING_FREETYPE</td><td class="desc">
1424<p>Use the old FreeType hinting engine.</p>
1425</td></tr>
1426<tr><td class="val" id="ft_hinting_adobe">FT_HINTING_ADOBE</td><td class="desc">
1427<p>Use the hinting engine contributed by Adobe.</p>
1428</td></tr>
1429</table>
1430
1431<h4>since</h4>
1432
1433<p>2.9</p>
1434<hr>
1435
1436<h2 id="hinting-engine">hinting-engine<a class="headerlink" href="#hinting-engine" title="Permanent link">&para;</a></h2>
1437<p>Thanks to Adobe, which contributed a new hinting (and parsing) engine, an application can select between &lsquo;freetype&rsquo; and &lsquo;adobe&rsquo; if compiled with <code>CFF_CONFIG_OPTION_OLD_ENGINE</code>. If this configuration macro isn't defined, &lsquo;hinting-engine&rsquo; does nothing.</p>
1438<p>The same holds for the Type&nbsp;1 and CID modules if compiled with <code>T1_CONFIG_OPTION_OLD_ENGINE</code>.</p>
1439<p>For the &lsquo;cff&rsquo; module, the default engine is &lsquo;adobe&rsquo;. For both the &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules, the default engine is &lsquo;adobe&rsquo;, too.</p>
1440<h4>note</h4>
1441
1442<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1443<p>This property can be set via the <code>FREETYPE_PROPERTIES</code> environment variable (using values &lsquo;adobe&rsquo; or &lsquo;freetype&rsquo;).</p>
1444<h4>example</h4>
1445
1446<p>The following example code demonstrates how to select Adobe's hinting engine for the &lsquo;cff&rsquo; module (omitting the error handling).
1447<div class="highlight"><pre><span></span><code>  FT_Library  library;
1448  FT_UInt     hinting_engine = FT_HINTING_ADOBE;
1449
1450
1451  FT_Init_FreeType( &amp;library );
1452
1453  FT_Property_Set( library, &quot;cff&quot;,
1454                            &quot;hinting-engine&quot;, &amp;hinting_engine );
1455</code></pre></div></p>
1456<h4>since</h4>
1457
1458<p>2.4.12 (for &lsquo;cff&rsquo; module)</p>
1459<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
1460<hr>
1461
1462<h2 id="no-stem-darkening">no-stem-darkening<a class="headerlink" href="#no-stem-darkening" title="Permanent link">&para;</a></h2>
1463<p>All glyphs that pass through the auto-hinter will be emboldened unless this property is set to TRUE. The same is true for the CFF, Type&nbsp;1, and CID font modules if the &lsquo;Adobe&rsquo; engine is selected (which is the default).</p>
1464<p>Stem darkening emboldens glyphs at smaller sizes to make them more readable on common low-DPI screens when using linear alpha blending and gamma correction, see <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code>. When not using linear alpha blending and gamma correction, glyphs will appear heavy and fuzzy!</p>
1465<p>Gamma correction essentially lightens fonts since shades of grey are shifted to higher pixel values (=&nbsp;higher brightness) to match the original intention to the reality of our screens. The side-effect is that glyphs &lsquo;thin out&rsquo;. Mac OS&nbsp;X and Adobe's proprietary font rendering library implement a counter-measure: stem darkening at smaller sizes where shades of gray dominate. By emboldening a glyph slightly in relation to its pixel size, individual pixels get higher coverage of filled-in outlines and are therefore &lsquo;blacker&rsquo;. This counteracts the &lsquo;thinning out&rsquo; of glyphs, making text remain readable at smaller sizes.</p>
1466<p>For the auto-hinter, stem-darkening is experimental currently and thus switched off by default (this is, <code>no-stem-darkening</code> is set to TRUE by default). Total consistency with the CFF driver is not achieved right now because the emboldening method differs and glyphs must be scaled down on the Y-axis to keep outline points inside their precomputed blue zones. The smaller the size (especially 9ppem and down), the higher the loss of emboldening versus the CFF driver.</p>
1467<p>Note that stem darkening is never applied if <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> is set.</p>
1468<h4>note</h4>
1469
1470<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1471<p>This property can be set via the <code>FREETYPE_PROPERTIES</code> environment variable (using values 1 and 0 for &lsquo;on&rsquo; and &lsquo;off&rsquo;, respectively). It can also be set per face using <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code> with <code><a href="ft2-parameter_tags.html#ft_param_tag_stem_darkening">FT_PARAM_TAG_STEM_DARKENING</a></code>.</p>
1472<h4>example</h4>
1473<div class="highlight"><pre><span></span><code>  FT_Library  library;
1474  FT_Bool     no_stem_darkening = TRUE;
1475
1476
1477  FT_Init_FreeType( &amp;library );
1478
1479  FT_Property_Set( library, &quot;cff&quot;,
1480                            &quot;no-stem-darkening&quot;, &amp;no_stem_darkening );
1481</code></pre></div>
1482<h4>since</h4>
1483
1484<p>2.4.12 (for &lsquo;cff&rsquo; module)</p>
1485<p>2.6.2 (for &lsquo;autofitter&rsquo; module)</p>
1486<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
1487<hr>
1488
1489<h2 id="darkening-parameters">darkening-parameters<a class="headerlink" href="#darkening-parameters" title="Permanent link">&para;</a></h2>
1490<p>By default, the Adobe hinting engine, as used by the CFF, Type&nbsp;1, and CID font drivers, darkens stems as follows (if the <code>no-stem-darkening</code> property isn't set):
1491<div class="highlight"><pre><span></span><code>  stem width &lt;= 0.5px:   darkening amount = 0.4px
1492  stem width  = 1px:     darkening amount = 0.275px
1493  stem width  = 1.667px: darkening amount = 0.275px
1494  stem width &gt;= 2.333px: darkening amount = 0px
1495</code></pre></div></p>
1496<p>and piecewise linear in-between. At configuration time, these four control points can be set with the macro <code>CFF_CONFIG_OPTION_DARKENING_PARAMETERS</code>; the CFF, Type&nbsp;1, and CID drivers share these values. At runtime, the control points can be changed using the <code>darkening-parameters</code> property (see the example below that demonstrates this for the Type&nbsp;1 driver).</p>
1497<p>The x&nbsp;values give the stem width, and the y&nbsp;values the darkening amount. The unit is 1000<sup>th</sup> of pixels. All coordinate values must be positive; the x&nbsp;values must be monotonically increasing; the y&nbsp;values must be monotonically decreasing and smaller than or equal to 500 (corresponding to half a pixel); the slope of each linear piece must be shallower than -1 (e.g., -.4).</p>
1498<p>The auto-hinter provides this property, too, as an experimental feature. See <code><a href="ft2-properties.html#no-stem-darkening">no-stem-darkening</a></code> for more.</p>
1499<h4>note</h4>
1500
1501<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1502<p>This property can be set via the <code>FREETYPE_PROPERTIES</code> environment variable, using eight comma-separated integers without spaces. Here the above example, using <code>\</code> to break the line for readability.
1503<div class="highlight"><pre><span></span><code>  FREETYPE_PROPERTIES=\
1504  type1:darkening-parameters=500,300,1000,200,1500,100,2000,0
1505</code></pre></div></p>
1506<h4>example</h4>
1507<div class="highlight"><pre><span></span><code>  FT_Library  library;
1508  FT_Int      darken_params[8] = {  500, 300,   // x1, y1
1509                                   1000, 200,   // x2, y2
1510                                   1500, 100,   // x3, y3
1511                                   2000,   0 }; // x4, y4
1512
1513
1514  FT_Init_FreeType( &amp;library );
1515
1516  FT_Property_Set( library, &quot;type1&quot;,
1517                            &quot;darkening-parameters&quot;, darken_params );
1518</code></pre></div>
1519<h4>since</h4>
1520
1521<p>2.5.1 (for &lsquo;cff&rsquo; module)</p>
1522<p>2.6.2 (for &lsquo;autofitter&rsquo; module)</p>
1523<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
1524<hr>
1525
1526<h2 id="random-seed">random-seed<a class="headerlink" href="#random-seed" title="Permanent link">&para;</a></h2>
1527<p>By default, the seed value for the CFF &lsquo;random&rsquo; operator and the similar &lsquo;0 28 callothersubr pop&rsquo; command for the Type&nbsp;1 and CID drivers is set to a random value. However, mainly for debugging purposes, it is often necessary to use a known value as a seed so that the pseudo-random number sequences generated by &lsquo;random&rsquo; are repeatable.</p>
1528<p>The <code>random-seed</code> property does that. Its argument is a signed 32bit integer; if the value is zero or negative, the seed given by the <code>intitialRandomSeed</code> private DICT operator in a CFF file gets used (or a default value if there is no such operator). If the value is positive, use it instead of <code>initialRandomSeed</code>, which is consequently ignored.</p>
1529<h4>note</h4>
1530
1531<p>This property can be set via the <code>FREETYPE_PROPERTIES</code> environment variable. It can also be set per face using <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code> with <code><a href="ft2-parameter_tags.html#ft_param_tag_random_seed">FT_PARAM_TAG_RANDOM_SEED</a></code>.</p>
1532<h4>since</h4>
1533
1534<p>2.8 (for &lsquo;cff&rsquo; module)</p>
1535<p>2.9 (for &lsquo;type1&rsquo; and &lsquo;t1cid&rsquo; modules)</p>
1536<hr>
1537
1538<h2 id="no-long-family-names">no-long-family-names<a class="headerlink" href="#no-long-family-names" title="Permanent link">&para;</a></h2>
1539<p>If <code>PCF_CONFIG_OPTION_LONG_FAMILY_NAMES</code> is active while compiling FreeType, the PCF driver constructs long family names.</p>
1540<p>There are many PCF fonts just called &lsquo;Fixed&rsquo; which look completely different, and which have nothing to do with each other. When selecting &lsquo;Fixed&rsquo; in KDE or Gnome one gets results that appear rather random, the style changes often if one changes the size and one cannot select some fonts at all. The improve this situation, the PCF module prepends the foundry name (plus a space) to the family name. It also checks whether there are &lsquo;wide&rsquo; characters; all put together, family names like &lsquo;Sony Fixed&rsquo; or &lsquo;Misc Fixed Wide&rsquo; are constructed.</p>
1541<p>If <code>no-long-family-names</code> is set, this feature gets switched off.</p>
1542<h4>note</h4>
1543
1544<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1545<p>This property can be set via the <code>FREETYPE_PROPERTIES</code> environment variable (using values 1 and 0 for &lsquo;on&rsquo; and &lsquo;off&rsquo;, respectively).</p>
1546<h4>example</h4>
1547<div class="highlight"><pre><span></span><code>  FT_Library  library;
1548  FT_Bool     no_long_family_names = TRUE;
1549
1550
1551  FT_Init_FreeType( &amp;library );
1552
1553  FT_Property_Set( library, &quot;pcf&quot;,
1554                            &quot;no-long-family-names&quot;,
1555                            &amp;no_long_family_names );
1556</code></pre></div>
1557<h4>since</h4>
1558
1559<p>2.8</p>
1560<hr>
1561
1562<h2 id="tt_interpreter_version_xxx">TT_INTERPRETER_VERSION_XXX<a class="headerlink" href="#tt_interpreter_version_xxx" title="Permanent link">&para;</a></h2>
1563<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
1564<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-properties.html#tt_interpreter_version_35">TT_INTERPRETER_VERSION_35</a>  35
1565#<span class="keyword">define</span> <a href="ft2-properties.html#tt_interpreter_version_38">TT_INTERPRETER_VERSION_38</a>  38
1566#<span class="keyword">define</span> <a href="ft2-properties.html#tt_interpreter_version_40">TT_INTERPRETER_VERSION_40</a>  40
1567</code></pre></div>
1568
1569<p>A list of constants used for the <code><a href="ft2-properties.html#interpreter-version">interpreter-version</a></code> property to select the hinting engine for Truetype fonts.</p>
1570<p>The numeric value in the constant names represents the version number as returned by the &lsquo;GETINFO&rsquo; bytecode instruction.</p>
1571<h4>values</h4>
1572<table class="fields">
1573<tr><td class="val" id="tt_interpreter_version_35">TT_INTERPRETER_VERSION_35</td><td class="desc">
1574<p>Version&nbsp;35 corresponds to MS rasterizer v.1.7 as used e.g. in Windows&nbsp;98; only grayscale and B/W rasterizing is supported.</p>
1575</td></tr>
1576<tr><td class="val" id="tt_interpreter_version_38">TT_INTERPRETER_VERSION_38</td><td class="desc">
1577<p>Version&nbsp;38 corresponds to MS rasterizer v.1.9; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in the Internet Explorer&nbsp;9 running on Windows&nbsp;7). It is used in FreeType to select the &lsquo;Infinality&rsquo; subpixel hinting code. The code may be removed in a future version.</p>
1578</td></tr>
1579<tr><td class="val" id="tt_interpreter_version_40">TT_INTERPRETER_VERSION_40</td><td class="desc">
1580<p>Version&nbsp;40 corresponds to MS rasterizer v.2.1; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in Microsoft's Edge Browser on Windows&nbsp;10). It is used in FreeType to select the &lsquo;minimal&rsquo; subpixel hinting code, a stripped-down and higher performance version of the &lsquo;Infinality&rsquo; code.</p>
1581</td></tr>
1582</table>
1583
1584<h4>note</h4>
1585
1586<p>This property controls the behaviour of the bytecode interpreter and thus how outlines get hinted. It does <strong>not</strong> control how glyph get rasterized! In particular, it does not control subpixel color filtering.</p>
1587<p>If FreeType has not been compiled with the configuration option <code>TT_CONFIG_OPTION_SUBPIXEL_HINTING</code>, selecting version&nbsp;38 or&nbsp;40 causes an <code>FT_Err_Unimplemented_Feature</code> error.</p>
1588<p>Depending on the graphics framework, Microsoft uses different bytecode and rendering engines. As a consequence, the version numbers returned by a call to the &lsquo;GETINFO&rsquo; bytecode instruction are more convoluted than desired.</p>
1589<p>Here are two tables that try to shed some light on the possible values for the MS rasterizer engine, together with the additional features introduced by it.
1590<div class="highlight"><pre><span></span><code>  GETINFO framework               version feature
1591  -------------------------------------------------------------------
1592      3   GDI (Win 3.1),            v1.0  16-bit, first version
1593          TrueImage
1594     33   GDI (Win NT 3.1),         v1.5  32-bit
1595          HP Laserjet
1596     34   GDI (Win 95)              v1.6  font smoothing,
1597                                          new SCANTYPE opcode
1598     35   GDI (Win 98/2000)         v1.7  (UN)SCALED_COMPONENT_OFFSET
1599                                            bits in composite glyphs
1600     36   MGDI (Win CE 2)           v1.6+ classic ClearType
1601     37   GDI (XP and later),       v1.8  ClearType
1602          GDI+ old (before Vista)
1603     38   GDI+ old (Vista, Win 7),  v1.9  subpixel ClearType,
1604          WPF                             Y-direction ClearType,
1605                                          additional error checking
1606     39   DWrite (before Win 8)     v2.0  subpixel ClearType flags
1607                                            in GETINFO opcode,
1608                                          bug fixes
1609     40   GDI+ (after Win 7),       v2.1  Y-direction ClearType flag
1610          DWrite (Win 8)                    in GETINFO opcode,
1611                                          Gray ClearType
1612</code></pre></div></p>
1613<p>The &lsquo;version&rsquo; field gives a rough orientation only, since some applications provided certain features much earlier (as an example, Microsoft Reader used subpixel and Y-direction ClearType already in Windows 2000). Similarly, updates to a given framework might include improved hinting support.
1614<div class="highlight"><pre><span></span><code>   version   sampling          rendering        comment
1615            x        y       x           y
1616  --------------------------------------------------------------
1617    v1.0   normal  normal  B/W           B/W    bi-level
1618    v1.6   high    high    gray          gray   grayscale
1619    v1.8   high    normal  color-filter  B/W    (GDI) ClearType
1620    v1.9   high    high    color-filter  gray   Color ClearType
1621    v2.1   high    normal  gray          B/W    Gray ClearType
1622    v2.1   high    high    gray          gray   Gray ClearType
1623</code></pre></div></p>
1624<p>Color and Gray ClearType are the two available variants of &lsquo;Y-direction ClearType&rsquo;, meaning grayscale rasterization along the Y-direction; the name used in the TrueType specification for this feature is &lsquo;symmetric smoothing&rsquo;. &lsquo;Classic ClearType&rsquo; is the original algorithm used before introducing a modified version in Win&nbsp;XP. Another name for v1.6's grayscale rendering is &lsquo;font smoothing&rsquo;, and &lsquo;Color ClearType&rsquo; is sometimes also called &lsquo;DWrite ClearType&rsquo;. To differentiate between today's Color ClearType and the earlier ClearType variant with B/W rendering along the vertical axis, the latter is sometimes called &lsquo;GDI ClearType&rsquo;.</p>
1625<p>&lsquo;Normal&rsquo; and &lsquo;high&rsquo; sampling describe the (virtual) resolution to access the rasterized outline after the hinting process. &lsquo;Normal&rsquo; means 1 sample per grid line (i.e., B/W). In the current Microsoft implementation, &lsquo;high&rsquo; means an extra virtual resolution of 16x16 (or 16x1) grid lines per pixel for bytecode instructions like &lsquo;MIRP&rsquo;. After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid lines for color filtering if Color ClearType is activated.</p>
1626<p>Note that &lsquo;Gray ClearType&rsquo; is essentially the same as v1.6's grayscale rendering. However, the GETINFO instruction handles it differently: v1.6 returns bit&nbsp;12 (hinting for grayscale), while v2.1 returns bits&nbsp;13 (hinting for ClearType), 18 (symmetrical smoothing), and&nbsp;19 (Gray ClearType). Also, this mode respects bits 2 and&nbsp;3 for the version&nbsp;1 gasp table exclusively (like Color ClearType), while v1.6 only respects the values of version&nbsp;0 (bits 0 and&nbsp;1).</p>
1627<p>Keep in mind that the features of the above interpreter versions might not map exactly to FreeType features or behavior because it is a fundamentally different library with different internals.</p>
1628<hr>
1629
1630<h2 id="interpreter-version">interpreter-version<a class="headerlink" href="#interpreter-version" title="Permanent link">&para;</a></h2>
1631<p>Currently, three versions are available, two representing the bytecode interpreter with subpixel hinting support (old &lsquo;Infinality&rsquo; code and new stripped-down and higher performance &lsquo;minimal&rsquo; code) and one without, respectively. The default is subpixel support if <code>TT_CONFIG_OPTION_SUBPIXEL_HINTING</code> is defined, and no subpixel support otherwise (since it isn't available then).</p>
1632<p>If subpixel hinting is on, many TrueType bytecode instructions behave differently compared to B/W or grayscale rendering (except if &lsquo;native ClearType&rsquo; is selected by the font). Microsoft's main idea is to render at a much increased horizontal resolution, then sampling down the created output to subpixel precision. However, many older fonts are not suited to this and must be specially taken care of by applying (hardcoded) tweaks in Microsoft's interpreter.</p>
1633<p>Details on subpixel hinting and some of the necessary tweaks can be found in Greg Hitchcock's whitepaper at &lsquo;<a href="https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx">https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx</a>&rsquo;. Note that FreeType currently doesn't really &lsquo;subpixel hint&rsquo; (6x1, 6x2, or 6x5 supersampling) like discussed in the paper. Depending on the chosen interpreter, it simply ignores instructions on vertical stems to arrive at very similar results.</p>
1634<h4>note</h4>
1635
1636<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1637<p>This property can be set via the <code>FREETYPE_PROPERTIES</code> environment variable (using values &lsquo;35&rsquo;, &lsquo;38&rsquo;, or &lsquo;40&rsquo;).</p>
1638<h4>example</h4>
1639
1640<p>The following example code demonstrates how to deactivate subpixel hinting (omitting the error handling).
1641<div class="highlight"><pre><span></span><code>  FT_Library  library;
1642  FT_Face     face;
1643  FT_UInt     interpreter_version = TT_INTERPRETER_VERSION_35;
1644
1645
1646  FT_Init_FreeType( &amp;library );
1647
1648  FT_Property_Set( library, &quot;truetype&quot;,
1649                            &quot;interpreter-version&quot;,
1650                            &amp;interpreter_version );
1651</code></pre></div></p>
1652<h4>since</h4>
1653
1654<p>2.5</p>
1655<hr>
1656
1657<h2 id="svg-hooks">svg-hooks<a class="headerlink" href="#svg-hooks" title="Permanent link">&para;</a></h2>
1658<p>Set up the interface between FreeType and an extern SVG rendering library like &lsquo;librsvg&rsquo;. All details on the function hooks can be found in section &lsquo;<a href="ft2-svg_fonts.html#svg_fonts">OpenType SVG Fonts</a>&rsquo;.</p>
1659<h4>example</h4>
1660
1661<p>The following example code expects that the four hook functions <code>svg_*</code> are defined elsewhere. Error handling is omitted, too.
1662<div class="highlight"><pre><span></span><code>  FT_Library  library;
1663  SVG_RendererHooks  hooks = {
1664                       (SVG_Lib_Init_Func)svg_init,
1665                       (SVG_Lib_Free_Func)svg_free,
1666                       (SVG_Lib_Render_Func)svg_render,
1667                       (SVG_Lib_Preset_Slot_Func)svg_preset_slot };
1668
1669
1670  FT_Init_FreeType( &amp;library );
1671
1672  FT_Property_Set( library, &quot;ot-svg&quot;,
1673                            &quot;svg-hooks&quot;, &amp;hooks );
1674</code></pre></div></p>
1675<h4>since</h4>
1676
1677<p>2.12</p>
1678<hr>
1679
1680<h2 id="glyph-to-script-map">glyph-to-script-map<a class="headerlink" href="#glyph-to-script-map" title="Permanent link">&para;</a></h2>
1681<p><strong>Experimental only</strong></p>
1682<p>The auto-hinter provides various script modules to hint glyphs. Examples of supported scripts are Latin or CJK. Before a glyph is auto-hinted, the Unicode character map of the font gets examined, and the script is then determined based on Unicode character ranges, see below.</p>
1683<p>OpenType fonts, however, often provide much more glyphs than character codes (small caps, superscripts, ligatures, swashes, etc.), to be controlled by so-called &lsquo;features&rsquo;. Handling OpenType features can be quite complicated and thus needs a separate library on top of FreeType.</p>
1684<p>The mapping between glyph indices and scripts (in the auto-hinter sense, see the <code><a href="ft2-properties.html#ft_autohinter_script_xxx">FT_AUTOHINTER_SCRIPT_XXX</a></code> values) is stored as an array with <code>num_glyphs</code> elements, as found in the font's <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> structure. The <code>glyph-to-script-map</code> property returns a pointer to this array, which can be modified as needed. Note that the modification should happen before the first glyph gets processed by the auto-hinter so that the global analysis of the font shapes actually uses the modified mapping.</p>
1685<h4>example</h4>
1686
1687<p>The following example code demonstrates how to access it (omitting the error handling).
1688<div class="highlight"><pre><span></span><code>  FT_Library                library;
1689  FT_Face                   face;
1690  FT_Prop_GlyphToScriptMap  prop;
1691
1692
1693  FT_Init_FreeType( &amp;library );
1694  FT_New_Face( library, &quot;foo.ttf&quot;, 0, &amp;face );
1695
1696  prop.face = face;
1697
1698  FT_Property_Get( library, &quot;autofitter&quot;,
1699                            &quot;glyph-to-script-map&quot;, &amp;prop );
1700
1701  // adjust `prop.map&#39; as needed right here
1702
1703  FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT );
1704</code></pre></div></p>
1705<h4>since</h4>
1706
1707<p>2.4.11</p>
1708<hr>
1709
1710<h2 id="ft_autohinter_script_xxx">FT_AUTOHINTER_SCRIPT_XXX<a class="headerlink" href="#ft_autohinter_script_xxx" title="Permanent link">&para;</a></h2>
1711<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
1712<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-properties.html#ft_autohinter_script_none">FT_AUTOHINTER_SCRIPT_NONE</a>   0
1713#<span class="keyword">define</span> <a href="ft2-properties.html#ft_autohinter_script_latin">FT_AUTOHINTER_SCRIPT_LATIN</a>  1
1714#<span class="keyword">define</span> <a href="ft2-properties.html#ft_autohinter_script_cjk">FT_AUTOHINTER_SCRIPT_CJK</a>    2
1715#<span class="keyword">define</span> <a href="ft2-properties.html#ft_autohinter_script_indic">FT_AUTOHINTER_SCRIPT_INDIC</a>  3
1716</code></pre></div>
1717
1718<p><strong>Experimental only</strong></p>
1719<p>A list of constants used for the <code><a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a></code> property to specify the script submodule the auto-hinter should use for hinting a particular glyph.</p>
1720<h4>values</h4>
1721<table class="fields long">
1722<tr><td class="val" id="ft_autohinter_script_none">FT_AUTOHINTER_SCRIPT_NONE</td><td class="desc">
1723<p>Don't auto-hint this glyph.</p>
1724</td></tr>
1725<tr><td class="val" id="ft_autohinter_script_latin">FT_AUTOHINTER_SCRIPT_LATIN</td><td class="desc">
1726<p>Apply the latin auto-hinter. For the auto-hinter, &lsquo;latin&rsquo; is a very broad term, including Cyrillic and Greek also since characters from those scripts share the same design constraints.</p>
1727<p>By default, characters from the following Unicode ranges are assigned to this submodule.</p>
1728<pre><code>  U+0020 - U+007F  // Basic Latin (no control characters)
1729  U+00A0 - U+00FF  // Latin-1 Supplement (no control characters)
1730  U+0100 - U+017F  // Latin Extended-A
1731  U+0180 - U+024F  // Latin Extended-B
1732  U+0250 - U+02AF  // IPA Extensions
1733  U+02B0 - U+02FF  // Spacing Modifier Letters
1734  U+0300 - U+036F  // Combining Diacritical Marks
1735  U+0370 - U+03FF  // Greek and Coptic
1736  U+0400 - U+04FF  // Cyrillic
1737  U+0500 - U+052F  // Cyrillic Supplement
1738  U+1D00 - U+1D7F  // Phonetic Extensions
1739  U+1D80 - U+1DBF  // Phonetic Extensions Supplement
1740  U+1DC0 - U+1DFF  // Combining Diacritical Marks Supplement
1741  U+1E00 - U+1EFF  // Latin Extended Additional
1742  U+1F00 - U+1FFF  // Greek Extended
1743  U+2000 - U+206F  // General Punctuation
1744  U+2070 - U+209F  // Superscripts and Subscripts
1745  U+20A0 - U+20CF  // Currency Symbols
1746  U+2150 - U+218F  // Number Forms
1747  U+2460 - U+24FF  // Enclosed Alphanumerics
1748  U+2C60 - U+2C7F  // Latin Extended-C
1749  U+2DE0 - U+2DFF  // Cyrillic Extended-A
1750  U+2E00 - U+2E7F  // Supplemental Punctuation
1751  U+A640 - U+A69F  // Cyrillic Extended-B
1752  U+A720 - U+A7FF  // Latin Extended-D
1753  U+FB00 - U+FB06  // Alphab. Present. Forms (Latin Ligatures)
1754 U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols
1755 U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement
1756</code></pre>
1757</td></tr>
1758<tr><td class="val" id="ft_autohinter_script_cjk">FT_AUTOHINTER_SCRIPT_CJK</td><td class="desc">
1759<p>Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old Vietnamese, and some other scripts.</p>
1760<p>By default, characters from the following Unicode ranges are assigned to this submodule.</p>
1761<pre><code>  U+1100 - U+11FF  // Hangul Jamo
1762  U+2E80 - U+2EFF  // CJK Radicals Supplement
1763  U+2F00 - U+2FDF  // Kangxi Radicals
1764  U+2FF0 - U+2FFF  // Ideographic Description Characters
1765  U+3000 - U+303F  // CJK Symbols and Punctuation
1766  U+3040 - U+309F  // Hiragana
1767  U+30A0 - U+30FF  // Katakana
1768  U+3100 - U+312F  // Bopomofo
1769  U+3130 - U+318F  // Hangul Compatibility Jamo
1770  U+3190 - U+319F  // Kanbun
1771  U+31A0 - U+31BF  // Bopomofo Extended
1772  U+31C0 - U+31EF  // CJK Strokes
1773  U+31F0 - U+31FF  // Katakana Phonetic Extensions
1774  U+3200 - U+32FF  // Enclosed CJK Letters and Months
1775  U+3300 - U+33FF  // CJK Compatibility
1776  U+3400 - U+4DBF  // CJK Unified Ideographs Extension A
1777  U+4DC0 - U+4DFF  // Yijing Hexagram Symbols
1778  U+4E00 - U+9FFF  // CJK Unified Ideographs
1779  U+A960 - U+A97F  // Hangul Jamo Extended-A
1780  U+AC00 - U+D7AF  // Hangul Syllables
1781  U+D7B0 - U+D7FF  // Hangul Jamo Extended-B
1782  U+F900 - U+FAFF  // CJK Compatibility Ideographs
1783  U+FE10 - U+FE1F  // Vertical forms
1784  U+FE30 - U+FE4F  // CJK Compatibility Forms
1785  U+FF00 - U+FFEF  // Halfwidth and Fullwidth Forms
1786 U+1B000 - U+1B0FF // Kana Supplement
1787 U+1D300 - U+1D35F // Tai Xuan Hing Symbols
1788 U+1F200 - U+1F2FF // Enclosed Ideographic Supplement
1789 U+20000 - U+2A6DF // CJK Unified Ideographs Extension B
1790 U+2A700 - U+2B73F // CJK Unified Ideographs Extension C
1791 U+2B740 - U+2B81F // CJK Unified Ideographs Extension D
1792 U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement
1793</code></pre>
1794</td></tr>
1795<tr><td class="val" id="ft_autohinter_script_indic">FT_AUTOHINTER_SCRIPT_INDIC</td><td class="desc">
1796<p>Apply the indic auto-hinter, covering all major scripts from the Indian sub-continent and some other related scripts like Thai, Lao, or Tibetan.</p>
1797<p>By default, characters from the following Unicode ranges are assigned to this submodule.</p>
1798<pre><code>  U+0900 - U+0DFF  // Indic Range
1799  U+0F00 - U+0FFF  // Tibetan
1800  U+1900 - U+194F  // Limbu
1801  U+1B80 - U+1BBF  // Sundanese
1802  U+A800 - U+A82F  // Syloti Nagri
1803  U+ABC0 - U+ABFF  // Meetei Mayek
1804 U+11800 - U+118DF // Sharada
1805</code></pre>
1806<p>Note that currently Indic support is rudimentary only, missing blue zone support.</p>
1807</td></tr>
1808</table>
1809
1810<h4>since</h4>
1811
1812<p>2.4.11</p>
1813<hr>
1814
1815<h2 id="ft_prop_glyphtoscriptmap">FT_Prop_GlyphToScriptMap<a class="headerlink" href="#ft_prop_glyphtoscriptmap" title="Permanent link">&para;</a></h2>
1816<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
1817<div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Prop_GlyphToScriptMap_
1818  {
1819    <a href="ft2-base_interface.html#ft_face">FT_Face</a>     face;
1820    <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a>*  map;
1821
1822  } <b>FT_Prop_GlyphToScriptMap</b>;
1823</code></pre></div>
1824
1825<p><strong>Experimental only</strong></p>
1826<p>The data exchange structure for the <code><a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a></code> property.</p>
1827<h4>since</h4>
1828
1829<p>2.4.11</p>
1830<hr>
1831
1832<h2 id="fallback-script">fallback-script<a class="headerlink" href="#fallback-script" title="Permanent link">&para;</a></h2>
1833<p><strong>Experimental only</strong></p>
1834<p>If no auto-hinter script module can be assigned to a glyph, a fallback script gets assigned to it (see also the <code><a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a></code> property). By default, this is <code><a href="ft2-properties.html#ft_autohinter_script_xxx">FT_AUTOHINTER_SCRIPT_CJK</a></code>. Using the <code>fallback-script</code> property, this fallback value can be changed.</p>
1835<h4>note</h4>
1836
1837<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1838<p>It's important to use the right timing for changing this value: The creation of the glyph-to-script map that eventually uses the fallback script value gets triggered either by setting or reading a face-specific property like <code><a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a></code>, or by auto-hinting any glyph from that face. In particular, if you have already created an <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> structure but not loaded any glyph (using the auto-hinter), a change of the fallback script will affect this face.</p>
1839<h4>example</h4>
1840<div class="highlight"><pre><span></span><code>  FT_Library  library;
1841  FT_UInt     fallback_script = FT_AUTOHINTER_SCRIPT_NONE;
1842
1843
1844  FT_Init_FreeType( &amp;library );
1845
1846  FT_Property_Set( library, &quot;autofitter&quot;,
1847                            &quot;fallback-script&quot;, &amp;fallback_script );
1848</code></pre></div>
1849<h4>since</h4>
1850
1851<p>2.4.11</p>
1852<hr>
1853
1854<h2 id="default-script">default-script<a class="headerlink" href="#default-script" title="Permanent link">&para;</a></h2>
1855<p><strong>Experimental only</strong></p>
1856<p>If FreeType gets compiled with <code>FT_CONFIG_OPTION_USE_HARFBUZZ</code> to make the HarfBuzz library access OpenType features for getting better glyph coverages, this property sets the (auto-fitter) script to be used for the default (OpenType) script data of a font's GSUB table. Features for the default script are intended for all scripts not explicitly handled in GSUB; an example is a &lsquo;dlig&rsquo; feature, containing the combination of the characters &lsquo;T&rsquo;, &lsquo;E&rsquo;, and &lsquo;L&rsquo; to form a &lsquo;TEL&rsquo; ligature.</p>
1857<p>By default, this is <code><a href="ft2-properties.html#ft_autohinter_script_xxx">FT_AUTOHINTER_SCRIPT_LATIN</a></code>. Using the <code>default-script</code> property, this default value can be changed.</p>
1858<h4>note</h4>
1859
1860<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1861<p>It's important to use the right timing for changing this value: The creation of the glyph-to-script map that eventually uses the default script value gets triggered either by setting or reading a face-specific property like <code><a href="ft2-properties.html#glyph-to-script-map">glyph-to-script-map</a></code>, or by auto-hinting any glyph from that face. In particular, if you have already created an <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> structure but not loaded any glyph (using the auto-hinter), a change of the default script will affect this face.</p>
1862<h4>example</h4>
1863<div class="highlight"><pre><span></span><code>  FT_Library  library;
1864  FT_UInt     default_script = FT_AUTOHINTER_SCRIPT_NONE;
1865
1866
1867  FT_Init_FreeType( &amp;library );
1868
1869  FT_Property_Set( library, &quot;autofitter&quot;,
1870                            &quot;default-script&quot;, &amp;default_script );
1871</code></pre></div>
1872<h4>since</h4>
1873
1874<p>2.5.3</p>
1875<hr>
1876
1877<h2 id="increase-x-height">increase-x-height<a class="headerlink" href="#increase-x-height" title="Permanent link">&para;</a></h2>
1878<p>For ppem values in the range 6&nbsp;&lt;= ppem &lt;= <code>increase-x-height</code>, round up the font's x&nbsp;height much more often than normally. If the value is set to&nbsp;0, which is the default, this feature is switched off. Use this property to improve the legibility of small font sizes if necessary.</p>
1879<h4>note</h4>
1880
1881<p>This property can be used with <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code> also.</p>
1882<p>Set this value right after calling <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code>, but before loading any glyph (using the auto-hinter).</p>
1883<h4>example</h4>
1884<div class="highlight"><pre><span></span><code>  FT_Library               library;
1885  FT_Face                  face;
1886  FT_Prop_IncreaseXHeight  prop;
1887
1888
1889  FT_Init_FreeType( &amp;library );
1890  FT_New_Face( library, &quot;foo.ttf&quot;, 0, &amp;face );
1891  FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 );
1892
1893  prop.face  = face;
1894  prop.limit = 14;
1895
1896  FT_Property_Set( library, &quot;autofitter&quot;,
1897                            &quot;increase-x-height&quot;, &amp;prop );
1898</code></pre></div>
1899<h4>since</h4>
1900
1901<p>2.4.11</p>
1902<hr>
1903
1904<h2 id="ft_prop_increasexheight">FT_Prop_IncreaseXHeight<a class="headerlink" href="#ft_prop_increasexheight" title="Permanent link">&para;</a></h2>
1905<p>Defined in FT_DRIVER_H (freetype/ftdriver.h).</p>
1906<div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Prop_IncreaseXHeight_
1907  {
1908    <a href="ft2-base_interface.html#ft_face">FT_Face</a>  face;
1909    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>  limit;
1910
1911  } <b>FT_Prop_IncreaseXHeight</b>;
1912</code></pre></div>
1913
1914<p>The data exchange structure for the <code><a href="ft2-properties.html#increase-x-height">increase-x-height</a></code> property.</p>
1915<hr>
1916
1917<h2 id="warping">warping<a class="headerlink" href="#warping" title="Permanent link">&para;</a></h2>
1918<p><strong>Obsolete</strong></p>
1919<p>This property was always experimental and probably never worked correctly. It was entirely removed from the FreeType&nbsp;2 sources. This entry is only here for historical reference.</p>
1920<p>Warping only worked in &lsquo;normal&rsquo; auto-hinting mode replacing it. The idea of the code was to slightly scale and shift a glyph along the non-hinted dimension (which is usually the horizontal axis) so that as much of its segments were aligned (more or less) to the grid. To find out a glyph's optimal scaling and shifting value, various parameter combinations were tried and scored.</p>
1921<h4>since</h4>
1922
1923<p>2.6</p>
1924<hr>
1925
1926
1927
1928
1929
1930
1931
1932            </article>
1933          </div>
1934        </div>
1935
1936      </main>
1937
1938
1939<footer class="md-footer">
1940
1941    <nav class="md-footer__inner md-grid" aria-label="Footer">
1942
1943
1944        <a href="ft2-ot_svg_driver.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: The SVG driver" rel="prev">
1945          <div class="md-footer__button md-icon">
1946            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
1947          </div>
1948          <div class="md-footer__title">
1949            <div class="md-ellipsis">
1950              <span class="md-footer__direction">
1951                Previous
1952              </span>
1953              The SVG driver
1954            </div>
1955          </div>
1956        </a>
1957
1958
1959
1960        <a href="ft2-parameter_tags.html" class="md-footer__link md-footer__link--next" aria-label="Next: Parameter Tags" rel="next">
1961          <div class="md-footer__title">
1962            <div class="md-ellipsis">
1963              <span class="md-footer__direction">
1964                Next
1965              </span>
1966              Parameter Tags
1967            </div>
1968          </div>
1969          <div class="md-footer__button md-icon">
1970            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
1971          </div>
1972        </a>
1973
1974    </nav>
1975
1976  <div class="md-footer-meta md-typeset">
1977    <div class="md-footer-meta__inner md-grid">
1978      <div class="md-footer-copyright">
1979
1980          <div class="md-footer-copyright__highlight">
1981            Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1982          </div>
1983
1984        Made with
1985        <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1986          Material for MkDocs
1987        </a>
1988
1989      </div>
1990
1991    </div>
1992  </div>
1993</footer>
1994
1995    </div>
1996    <div class="md-dialog" data-md-component="dialog">
1997      <div class="md-dialog__inner md-typeset"></div>
1998    </div>
1999    <script id="__config" type="application/json">{"base": ".", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "assets/javascripts/workers/search.477d984a.min.js", "version": null}</script>
2000
2001
2002      <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
2003
2004        <script src="javascripts/extra.js"></script>
2005
2006
2007  </body>
2008</html>