• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>Computations - 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="#computations" 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                Computations
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        &#xE5CD;
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
724
725  <li class="md-nav__item md-nav__item--active">
726
727    <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
728
729
730
731
732      <label class="md-nav__link md-nav__link--active" for="__toc">
733        Computations
734      </label>
735
736    <a href="ft2-computations.html" title="Computations" class="md-nav__link md-nav__link--active">
737      Computations
738    </a>
739
740
741<nav class="md-nav md-nav--secondary">
742
743
744
745
746
747    <label class="md-nav__title" for="__toc">Table of contents</label>
748    <ul class="md-nav__list" data-md-scrollfix>
749
750        <li class="md-nav__item">
751  <a href="#synopsis" class="md-nav__link">
752    Synopsis
753  </a>
754
755</li>
756
757        <li class="md-nav__item">
758  <a href="#ft_muldiv" class="md-nav__link">
759    FT_MulDiv
760  </a>
761
762</li>
763
764        <li class="md-nav__item">
765  <a href="#ft_mulfix" class="md-nav__link">
766    FT_MulFix
767  </a>
768
769</li>
770
771        <li class="md-nav__item">
772  <a href="#ft_divfix" class="md-nav__link">
773    FT_DivFix
774  </a>
775
776</li>
777
778        <li class="md-nav__item">
779  <a href="#ft_roundfix" class="md-nav__link">
780    FT_RoundFix
781  </a>
782
783</li>
784
785        <li class="md-nav__item">
786  <a href="#ft_ceilfix" class="md-nav__link">
787    FT_CeilFix
788  </a>
789
790</li>
791
792        <li class="md-nav__item">
793  <a href="#ft_floorfix" class="md-nav__link">
794    FT_FloorFix
795  </a>
796
797</li>
798
799        <li class="md-nav__item">
800  <a href="#ft_vector_transform" class="md-nav__link">
801    FT_Vector_Transform
802  </a>
803
804</li>
805
806        <li class="md-nav__item">
807  <a href="#ft_matrix_multiply" class="md-nav__link">
808    FT_Matrix_Multiply
809  </a>
810
811</li>
812
813        <li class="md-nav__item">
814  <a href="#ft_matrix_invert" class="md-nav__link">
815    FT_Matrix_Invert
816  </a>
817
818</li>
819
820        <li class="md-nav__item">
821  <a href="#ft_angle" class="md-nav__link">
822    FT_Angle
823  </a>
824
825</li>
826
827        <li class="md-nav__item">
828  <a href="#ft_angle_pi" class="md-nav__link">
829    FT_ANGLE_PI
830  </a>
831
832</li>
833
834        <li class="md-nav__item">
835  <a href="#ft_angle_2pi" class="md-nav__link">
836    FT_ANGLE_2PI
837  </a>
838
839</li>
840
841        <li class="md-nav__item">
842  <a href="#ft_angle_pi2" class="md-nav__link">
843    FT_ANGLE_PI2
844  </a>
845
846</li>
847
848        <li class="md-nav__item">
849  <a href="#ft_angle_pi4" class="md-nav__link">
850    FT_ANGLE_PI4
851  </a>
852
853</li>
854
855        <li class="md-nav__item">
856  <a href="#ft_sin" class="md-nav__link">
857    FT_Sin
858  </a>
859
860</li>
861
862        <li class="md-nav__item">
863  <a href="#ft_cos" class="md-nav__link">
864    FT_Cos
865  </a>
866
867</li>
868
869        <li class="md-nav__item">
870  <a href="#ft_tan" class="md-nav__link">
871    FT_Tan
872  </a>
873
874</li>
875
876        <li class="md-nav__item">
877  <a href="#ft_atan2" class="md-nav__link">
878    FT_Atan2
879  </a>
880
881</li>
882
883        <li class="md-nav__item">
884  <a href="#ft_angle_diff" class="md-nav__link">
885    FT_Angle_Diff
886  </a>
887
888</li>
889
890        <li class="md-nav__item">
891  <a href="#ft_vector_unit" class="md-nav__link">
892    FT_Vector_Unit
893  </a>
894
895</li>
896
897        <li class="md-nav__item">
898  <a href="#ft_vector_rotate" class="md-nav__link">
899    FT_Vector_Rotate
900  </a>
901
902</li>
903
904        <li class="md-nav__item">
905  <a href="#ft_vector_length" class="md-nav__link">
906    FT_Vector_Length
907  </a>
908
909</li>
910
911        <li class="md-nav__item">
912  <a href="#ft_vector_polarize" class="md-nav__link">
913    FT_Vector_Polarize
914  </a>
915
916</li>
917
918        <li class="md-nav__item">
919  <a href="#ft_vector_from_polar" class="md-nav__link">
920    FT_Vector_From_Polar
921  </a>
922
923</li>
924
925
926
927
928
929    </ul>
930
931</nav>
932
933  </li>
934
935
936
937
938
939
940
941  <li class="md-nav__item">
942    <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link">
943      List Processing
944    </a>
945  </li>
946
947
948
949
950
951
952
953  <li class="md-nav__item">
954    <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link">
955      Outline Processing
956    </a>
957  </li>
958
959
960
961
962
963
964
965  <li class="md-nav__item">
966    <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link">
967      Quick retrieval of advance values
968    </a>
969  </li>
970
971
972
973
974
975
976
977  <li class="md-nav__item">
978    <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link">
979      Bitmap Handling
980    </a>
981  </li>
982
983
984
985
986
987
988
989  <li class="md-nav__item">
990    <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link">
991      Scanline Converter
992    </a>
993  </li>
994
995
996
997
998
999
1000
1001  <li class="md-nav__item">
1002    <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link">
1003      Glyph Stroker
1004    </a>
1005  </li>
1006
1007
1008
1009
1010
1011
1012
1013  <li class="md-nav__item">
1014    <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link">
1015      System Interface
1016    </a>
1017  </li>
1018
1019
1020
1021
1022
1023
1024
1025  <li class="md-nav__item">
1026    <a href="ft2-module_management.html" title="Module Management" class="md-nav__link">
1027      Module Management
1028    </a>
1029  </li>
1030
1031
1032
1033
1034
1035
1036
1037  <li class="md-nav__item">
1038    <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link">
1039      GZIP Streams
1040    </a>
1041  </li>
1042
1043
1044
1045
1046
1047
1048
1049  <li class="md-nav__item">
1050    <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link">
1051      LZW Streams
1052    </a>
1053  </li>
1054
1055
1056
1057
1058
1059
1060
1061  <li class="md-nav__item">
1062    <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link">
1063      BZIP2 Streams
1064    </a>
1065  </li>
1066
1067
1068      </ul>
1069    </nav>
1070  </li>
1071
1072
1073
1074
1075
1076
1077
1078  <li class="md-nav__item md-nav__item--nested">
1079
1080      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
1081
1082    <label class="md-nav__link" for="nav-9">
1083      Error Codes
1084    </label>
1085    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
1086      <label class="md-nav__title" for="nav-9">
1087        Error Codes
1088      </label>
1089      <ul class="md-nav__list" data-md-scrollfix>
1090
1091
1092
1093
1094
1095
1096
1097  <li class="md-nav__item">
1098    <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link">
1099      Error Enumerations
1100    </a>
1101  </li>
1102
1103
1104
1105
1106
1107
1108
1109  <li class="md-nav__item">
1110    <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link">
1111      Error Code Values
1112    </a>
1113  </li>
1114
1115
1116      </ul>
1117    </nav>
1118  </li>
1119
1120
1121
1122
1123
1124
1125
1126  <li class="md-nav__item md-nav__item--nested">
1127
1128      <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10">
1129
1130    <label class="md-nav__link" for="nav-10">
1131      Miscellaneous
1132    </label>
1133    <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
1134      <label class="md-nav__title" for="nav-10">
1135        Miscellaneous
1136      </label>
1137      <ul class="md-nav__list" data-md-scrollfix>
1138
1139
1140
1141
1142
1143
1144
1145  <li class="md-nav__item">
1146    <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link">
1147      TrueTypeGX/AAT Validation
1148    </a>
1149  </li>
1150
1151
1152
1153
1154
1155
1156
1157  <li class="md-nav__item">
1158    <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
1159      Incremental Loading
1160    </a>
1161  </li>
1162
1163
1164
1165
1166
1167
1168
1169  <li class="md-nav__item">
1170    <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
1171      The TrueType Engine
1172    </a>
1173  </li>
1174
1175
1176
1177
1178
1179
1180
1181  <li class="md-nav__item">
1182    <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
1183      OpenType Validation
1184    </a>
1185  </li>
1186
1187
1188      </ul>
1189    </nav>
1190  </li>
1191
1192
1193  </ul>
1194</nav>
1195                  </div>
1196                </div>
1197              </div>
1198
1199
1200              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
1201                <div class="md-sidebar__scrollwrap">
1202                  <div class="md-sidebar__inner">
1203
1204<nav class="md-nav md-nav--secondary">
1205
1206
1207
1208
1209
1210    <label class="md-nav__title" for="__toc">Table of contents</label>
1211    <ul class="md-nav__list" data-md-scrollfix>
1212
1213        <li class="md-nav__item">
1214  <a href="#synopsis" class="md-nav__link">
1215    Synopsis
1216  </a>
1217
1218</li>
1219
1220        <li class="md-nav__item">
1221  <a href="#ft_muldiv" class="md-nav__link">
1222    FT_MulDiv
1223  </a>
1224
1225</li>
1226
1227        <li class="md-nav__item">
1228  <a href="#ft_mulfix" class="md-nav__link">
1229    FT_MulFix
1230  </a>
1231
1232</li>
1233
1234        <li class="md-nav__item">
1235  <a href="#ft_divfix" class="md-nav__link">
1236    FT_DivFix
1237  </a>
1238
1239</li>
1240
1241        <li class="md-nav__item">
1242  <a href="#ft_roundfix" class="md-nav__link">
1243    FT_RoundFix
1244  </a>
1245
1246</li>
1247
1248        <li class="md-nav__item">
1249  <a href="#ft_ceilfix" class="md-nav__link">
1250    FT_CeilFix
1251  </a>
1252
1253</li>
1254
1255        <li class="md-nav__item">
1256  <a href="#ft_floorfix" class="md-nav__link">
1257    FT_FloorFix
1258  </a>
1259
1260</li>
1261
1262        <li class="md-nav__item">
1263  <a href="#ft_vector_transform" class="md-nav__link">
1264    FT_Vector_Transform
1265  </a>
1266
1267</li>
1268
1269        <li class="md-nav__item">
1270  <a href="#ft_matrix_multiply" class="md-nav__link">
1271    FT_Matrix_Multiply
1272  </a>
1273
1274</li>
1275
1276        <li class="md-nav__item">
1277  <a href="#ft_matrix_invert" class="md-nav__link">
1278    FT_Matrix_Invert
1279  </a>
1280
1281</li>
1282
1283        <li class="md-nav__item">
1284  <a href="#ft_angle" class="md-nav__link">
1285    FT_Angle
1286  </a>
1287
1288</li>
1289
1290        <li class="md-nav__item">
1291  <a href="#ft_angle_pi" class="md-nav__link">
1292    FT_ANGLE_PI
1293  </a>
1294
1295</li>
1296
1297        <li class="md-nav__item">
1298  <a href="#ft_angle_2pi" class="md-nav__link">
1299    FT_ANGLE_2PI
1300  </a>
1301
1302</li>
1303
1304        <li class="md-nav__item">
1305  <a href="#ft_angle_pi2" class="md-nav__link">
1306    FT_ANGLE_PI2
1307  </a>
1308
1309</li>
1310
1311        <li class="md-nav__item">
1312  <a href="#ft_angle_pi4" class="md-nav__link">
1313    FT_ANGLE_PI4
1314  </a>
1315
1316</li>
1317
1318        <li class="md-nav__item">
1319  <a href="#ft_sin" class="md-nav__link">
1320    FT_Sin
1321  </a>
1322
1323</li>
1324
1325        <li class="md-nav__item">
1326  <a href="#ft_cos" class="md-nav__link">
1327    FT_Cos
1328  </a>
1329
1330</li>
1331
1332        <li class="md-nav__item">
1333  <a href="#ft_tan" class="md-nav__link">
1334    FT_Tan
1335  </a>
1336
1337</li>
1338
1339        <li class="md-nav__item">
1340  <a href="#ft_atan2" class="md-nav__link">
1341    FT_Atan2
1342  </a>
1343
1344</li>
1345
1346        <li class="md-nav__item">
1347  <a href="#ft_angle_diff" class="md-nav__link">
1348    FT_Angle_Diff
1349  </a>
1350
1351</li>
1352
1353        <li class="md-nav__item">
1354  <a href="#ft_vector_unit" class="md-nav__link">
1355    FT_Vector_Unit
1356  </a>
1357
1358</li>
1359
1360        <li class="md-nav__item">
1361  <a href="#ft_vector_rotate" class="md-nav__link">
1362    FT_Vector_Rotate
1363  </a>
1364
1365</li>
1366
1367        <li class="md-nav__item">
1368  <a href="#ft_vector_length" class="md-nav__link">
1369    FT_Vector_Length
1370  </a>
1371
1372</li>
1373
1374        <li class="md-nav__item">
1375  <a href="#ft_vector_polarize" class="md-nav__link">
1376    FT_Vector_Polarize
1377  </a>
1378
1379</li>
1380
1381        <li class="md-nav__item">
1382  <a href="#ft_vector_from_polar" class="md-nav__link">
1383    FT_Vector_From_Polar
1384  </a>
1385
1386</li>
1387
1388
1389
1390
1391
1392    </ul>
1393
1394</nav>
1395                  </div>
1396                </div>
1397              </div>
1398
1399
1400          <div class="md-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#support-api">Support API</a> &raquo; Computations</p>
1406<hr />
1407<h1 id="computations">Computations<a class="headerlink" href="#computations" title="Permanent link">&para;</a></h1>
1408<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1409<p>This section contains various functions used to perform computations on 16.16 fixed-float numbers or 2d vectors.</p>
1410<p><strong>Attention</strong>: Most arithmetic functions take <code>FT_Long</code> as arguments. For historical reasons, FreeType was designed under the assumption that <code>FT_Long</code> is a 32-bit integer; results can thus be undefined if the arguments don't fit into 32 bits.</p>
1411<h2 id="ft_muldiv">FT_MulDiv<a class="headerlink" href="#ft_muldiv" title="Permanent link">&para;</a></h2>
1412<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1413<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_long">FT_Long</a> )
1414  <b>FT_MulDiv</b>( <a href="ft2-basic_types.html#ft_long">FT_Long</a>  a,
1415             <a href="ft2-basic_types.html#ft_long">FT_Long</a>  b,
1416             <a href="ft2-basic_types.html#ft_long">FT_Long</a>  c );
1417</code></pre></div>
1418
1419<p>Compute <code>(a*b)/c</code> with maximum accuracy, using a 64-bit intermediate integer whenever necessary.</p>
1420<p>This function isn't necessarily as fast as some processor-specific operations, but is at least completely portable.</p>
1421<h4>input</h4>
1422
1423<table class="fields">
1424<tr><td class="val" id="a">a</td><td class="desc">
1425<p>The first multiplier.</p>
1426</td></tr>
1427<tr><td class="val" id="b">b</td><td class="desc">
1428<p>The second multiplier.</p>
1429</td></tr>
1430<tr><td class="val" id="c">c</td><td class="desc">
1431<p>The divisor.</p>
1432</td></tr>
1433</table>
1434
1435<h4>return</h4>
1436
1437<p>The result of <code>(a*b)/c</code>. This function never traps when trying to divide by zero; it simply returns &lsquo;MaxInt&rsquo; or &lsquo;MinInt&rsquo; depending on the signs of <code>a</code> and <code>b</code>.</p>
1438<hr>
1439
1440<h2 id="ft_mulfix">FT_MulFix<a class="headerlink" href="#ft_mulfix" title="Permanent link">&para;</a></h2>
1441<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1442<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_long">FT_Long</a> )
1443  <b>FT_MulFix</b>( <a href="ft2-basic_types.html#ft_long">FT_Long</a>  a,
1444             <a href="ft2-basic_types.html#ft_long">FT_Long</a>  b );
1445</code></pre></div>
1446
1447<p>Compute <code>(a*b)/0x10000</code> with maximum accuracy. Its main use is to multiply a given value by a 16.16 fixed-point factor.</p>
1448<h4>input</h4>
1449
1450<table class="fields">
1451<tr><td class="val" id="a">a</td><td class="desc">
1452<p>The first multiplier.</p>
1453</td></tr>
1454<tr><td class="val" id="b">b</td><td class="desc">
1455<p>The second multiplier. Use a 16.16 factor here whenever possible (see note below).</p>
1456</td></tr>
1457</table>
1458
1459<h4>return</h4>
1460
1461<p>The result of <code>(a*b)/0x10000</code>.</p>
1462<h4>note</h4>
1463
1464<p>This function has been optimized for the case where the absolute value of <code>a</code> is less than 2048, and <code>b</code> is a 16.16 scaling factor. As this happens mainly when scaling from notional units to fractional pixels in FreeType, it resulted in noticeable speed improvements between versions 2.x and 1.x.</p>
1465<p>As a conclusion, always try to place a 16.16 factor as the <em>second</em> argument of this function; this can make a great difference.</p>
1466<hr>
1467
1468<h2 id="ft_divfix">FT_DivFix<a class="headerlink" href="#ft_divfix" title="Permanent link">&para;</a></h2>
1469<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1470<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_long">FT_Long</a> )
1471  <b>FT_DivFix</b>( <a href="ft2-basic_types.html#ft_long">FT_Long</a>  a,
1472             <a href="ft2-basic_types.html#ft_long">FT_Long</a>  b );
1473</code></pre></div>
1474
1475<p>Compute <code>(a*0x10000)/b</code> with maximum accuracy. Its main use is to divide a given value by a 16.16 fixed-point factor.</p>
1476<h4>input</h4>
1477
1478<table class="fields">
1479<tr><td class="val" id="a">a</td><td class="desc">
1480<p>The numerator.</p>
1481</td></tr>
1482<tr><td class="val" id="b">b</td><td class="desc">
1483<p>The denominator. Use a 16.16 factor here.</p>
1484</td></tr>
1485</table>
1486
1487<h4>return</h4>
1488
1489<p>The result of <code>(a*0x10000)/b</code>.</p>
1490<hr>
1491
1492<h2 id="ft_roundfix">FT_RoundFix<a class="headerlink" href="#ft_roundfix" title="Permanent link">&para;</a></h2>
1493<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1494<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1495  <b>FT_RoundFix</b>( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>  a );
1496</code></pre></div>
1497
1498<p>Round a 16.16 fixed number.</p>
1499<h4>input</h4>
1500
1501<table class="fields">
1502<tr><td class="val" id="a">a</td><td class="desc">
1503<p>The number to be rounded.</p>
1504</td></tr>
1505</table>
1506
1507<h4>return</h4>
1508
1509<p><code>a</code> rounded to the nearest 16.16 fixed integer, halfway cases away from zero.</p>
1510<h4>note</h4>
1511
1512<p>The function uses wrap-around arithmetic.</p>
1513<hr>
1514
1515<h2 id="ft_ceilfix">FT_CeilFix<a class="headerlink" href="#ft_ceilfix" title="Permanent link">&para;</a></h2>
1516<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1517<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1518  <b>FT_CeilFix</b>( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>  a );
1519</code></pre></div>
1520
1521<p>Compute the smallest following integer of a 16.16 fixed number.</p>
1522<h4>input</h4>
1523
1524<table class="fields">
1525<tr><td class="val" id="a">a</td><td class="desc">
1526<p>The number for which the ceiling function is to be computed.</p>
1527</td></tr>
1528</table>
1529
1530<h4>return</h4>
1531
1532<p><code>a</code> rounded towards plus infinity.</p>
1533<h4>note</h4>
1534
1535<p>The function uses wrap-around arithmetic.</p>
1536<hr>
1537
1538<h2 id="ft_floorfix">FT_FloorFix<a class="headerlink" href="#ft_floorfix" title="Permanent link">&para;</a></h2>
1539<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1540<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1541  <b>FT_FloorFix</b>( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>  a );
1542</code></pre></div>
1543
1544<p>Compute the largest previous integer of a 16.16 fixed number.</p>
1545<h4>input</h4>
1546
1547<table class="fields">
1548<tr><td class="val" id="a">a</td><td class="desc">
1549<p>The number for which the floor function is to be computed.</p>
1550</td></tr>
1551</table>
1552
1553<h4>return</h4>
1554
1555<p><code>a</code> rounded towards minus infinity.</p>
1556<hr>
1557
1558<h2 id="ft_vector_transform">FT_Vector_Transform<a class="headerlink" href="#ft_vector_transform" title="Permanent link">&para;</a></h2>
1559<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1560<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1561  <b>FT_Vector_Transform</b>( <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*        vector,
1562                       <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*  matrix );
1563</code></pre></div>
1564
1565<p>Transform a single vector through a 2x2 matrix.</p>
1566<h4>inout</h4>
1567
1568<table class="fields">
1569<tr><td class="val" id="vector">vector</td><td class="desc">
1570<p>The target vector to transform.</p>
1571</td></tr>
1572</table>
1573
1574<h4>input</h4>
1575
1576<table class="fields">
1577<tr><td class="val" id="matrix">matrix</td><td class="desc">
1578<p>A pointer to the source 2x2 matrix.</p>
1579</td></tr>
1580</table>
1581
1582<h4>note</h4>
1583
1584<p>The result is undefined if either <code>vector</code> or <code>matrix</code> is invalid.</p>
1585<hr>
1586
1587<h2 id="ft_matrix_multiply">FT_Matrix_Multiply<a class="headerlink" href="#ft_matrix_multiply" title="Permanent link">&para;</a></h2>
1588<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1589<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1590  <b>FT_Matrix_Multiply</b>( <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*  a,
1591                      <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*        b );
1592</code></pre></div>
1593
1594<p>Perform the matrix operation <code>b = a*b</code>.</p>
1595<h4>input</h4>
1596
1597<table class="fields">
1598<tr><td class="val" id="a">a</td><td class="desc">
1599<p>A pointer to matrix <code>a</code>.</p>
1600</td></tr>
1601</table>
1602
1603<h4>inout</h4>
1604
1605<table class="fields">
1606<tr><td class="val" id="b">b</td><td class="desc">
1607<p>A pointer to matrix <code>b</code>.</p>
1608</td></tr>
1609</table>
1610
1611<h4>note</h4>
1612
1613<p>The result is undefined if either <code>a</code> or <code>b</code> is zero.</p>
1614<p>Since the function uses wrap-around arithmetic, results become meaningless if the arguments are very large.</p>
1615<hr>
1616
1617<h2 id="ft_matrix_invert">FT_Matrix_Invert<a class="headerlink" href="#ft_matrix_invert" title="Permanent link">&para;</a></h2>
1618<p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1619<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1620  <b>FT_Matrix_Invert</b>( <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*  matrix );
1621</code></pre></div>
1622
1623<p>Invert a 2x2 matrix. Return an error if it can't be inverted.</p>
1624<h4>inout</h4>
1625
1626<table class="fields">
1627<tr><td class="val" id="matrix">matrix</td><td class="desc">
1628<p>A pointer to the target matrix. Remains untouched in case of error.</p>
1629</td></tr>
1630</table>
1631
1632<h4>return</h4>
1633
1634<p>FreeType error code. 0&nbsp;means success.</p>
1635<hr>
1636
1637<h2 id="ft_angle">FT_Angle<a class="headerlink" href="#ft_angle" title="Permanent link">&para;</a></h2>
1638<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1639<div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>  <b>FT_Angle</b>;
1640</code></pre></div>
1641
1642<p>This type is used to model angle values in FreeType. Note that the angle is a 16.16 fixed-point value expressed in degrees.</p>
1643<hr>
1644
1645<h2 id="ft_angle_pi">FT_ANGLE_PI<a class="headerlink" href="#ft_angle_pi" title="Permanent link">&para;</a></h2>
1646<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1647<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_ANGLE_PI</b>  ( 180L &lt;&lt; 16 )
1648</code></pre></div>
1649
1650<p>The angle pi expressed in <code><a href="ft2-computations.html#ft_angle">FT_Angle</a></code> units.</p>
1651<hr>
1652
1653<h2 id="ft_angle_2pi">FT_ANGLE_2PI<a class="headerlink" href="#ft_angle_2pi" title="Permanent link">&para;</a></h2>
1654<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1655<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_ANGLE_2PI</b>  ( <a href="ft2-computations.html#ft_angle_pi">FT_ANGLE_PI</a> * 2 )
1656</code></pre></div>
1657
1658<p>The angle 2*pi expressed in <code><a href="ft2-computations.html#ft_angle">FT_Angle</a></code> units.</p>
1659<hr>
1660
1661<h2 id="ft_angle_pi2">FT_ANGLE_PI2<a class="headerlink" href="#ft_angle_pi2" title="Permanent link">&para;</a></h2>
1662<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1663<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_ANGLE_PI2</b>  ( <a href="ft2-computations.html#ft_angle_pi">FT_ANGLE_PI</a> / 2 )
1664</code></pre></div>
1665
1666<p>The angle pi/2 expressed in <code><a href="ft2-computations.html#ft_angle">FT_Angle</a></code> units.</p>
1667<hr>
1668
1669<h2 id="ft_angle_pi4">FT_ANGLE_PI4<a class="headerlink" href="#ft_angle_pi4" title="Permanent link">&para;</a></h2>
1670<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1671<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_ANGLE_PI4</b>  ( <a href="ft2-computations.html#ft_angle_pi">FT_ANGLE_PI</a> / 4 )
1672</code></pre></div>
1673
1674<p>The angle pi/4 expressed in <code><a href="ft2-computations.html#ft_angle">FT_Angle</a></code> units.</p>
1675<hr>
1676
1677<h2 id="ft_sin">FT_Sin<a class="headerlink" href="#ft_sin" title="Permanent link">&para;</a></h2>
1678<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1679<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1680  <b>FT_Sin</b>( <a href="ft2-computations.html#ft_angle">FT_Angle</a>  angle );
1681</code></pre></div>
1682
1683<p>Return the sinus of a given angle in fixed-point format.</p>
1684<h4>input</h4>
1685
1686<table class="fields">
1687<tr><td class="val" id="angle">angle</td><td class="desc">
1688<p>The input angle.</p>
1689</td></tr>
1690</table>
1691
1692<h4>return</h4>
1693
1694<p>The sinus value.</p>
1695<h4>note</h4>
1696
1697<p>If you need both the sinus and cosinus for a given angle, use the function <code><a href="ft2-computations.html#ft_vector_unit">FT_Vector_Unit</a></code>.</p>
1698<hr>
1699
1700<h2 id="ft_cos">FT_Cos<a class="headerlink" href="#ft_cos" title="Permanent link">&para;</a></h2>
1701<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1702<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1703  <b>FT_Cos</b>( <a href="ft2-computations.html#ft_angle">FT_Angle</a>  angle );
1704</code></pre></div>
1705
1706<p>Return the cosinus of a given angle in fixed-point format.</p>
1707<h4>input</h4>
1708
1709<table class="fields">
1710<tr><td class="val" id="angle">angle</td><td class="desc">
1711<p>The input angle.</p>
1712</td></tr>
1713</table>
1714
1715<h4>return</h4>
1716
1717<p>The cosinus value.</p>
1718<h4>note</h4>
1719
1720<p>If you need both the sinus and cosinus for a given angle, use the function <code><a href="ft2-computations.html#ft_vector_unit">FT_Vector_Unit</a></code>.</p>
1721<hr>
1722
1723<h2 id="ft_tan">FT_Tan<a class="headerlink" href="#ft_tan" title="Permanent link">&para;</a></h2>
1724<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1725<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1726  <b>FT_Tan</b>( <a href="ft2-computations.html#ft_angle">FT_Angle</a>  angle );
1727</code></pre></div>
1728
1729<p>Return the tangent of a given angle in fixed-point format.</p>
1730<h4>input</h4>
1731
1732<table class="fields">
1733<tr><td class="val" id="angle">angle</td><td class="desc">
1734<p>The input angle.</p>
1735</td></tr>
1736</table>
1737
1738<h4>return</h4>
1739
1740<p>The tangent value.</p>
1741<hr>
1742
1743<h2 id="ft_atan2">FT_Atan2<a class="headerlink" href="#ft_atan2" title="Permanent link">&para;</a></h2>
1744<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1745<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-computations.html#ft_angle">FT_Angle</a> )
1746  <b>FT_Atan2</b>( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>  x,
1747            <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>  y );
1748</code></pre></div>
1749
1750<p>Return the arc-tangent corresponding to a given vector (x,y) in the 2d plane.</p>
1751<h4>input</h4>
1752
1753<table class="fields">
1754<tr><td class="val" id="x">x</td><td class="desc">
1755<p>The horizontal vector coordinate.</p>
1756</td></tr>
1757<tr><td class="val" id="y">y</td><td class="desc">
1758<p>The vertical vector coordinate.</p>
1759</td></tr>
1760</table>
1761
1762<h4>return</h4>
1763
1764<p>The arc-tangent value (i.e. angle).</p>
1765<hr>
1766
1767<h2 id="ft_angle_diff">FT_Angle_Diff<a class="headerlink" href="#ft_angle_diff" title="Permanent link">&para;</a></h2>
1768<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1769<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-computations.html#ft_angle">FT_Angle</a> )
1770  <b>FT_Angle_Diff</b>( <a href="ft2-computations.html#ft_angle">FT_Angle</a>  angle1,
1771                 <a href="ft2-computations.html#ft_angle">FT_Angle</a>  angle2 );
1772</code></pre></div>
1773
1774<p>Return the difference between two angles. The result is always constrained to the ]-PI..PI] interval.</p>
1775<h4>input</h4>
1776
1777<table class="fields">
1778<tr><td class="val" id="angle1">angle1</td><td class="desc">
1779<p>First angle.</p>
1780</td></tr>
1781<tr><td class="val" id="angle2">angle2</td><td class="desc">
1782<p>Second angle.</p>
1783</td></tr>
1784</table>
1785
1786<h4>return</h4>
1787
1788<p>Constrained value of <code>angle2-angle1</code>.</p>
1789<hr>
1790
1791<h2 id="ft_vector_unit">FT_Vector_Unit<a class="headerlink" href="#ft_vector_unit" title="Permanent link">&para;</a></h2>
1792<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1793<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1794  <b>FT_Vector_Unit</b>( <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  vec,
1795                  <a href="ft2-computations.html#ft_angle">FT_Angle</a>    angle );
1796</code></pre></div>
1797
1798<p>Return the unit vector corresponding to a given angle. After the call, the value of <code>vec.x</code> will be <code>cos(angle)</code>, and the value of <code>vec.y</code> will be <code>sin(angle)</code>.</p>
1799<p>This function is useful to retrieve both the sinus and cosinus of a given angle quickly.</p>
1800<h4>output</h4>
1801
1802<table class="fields">
1803<tr><td class="val" id="vec">vec</td><td class="desc">
1804<p>The address of target vector.</p>
1805</td></tr>
1806</table>
1807
1808<h4>input</h4>
1809
1810<table class="fields">
1811<tr><td class="val" id="angle">angle</td><td class="desc">
1812<p>The input angle.</p>
1813</td></tr>
1814</table>
1815
1816<hr>
1817
1818<h2 id="ft_vector_rotate">FT_Vector_Rotate<a class="headerlink" href="#ft_vector_rotate" title="Permanent link">&para;</a></h2>
1819<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1820<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1821  <b>FT_Vector_Rotate</b>( <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  vec,
1822                    <a href="ft2-computations.html#ft_angle">FT_Angle</a>    angle );
1823</code></pre></div>
1824
1825<p>Rotate a vector by a given angle.</p>
1826<h4>inout</h4>
1827
1828<table class="fields">
1829<tr><td class="val" id="vec">vec</td><td class="desc">
1830<p>The address of target vector.</p>
1831</td></tr>
1832</table>
1833
1834<h4>input</h4>
1835
1836<table class="fields">
1837<tr><td class="val" id="angle">angle</td><td class="desc">
1838<p>The input angle.</p>
1839</td></tr>
1840</table>
1841
1842<hr>
1843
1844<h2 id="ft_vector_length">FT_Vector_Length<a class="headerlink" href="#ft_vector_length" title="Permanent link">&para;</a></h2>
1845<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1846<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> )
1847  <b>FT_Vector_Length</b>( <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  vec );
1848</code></pre></div>
1849
1850<p>Return the length of a given vector.</p>
1851<h4>input</h4>
1852
1853<table class="fields">
1854<tr><td class="val" id="vec">vec</td><td class="desc">
1855<p>The address of target vector.</p>
1856</td></tr>
1857</table>
1858
1859<h4>return</h4>
1860
1861<p>The vector length, expressed in the same units that the original vector coordinates.</p>
1862<hr>
1863
1864<h2 id="ft_vector_polarize">FT_Vector_Polarize<a class="headerlink" href="#ft_vector_polarize" title="Permanent link">&para;</a></h2>
1865<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1866<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1867  <b>FT_Vector_Polarize</b>( <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  vec,
1868                      <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>   *length,
1869                      <a href="ft2-computations.html#ft_angle">FT_Angle</a>   *angle );
1870</code></pre></div>
1871
1872<p>Compute both the length and angle of a given vector.</p>
1873<h4>input</h4>
1874
1875<table class="fields">
1876<tr><td class="val" id="vec">vec</td><td class="desc">
1877<p>The address of source vector.</p>
1878</td></tr>
1879</table>
1880
1881<h4>output</h4>
1882
1883<table class="fields">
1884<tr><td class="val" id="length">length</td><td class="desc">
1885<p>The vector length.</p>
1886</td></tr>
1887<tr><td class="val" id="angle">angle</td><td class="desc">
1888<p>The vector angle.</p>
1889</td></tr>
1890</table>
1891
1892<hr>
1893
1894<h2 id="ft_vector_from_polar">FT_Vector_From_Polar<a class="headerlink" href="#ft_vector_from_polar" title="Permanent link">&para;</a></h2>
1895<p>Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h).</p>
1896<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1897  <b>FT_Vector_From_Polar</b>( <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  vec,
1898                        <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a>    length,
1899                        <a href="ft2-computations.html#ft_angle">FT_Angle</a>    angle );
1900</code></pre></div>
1901
1902<p>Compute vector coordinates from a length and angle.</p>
1903<h4>output</h4>
1904
1905<table class="fields">
1906<tr><td class="val" id="vec">vec</td><td class="desc">
1907<p>The address of source vector.</p>
1908</td></tr>
1909</table>
1910
1911<h4>input</h4>
1912
1913<table class="fields">
1914<tr><td class="val" id="length">length</td><td class="desc">
1915<p>The vector length.</p>
1916</td></tr>
1917<tr><td class="val" id="angle">angle</td><td class="desc">
1918<p>The vector angle.</p>
1919</td></tr>
1920</table>
1921
1922<hr>
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933            </article>
1934          </div>
1935        </div>
1936      </main>
1937
1938
1939<footer class="md-footer">
1940
1941    <div class="md-footer-nav">
1942      <nav class="md-footer-nav__inner md-grid">
1943
1944          <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
1945            <div class="md-flex__cell md-flex__cell--shrink">
1946              <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
1947            </div>
1948            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1949              <span class="md-flex__ellipsis">
1950                <span class="md-footer-nav__direction">
1951                  Previous
1952                </span>
1953                Cache Sub-System
1954              </span>
1955            </div>
1956          </a>
1957
1958
1959          <a href="ft2-list_processing.html" title="List Processing" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
1960            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1961              <span class="md-flex__ellipsis">
1962                <span class="md-footer-nav__direction">
1963                  Next
1964                </span>
1965                List Processing
1966              </span>
1967            </div>
1968            <div class="md-flex__cell md-flex__cell--shrink">
1969              <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
1970            </div>
1971          </a>
1972
1973      </nav>
1974    </div>
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 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1982          </div>
1983
1984        powered by
1985        <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
1986        and
1987        <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1988          Material for MkDocs</a>
1989      </div>
1990
1991    </div>
1992  </div>
1993</footer>
1994
1995    </div>
1996
1997      <script src="assets/javascripts/application.c33a9706.js"></script>
1998
1999      <script>app.initialize({version:"1.1",url:{base:"."}})</script>
2000
2001        <script src="javascripts/extra.js"></script>
2002
2003
2004  </body>
2005</html>