a0620c4d9dce528eaef512bc8c3f5d05146e5d06
[platform/upstream/freetype2.git] / docs / reference / ft2-glyph_management.html
1
2
3
4
5 <!doctype html>
6 <html lang="en" class="no-js">
7   <head>
8     
9       <meta charset="utf-8">
10       <meta name="viewport" content="width=device-width,initial-scale=1">
11       <meta http-equiv="x-ua-compatible" content="ie=edge">
12       
13         <meta name="description" content="API Reference Documentation for FreeType-2.10.4">
14       
15       
16       
17         <meta name="author" content="FreeType Contributors">
18       
19       
20         <meta name="lang:clipboard.copy" content="Copy to clipboard">
21       
22         <meta name="lang:clipboard.copied" content="Copied to clipboard">
23       
24         <meta name="lang:search.language" content="en">
25       
26         <meta name="lang:search.pipeline.stopwords" content="True">
27       
28         <meta name="lang:search.pipeline.trimmer" content="True">
29       
30         <meta name="lang:search.result.none" content="No matching documents">
31       
32         <meta name="lang:search.result.one" content="1 matching document">
33       
34         <meta name="lang:search.result.other" content="# matching documents">
35       
36         <meta name="lang:search.tokenizer" content="[\s\-]+">
37       
38       <link rel="shortcut icon" href="images/favico.ico">
39       <meta name="generator" content="mkdocs-1.1, mkdocs-material-4.6.3">
40     
41     
42       
43         <title>Glyph Management - FreeType-2.10.4 API Reference</title>
44       
45     
46     
47       <link rel="stylesheet" href="assets/stylesheets/application.adb8469c.css">
48       
49         <link rel="stylesheet" href="assets/stylesheets/application-palette.a8b3c06d.css">
50       
51       
52         
53         
54         <meta name="theme-color" content="#4caf50">
55       
56     
57     
58       <script src="assets/javascripts/modernizr.86422ebf.js"></script>
59     
60     
61       
62         <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
63         <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
64         <style>body,input{font-family:"Noto Serif","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
65       
66     
67     <link rel="stylesheet" href="assets/fonts/material-icons.css">
68     
69     
70       <link rel="stylesheet" href="stylesheets/extra.css">
71     
72     
73       
74     
75     
76   </head>
77   
78     
79     
80     <body dir="ltr" data-md-color-primary="green" data-md-color-accent="green">
81   
82     <svg class="md-svg">
83       <defs>
84         
85         
86       </defs>
87     </svg>
88     <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
89     <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
90     <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
91     
92       <a href="#glyph-management" tabindex="0" class="md-skip">
93         Skip to content
94       </a>
95     
96     
97       <header class="md-header" data-md-component="header">
98   <nav class="md-header-nav md-grid">
99     <div class="md-flex">
100       <div class="md-flex__cell md-flex__cell--shrink">
101         <a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
102           
103             <img alt="logo" src="images/favico.ico" width="24" height="24">
104           
105         </a>
106       </div>
107       <div class="md-flex__cell md-flex__cell--shrink">
108         <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
109       </div>
110       <div class="md-flex__cell md-flex__cell--stretch">
111         <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
112           
113             <span class="md-header-nav__topic">
114               FreeType-2.10.4 API Reference
115             </span>
116             <span class="md-header-nav__topic">
117               
118                 Glyph Management
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
259
260   <li class="md-nav__item md-nav__item--active md-nav__item--nested">
261     
262       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
263     
264     <label class="md-nav__link" for="nav-4">
265       Core API
266     </label>
267     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
268       <label class="md-nav__title" for="nav-4">
269         Core API
270       </label>
271       <ul class="md-nav__list" data-md-scrollfix>
272         
273         
274           
275           
276           
277
278
279   <li class="md-nav__item">
280     <a href="ft2-version.html" title="FreeType Version" class="md-nav__link">
281       FreeType Version
282     </a>
283   </li>
284
285         
286           
287           
288           
289
290
291   <li class="md-nav__item">
292     <a href="ft2-basic_types.html" title="Basic Data Types" class="md-nav__link">
293       Basic Data Types
294     </a>
295   </li>
296
297         
298           
299           
300           
301
302
303   <li class="md-nav__item">
304     <a href="ft2-base_interface.html" title="Base Interface" class="md-nav__link">
305       Base Interface
306     </a>
307   </li>
308
309         
310           
311           
312           
313
314
315   <li class="md-nav__item">
316     <a href="ft2-glyph_variants.html" title="Unicode Variation Sequences" class="md-nav__link">
317       Unicode Variation Sequences
318     </a>
319   </li>
320
321         
322           
323           
324           
325
326
327   <li class="md-nav__item">
328     <a href="ft2-color_management.html" title="Glyph Color Management" class="md-nav__link">
329       Glyph Color Management
330     </a>
331   </li>
332
333         
334           
335           
336           
337
338
339   <li class="md-nav__item">
340     <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-nav__link">
341       Glyph Layer Management
342     </a>
343   </li>
344
345         
346           
347           
348           
349
350   
351
352
353   <li class="md-nav__item md-nav__item--active">
354     
355     <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
356     
357       
358     
359     
360       <label class="md-nav__link md-nav__link--active" for="__toc">
361         Glyph Management
362       </label>
363     
364     <a href="ft2-glyph_management.html" title="Glyph Management" class="md-nav__link md-nav__link--active">
365       Glyph Management
366     </a>
367     
368       
369 <nav class="md-nav md-nav--secondary">
370   
371   
372     
373   
374   
375     <label class="md-nav__title" for="__toc">Table of contents</label>
376     <ul class="md-nav__list" data-md-scrollfix>
377       
378         <li class="md-nav__item">
379   <a href="#synopsis" class="md-nav__link">
380     Synopsis
381   </a>
382   
383 </li>
384       
385         <li class="md-nav__item">
386   <a href="#ft_glyph" class="md-nav__link">
387     FT_Glyph
388   </a>
389   
390 </li>
391       
392         <li class="md-nav__item">
393   <a href="#ft_glyphrec" class="md-nav__link">
394     FT_GlyphRec
395   </a>
396   
397 </li>
398       
399         <li class="md-nav__item">
400   <a href="#ft_bitmapglyph" class="md-nav__link">
401     FT_BitmapGlyph
402   </a>
403   
404 </li>
405       
406         <li class="md-nav__item">
407   <a href="#ft_bitmapglyphrec" class="md-nav__link">
408     FT_BitmapGlyphRec
409   </a>
410   
411 </li>
412       
413         <li class="md-nav__item">
414   <a href="#ft_outlineglyph" class="md-nav__link">
415     FT_OutlineGlyph
416   </a>
417   
418 </li>
419       
420         <li class="md-nav__item">
421   <a href="#ft_outlineglyphrec" class="md-nav__link">
422     FT_OutlineGlyphRec
423   </a>
424   
425 </li>
426       
427         <li class="md-nav__item">
428   <a href="#ft_new_glyph" class="md-nav__link">
429     FT_New_Glyph
430   </a>
431   
432 </li>
433       
434         <li class="md-nav__item">
435   <a href="#ft_get_glyph" class="md-nav__link">
436     FT_Get_Glyph
437   </a>
438   
439 </li>
440       
441         <li class="md-nav__item">
442   <a href="#ft_glyph_copy" class="md-nav__link">
443     FT_Glyph_Copy
444   </a>
445   
446 </li>
447       
448         <li class="md-nav__item">
449   <a href="#ft_glyph_transform" class="md-nav__link">
450     FT_Glyph_Transform
451   </a>
452   
453 </li>
454       
455         <li class="md-nav__item">
456   <a href="#ft_glyph_bbox_mode" class="md-nav__link">
457     FT_Glyph_BBox_Mode
458   </a>
459   
460 </li>
461       
462         <li class="md-nav__item">
463   <a href="#ft_glyph_get_cbox" class="md-nav__link">
464     FT_Glyph_Get_CBox
465   </a>
466   
467 </li>
468       
469         <li class="md-nav__item">
470   <a href="#ft_glyph_to_bitmap" class="md-nav__link">
471     FT_Glyph_To_Bitmap
472   </a>
473   
474 </li>
475       
476         <li class="md-nav__item">
477   <a href="#ft_done_glyph" class="md-nav__link">
478     FT_Done_Glyph
479   </a>
480   
481 </li>
482       
483       
484       
485       
486       
487     </ul>
488   
489 </nav>
490     
491   </li>
492
493         
494           
495           
496           
497
498
499   <li class="md-nav__item">
500     <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-nav__link">
501       Mac Specific Interface
502     </a>
503   </li>
504
505         
506           
507           
508           
509
510
511   <li class="md-nav__item">
512     <a href="ft2-sizes_management.html" title="Size Management" class="md-nav__link">
513       Size Management
514     </a>
515   </li>
516
517         
518           
519           
520           
521
522
523   <li class="md-nav__item">
524     <a href="ft2-header_file_macros.html" title="Header File Macros" class="md-nav__link">
525       Header File Macros
526     </a>
527   </li>
528
529         
530       </ul>
531     </nav>
532   </li>
533
534     
535       
536       
537       
538
539
540   <li class="md-nav__item md-nav__item--nested">
541     
542       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
543     
544     <label class="md-nav__link" for="nav-5">
545       Format-Specific API
546     </label>
547     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
548       <label class="md-nav__title" for="nav-5">
549         Format-Specific API
550       </label>
551       <ul class="md-nav__list" data-md-scrollfix>
552         
553         
554           
555           
556           
557
558
559   <li class="md-nav__item">
560     <a href="ft2-multiple_masters.html" title="Multiple Masters" class="md-nav__link">
561       Multiple Masters
562     </a>
563   </li>
564
565         
566           
567           
568           
569
570
571   <li class="md-nav__item">
572     <a href="ft2-truetype_tables.html" title="TrueType Tables" class="md-nav__link">
573       TrueType Tables
574     </a>
575   </li>
576
577         
578           
579           
580           
581
582
583   <li class="md-nav__item">
584     <a href="ft2-type1_tables.html" title="Type 1 Tables" class="md-nav__link">
585       Type 1 Tables
586     </a>
587   </li>
588
589         
590           
591           
592           
593
594
595   <li class="md-nav__item">
596     <a href="ft2-sfnt_names.html" title="SFNT Names" class="md-nav__link">
597       SFNT Names
598     </a>
599   </li>
600
601         
602           
603           
604           
605
606
607   <li class="md-nav__item">
608     <a href="ft2-bdf_fonts.html" title="BDF and PCF Files" class="md-nav__link">
609       BDF and PCF Files
610     </a>
611   </li>
612
613         
614           
615           
616           
617
618
619   <li class="md-nav__item">
620     <a href="ft2-cid_fonts.html" title="CID Fonts" class="md-nav__link">
621       CID Fonts
622     </a>
623   </li>
624
625         
626           
627           
628           
629
630
631   <li class="md-nav__item">
632     <a href="ft2-pfr_fonts.html" title="PFR Fonts" class="md-nav__link">
633       PFR Fonts
634     </a>
635   </li>
636
637         
638           
639           
640           
641
642
643   <li class="md-nav__item">
644     <a href="ft2-winfnt_fonts.html" title="Window FNT Files" class="md-nav__link">
645       Window FNT Files
646     </a>
647   </li>
648
649         
650           
651           
652           
653
654
655   <li class="md-nav__item">
656     <a href="ft2-font_formats.html" title="Font Formats" class="md-nav__link">
657       Font Formats
658     </a>
659   </li>
660
661         
662           
663           
664           
665
666
667   <li class="md-nav__item">
668     <a href="ft2-gasp_table.html" title="Gasp Table" class="md-nav__link">
669       Gasp Table
670     </a>
671   </li>
672
673         
674       </ul>
675     </nav>
676   </li>
677
678     
679       
680       
681       
682
683
684   <li class="md-nav__item md-nav__item--nested">
685     
686       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
687     
688     <label class="md-nav__link" for="nav-6">
689       Controlling FreeType Modules
690     </label>
691     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
692       <label class="md-nav__title" for="nav-6">
693         Controlling FreeType Modules
694       </label>
695       <ul class="md-nav__list" data-md-scrollfix>
696         
697         
698           
699           
700           
701
702
703   <li class="md-nav__item">
704     <a href="ft2-auto_hinter.html" title="The auto-hinter" class="md-nav__link">
705       The auto-hinter
706     </a>
707   </li>
708
709         
710           
711           
712           
713
714
715   <li class="md-nav__item">
716     <a href="ft2-cff_driver.html" title="The CFF driver" class="md-nav__link">
717       The CFF driver
718     </a>
719   </li>
720
721         
722           
723           
724           
725
726
727   <li class="md-nav__item">
728     <a href="ft2-t1_cid_driver.html" title="The Type 1 and CID drivers" class="md-nav__link">
729       The Type 1 and CID drivers
730     </a>
731   </li>
732
733         
734           
735           
736           
737
738
739   <li class="md-nav__item">
740     <a href="ft2-tt_driver.html" title="The TrueType driver" class="md-nav__link">
741       The TrueType driver
742     </a>
743   </li>
744
745         
746           
747           
748           
749
750
751   <li class="md-nav__item">
752     <a href="ft2-pcf_driver.html" title="The PCF driver" class="md-nav__link">
753       The PCF driver
754     </a>
755   </li>
756
757         
758           
759           
760           
761
762
763   <li class="md-nav__item">
764     <a href="ft2-properties.html" title="Driver properties" class="md-nav__link">
765       Driver properties
766     </a>
767   </li>
768
769         
770           
771           
772           
773
774
775   <li class="md-nav__item">
776     <a href="ft2-parameter_tags.html" title="Parameter Tags" class="md-nav__link">
777       Parameter Tags
778     </a>
779   </li>
780
781         
782           
783           
784           
785
786
787   <li class="md-nav__item">
788     <a href="ft2-lcd_rendering.html" title="Subpixel Rendering" class="md-nav__link">
789       Subpixel Rendering
790     </a>
791   </li>
792
793         
794       </ul>
795     </nav>
796   </li>
797
798     
799       
800       
801       
802
803
804   <li class="md-nav__item md-nav__item--nested">
805     
806       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
807     
808     <label class="md-nav__link" for="nav-7">
809       Cache Sub-System
810     </label>
811     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
812       <label class="md-nav__title" for="nav-7">
813         Cache Sub-System
814       </label>
815       <ul class="md-nav__list" data-md-scrollfix>
816         
817         
818           
819           
820           
821
822
823   <li class="md-nav__item">
824     <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-nav__link">
825       Cache Sub-System
826     </a>
827   </li>
828
829         
830       </ul>
831     </nav>
832   </li>
833
834     
835       
836       
837       
838
839
840   <li class="md-nav__item md-nav__item--nested">
841     
842       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8">
843     
844     <label class="md-nav__link" for="nav-8">
845       Support API
846     </label>
847     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
848       <label class="md-nav__title" for="nav-8">
849         Support API
850       </label>
851       <ul class="md-nav__list" data-md-scrollfix>
852         
853         
854           
855           
856           
857
858
859   <li class="md-nav__item">
860     <a href="ft2-computations.html" title="Computations" class="md-nav__link">
861       Computations
862     </a>
863   </li>
864
865         
866           
867           
868           
869
870
871   <li class="md-nav__item">
872     <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link">
873       List Processing
874     </a>
875   </li>
876
877         
878           
879           
880           
881
882
883   <li class="md-nav__item">
884     <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link">
885       Outline Processing
886     </a>
887   </li>
888
889         
890           
891           
892           
893
894
895   <li class="md-nav__item">
896     <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link">
897       Quick retrieval of advance values
898     </a>
899   </li>
900
901         
902           
903           
904           
905
906
907   <li class="md-nav__item">
908     <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link">
909       Bitmap Handling
910     </a>
911   </li>
912
913         
914           
915           
916           
917
918
919   <li class="md-nav__item">
920     <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link">
921       Scanline Converter
922     </a>
923   </li>
924
925         
926           
927           
928           
929
930
931   <li class="md-nav__item">
932     <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link">
933       Glyph Stroker
934     </a>
935   </li>
936
937         
938           
939           
940           
941
942
943   <li class="md-nav__item">
944     <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link">
945       System Interface
946     </a>
947   </li>
948
949         
950           
951           
952           
953
954
955   <li class="md-nav__item">
956     <a href="ft2-module_management.html" title="Module Management" class="md-nav__link">
957       Module Management
958     </a>
959   </li>
960
961         
962           
963           
964           
965
966
967   <li class="md-nav__item">
968     <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link">
969       GZIP Streams
970     </a>
971   </li>
972
973         
974           
975           
976           
977
978
979   <li class="md-nav__item">
980     <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link">
981       LZW Streams
982     </a>
983   </li>
984
985         
986           
987           
988           
989
990
991   <li class="md-nav__item">
992     <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link">
993       BZIP2 Streams
994     </a>
995   </li>
996
997         
998       </ul>
999     </nav>
1000   </li>
1001
1002     
1003       
1004       
1005       
1006
1007
1008   <li class="md-nav__item md-nav__item--nested">
1009     
1010       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
1011     
1012     <label class="md-nav__link" for="nav-9">
1013       Error Codes
1014     </label>
1015     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
1016       <label class="md-nav__title" for="nav-9">
1017         Error Codes
1018       </label>
1019       <ul class="md-nav__list" data-md-scrollfix>
1020         
1021         
1022           
1023           
1024           
1025
1026
1027   <li class="md-nav__item">
1028     <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link">
1029       Error Enumerations
1030     </a>
1031   </li>
1032
1033         
1034           
1035           
1036           
1037
1038
1039   <li class="md-nav__item">
1040     <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link">
1041       Error Code Values
1042     </a>
1043   </li>
1044
1045         
1046       </ul>
1047     </nav>
1048   </li>
1049
1050     
1051       
1052       
1053       
1054
1055
1056   <li class="md-nav__item md-nav__item--nested">
1057     
1058       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10">
1059     
1060     <label class="md-nav__link" for="nav-10">
1061       Miscellaneous
1062     </label>
1063     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
1064       <label class="md-nav__title" for="nav-10">
1065         Miscellaneous
1066       </label>
1067       <ul class="md-nav__list" data-md-scrollfix>
1068         
1069         
1070           
1071           
1072           
1073
1074
1075   <li class="md-nav__item">
1076     <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link">
1077       TrueTypeGX/AAT Validation
1078     </a>
1079   </li>
1080
1081         
1082           
1083           
1084           
1085
1086
1087   <li class="md-nav__item">
1088     <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
1089       Incremental Loading
1090     </a>
1091   </li>
1092
1093         
1094           
1095           
1096           
1097
1098
1099   <li class="md-nav__item">
1100     <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
1101       The TrueType Engine
1102     </a>
1103   </li>
1104
1105         
1106           
1107           
1108           
1109
1110
1111   <li class="md-nav__item">
1112     <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
1113       OpenType Validation
1114     </a>
1115   </li>
1116
1117         
1118       </ul>
1119     </nav>
1120   </li>
1121
1122     
1123   </ul>
1124 </nav>
1125                   </div>
1126                 </div>
1127               </div>
1128             
1129             
1130               <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
1131                 <div class="md-sidebar__scrollwrap">
1132                   <div class="md-sidebar__inner">
1133                     
1134 <nav class="md-nav md-nav--secondary">
1135   
1136   
1137     
1138   
1139   
1140     <label class="md-nav__title" for="__toc">Table of contents</label>
1141     <ul class="md-nav__list" data-md-scrollfix>
1142       
1143         <li class="md-nav__item">
1144   <a href="#synopsis" class="md-nav__link">
1145     Synopsis
1146   </a>
1147   
1148 </li>
1149       
1150         <li class="md-nav__item">
1151   <a href="#ft_glyph" class="md-nav__link">
1152     FT_Glyph
1153   </a>
1154   
1155 </li>
1156       
1157         <li class="md-nav__item">
1158   <a href="#ft_glyphrec" class="md-nav__link">
1159     FT_GlyphRec
1160   </a>
1161   
1162 </li>
1163       
1164         <li class="md-nav__item">
1165   <a href="#ft_bitmapglyph" class="md-nav__link">
1166     FT_BitmapGlyph
1167   </a>
1168   
1169 </li>
1170       
1171         <li class="md-nav__item">
1172   <a href="#ft_bitmapglyphrec" class="md-nav__link">
1173     FT_BitmapGlyphRec
1174   </a>
1175   
1176 </li>
1177       
1178         <li class="md-nav__item">
1179   <a href="#ft_outlineglyph" class="md-nav__link">
1180     FT_OutlineGlyph
1181   </a>
1182   
1183 </li>
1184       
1185         <li class="md-nav__item">
1186   <a href="#ft_outlineglyphrec" class="md-nav__link">
1187     FT_OutlineGlyphRec
1188   </a>
1189   
1190 </li>
1191       
1192         <li class="md-nav__item">
1193   <a href="#ft_new_glyph" class="md-nav__link">
1194     FT_New_Glyph
1195   </a>
1196   
1197 </li>
1198       
1199         <li class="md-nav__item">
1200   <a href="#ft_get_glyph" class="md-nav__link">
1201     FT_Get_Glyph
1202   </a>
1203   
1204 </li>
1205       
1206         <li class="md-nav__item">
1207   <a href="#ft_glyph_copy" class="md-nav__link">
1208     FT_Glyph_Copy
1209   </a>
1210   
1211 </li>
1212       
1213         <li class="md-nav__item">
1214   <a href="#ft_glyph_transform" class="md-nav__link">
1215     FT_Glyph_Transform
1216   </a>
1217   
1218 </li>
1219       
1220         <li class="md-nav__item">
1221   <a href="#ft_glyph_bbox_mode" class="md-nav__link">
1222     FT_Glyph_BBox_Mode
1223   </a>
1224   
1225 </li>
1226       
1227         <li class="md-nav__item">
1228   <a href="#ft_glyph_get_cbox" class="md-nav__link">
1229     FT_Glyph_Get_CBox
1230   </a>
1231   
1232 </li>
1233       
1234         <li class="md-nav__item">
1235   <a href="#ft_glyph_to_bitmap" class="md-nav__link">
1236     FT_Glyph_To_Bitmap
1237   </a>
1238   
1239 </li>
1240       
1241         <li class="md-nav__item">
1242   <a href="#ft_done_glyph" class="md-nav__link">
1243     FT_Done_Glyph
1244   </a>
1245   
1246 </li>
1247       
1248       
1249       
1250       
1251       
1252     </ul>
1253   
1254 </nav>
1255                   </div>
1256                 </div>
1257               </div>
1258             
1259           
1260           <div class="md-content">
1261             <article class="md-content__inner md-typeset">
1262               
1263                 
1264                 
1265                 <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#core-api">Core API</a> &raquo; Glyph Management</p>
1266 <hr />
1267 <h1 id="glyph-management">Glyph Management<a class="headerlink" href="#glyph-management" title="Permanent link">&para;</a></h1>
1268 <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1269 <p>This section contains definitions used to manage glyph data through generic <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> objects. Each of them can contain a bitmap, a vector outline, or even images in other formats. These objects are detached from <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code>, contrary to <code><a href="ft2-base_interface.html#ft_glyphslot">FT_GlyphSlot</a></code>.</p>
1270 <h2 id="ft_glyph">FT_Glyph<a class="headerlink" href="#ft_glyph" title="Permanent link">&para;</a></h2>
1271 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1272 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_GlyphRec_*  <b>FT_Glyph</b>;
1273 </code></pre></div>
1274
1275 <p>Handle to an object used to model generic glyph images. It is a pointer to the <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code> structure and can contain a glyph bitmap or pointer.</p>
1276 <h4>note</h4>
1277
1278 <p>Glyph objects are not owned by the library. You must thus release them manually (through <code><a href="ft2-glyph_management.html#ft_done_glyph">FT_Done_Glyph</a></code>) <em>before</em> calling <code><a href="ft2-base_interface.html#ft_done_freetype">FT_Done_FreeType</a></code>.</p>
1279 <hr>
1280
1281 <h2 id="ft_glyphrec">FT_GlyphRec<a class="headerlink" href="#ft_glyphrec" title="Permanent link">&para;</a></h2>
1282 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1283 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_GlyphRec_
1284   {
1285     <a href="ft2-base_interface.html#ft_library">FT_Library</a>             library;
1286     <span class="keyword">const</span> FT_Glyph_Class*  clazz;
1287     <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a>        format;
1288     <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>              advance;
1289
1290   } <b>FT_GlyphRec</b>;
1291 </code></pre></div>
1292
1293 <p>The root glyph structure contains a given glyph image plus its advance width in 16.16 fixed-point format.</p>
1294 <h4>fields</h4>
1295
1296 <table class="fields">
1297 <tr><td class="val" id="library">library</td><td class="desc">
1298 <p>A handle to the FreeType library object.</p>
1299 </td></tr>
1300 <tr><td class="val" id="clazz">clazz</td><td class="desc">
1301 <p>A pointer to the glyph's class. Private.</p>
1302 </td></tr>
1303 <tr><td class="val" id="format">format</td><td class="desc">
1304 <p>The format of the glyph's image.</p>
1305 </td></tr>
1306 <tr><td class="val" id="advance">advance</td><td class="desc">
1307 <p>A 16.16 vector that gives the glyph's advance width.</p>
1308 </td></tr>
1309 </table>
1310
1311 <hr>
1312
1313 <h2 id="ft_bitmapglyph">FT_BitmapGlyph<a class="headerlink" href="#ft_bitmapglyph" title="Permanent link">&para;</a></h2>
1314 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1315 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_BitmapGlyphRec_*  <b>FT_BitmapGlyph</b>;
1316 </code></pre></div>
1317
1318 <p>A handle to an object used to model a bitmap glyph image. This is a sub-class of <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>, and a pointer to <code><a href="ft2-glyph_management.html#ft_bitmapglyphrec">FT_BitmapGlyphRec</a></code>.</p>
1319 <hr>
1320
1321 <h2 id="ft_bitmapglyphrec">FT_BitmapGlyphRec<a class="headerlink" href="#ft_bitmapglyphrec" title="Permanent link">&para;</a></h2>
1322 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1323 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_BitmapGlyphRec_
1324   {
1325     <a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a>  root;
1326     <a href="ft2-basic_types.html#ft_int">FT_Int</a>       left;
1327     <a href="ft2-basic_types.html#ft_int">FT_Int</a>       top;
1328     <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>    bitmap;
1329
1330   } <b>FT_BitmapGlyphRec</b>;
1331 </code></pre></div>
1332
1333 <p>A structure used for bitmap glyph images. This really is a &lsquo;sub-class&rsquo; of <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code>.</p>
1334 <h4>fields</h4>
1335
1336 <table class="fields">
1337 <tr><td class="val" id="root">root</td><td class="desc">
1338 <p>The root <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> fields.</p>
1339 </td></tr>
1340 <tr><td class="val" id="left">left</td><td class="desc">
1341 <p>The left-side bearing, i.e., the horizontal distance from the current pen position to the left border of the glyph bitmap.</p>
1342 </td></tr>
1343 <tr><td class="val" id="top">top</td><td class="desc">
1344 <p>The top-side bearing, i.e., the vertical distance from the current pen position to the top border of the glyph bitmap. This distance is positive for upwards&nbsp;y!</p>
1345 </td></tr>
1346 <tr><td class="val" id="bitmap">bitmap</td><td class="desc">
1347 <p>A descriptor for the bitmap.</p>
1348 </td></tr>
1349 </table>
1350
1351 <h4>note</h4>
1352
1353 <p>You can typecast an <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> to <code><a href="ft2-glyph_management.html#ft_bitmapglyph">FT_BitmapGlyph</a></code> if you have <code>glyph-&gt;format == FT_GLYPH_FORMAT_BITMAP</code>. This lets you access the bitmap's contents easily.</p>
1354 <p>The corresponding pixel buffer is always owned by <code><a href="ft2-glyph_management.html#ft_bitmapglyph">FT_BitmapGlyph</a></code> and is thus created and destroyed with it.</p>
1355 <hr>
1356
1357 <h2 id="ft_outlineglyph">FT_OutlineGlyph<a class="headerlink" href="#ft_outlineglyph" title="Permanent link">&para;</a></h2>
1358 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1359 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_OutlineGlyphRec_*  <b>FT_OutlineGlyph</b>;
1360 </code></pre></div>
1361
1362 <p>A handle to an object used to model an outline glyph image. This is a sub-class of <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>, and a pointer to <code><a href="ft2-glyph_management.html#ft_outlineglyphrec">FT_OutlineGlyphRec</a></code>.</p>
1363 <hr>
1364
1365 <h2 id="ft_outlineglyphrec">FT_OutlineGlyphRec<a class="headerlink" href="#ft_outlineglyphrec" title="Permanent link">&para;</a></h2>
1366 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1367 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_OutlineGlyphRec_
1368   {
1369     <a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a>  root;
1370     <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a>   outline;
1371
1372   } <b>FT_OutlineGlyphRec</b>;
1373 </code></pre></div>
1374
1375 <p>A structure used for outline (vectorial) glyph images. This really is a &lsquo;sub-class&rsquo; of <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code>.</p>
1376 <h4>fields</h4>
1377
1378 <table class="fields">
1379 <tr><td class="val" id="root">root</td><td class="desc">
1380 <p>The root <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> fields.</p>
1381 </td></tr>
1382 <tr><td class="val" id="outline">outline</td><td class="desc">
1383 <p>A descriptor for the outline.</p>
1384 </td></tr>
1385 </table>
1386
1387 <h4>note</h4>
1388
1389 <p>You can typecast an <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> to <code><a href="ft2-glyph_management.html#ft_outlineglyph">FT_OutlineGlyph</a></code> if you have <code>glyph-&gt;format == FT_GLYPH_FORMAT_OUTLINE</code>. This lets you access the outline's content easily.</p>
1390 <p>As the outline is extracted from a glyph slot, its coordinates are expressed normally in 26.6 pixels, unless the flag <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> was used in <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> or <code><a href="ft2-base_interface.html#ft_load_char">FT_Load_Char</a></code>.</p>
1391 <p>The outline's tables are always owned by the object and are destroyed with it.</p>
1392 <hr>
1393
1394 <h2 id="ft_new_glyph">FT_New_Glyph<a class="headerlink" href="#ft_new_glyph" title="Permanent link">&para;</a></h2>
1395 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1396 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1397   <b>FT_New_Glyph</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a>       library,
1398                 <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a>  format,
1399                 <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>         *aglyph );
1400 </code></pre></div>
1401
1402 <p>A function used to create a new empty glyph image. Note that the created <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> object must be released with <code><a href="ft2-glyph_management.html#ft_done_glyph">FT_Done_Glyph</a></code>.</p>
1403 <h4>input</h4>
1404
1405 <table class="fields">
1406 <tr><td class="val" id="library">library</td><td class="desc">
1407 <p>A handle to the FreeType library object.</p>
1408 </td></tr>
1409 <tr><td class="val" id="format">format</td><td class="desc">
1410 <p>The format of the glyph's image.</p>
1411 </td></tr>
1412 </table>
1413
1414 <h4>output</h4>
1415
1416 <table class="fields">
1417 <tr><td class="val" id="aglyph">aglyph</td><td class="desc">
1418 <p>A handle to the glyph object.</p>
1419 </td></tr>
1420 </table>
1421
1422 <h4>return</h4>
1423
1424 <p>FreeType error code. 0&nbsp;means success.</p>
1425 <h4>since</h4>
1426
1427 <p>2.10</p>
1428 <hr>
1429
1430 <h2 id="ft_get_glyph">FT_Get_Glyph<a class="headerlink" href="#ft_get_glyph" title="Permanent link">&para;</a></h2>
1431 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1432 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1433   <b>FT_Get_Glyph</b>( <a href="ft2-base_interface.html#ft_glyphslot">FT_GlyphSlot</a>  slot,
1434                 <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>     *aglyph );
1435 </code></pre></div>
1436
1437 <p>A function used to extract a glyph image from a slot. Note that the created <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> object must be released with <code><a href="ft2-glyph_management.html#ft_done_glyph">FT_Done_Glyph</a></code>.</p>
1438 <h4>input</h4>
1439
1440 <table class="fields">
1441 <tr><td class="val" id="slot">slot</td><td class="desc">
1442 <p>A handle to the source glyph slot.</p>
1443 </td></tr>
1444 </table>
1445
1446 <h4>output</h4>
1447
1448 <table class="fields">
1449 <tr><td class="val" id="aglyph">aglyph</td><td class="desc">
1450 <p>A handle to the glyph object.</p>
1451 </td></tr>
1452 </table>
1453
1454 <h4>return</h4>
1455
1456 <p>FreeType error code. 0&nbsp;means success.</p>
1457 <h4>note</h4>
1458
1459 <p>Because <code>*aglyph-&gt;advance.x</code> and <code>*aglyph-&gt;advance.y</code> are 16.16 fixed-point numbers, <code>slot-&gt;advance.x</code> and <code>slot-&gt;advance.y</code> (which are in 26.6 fixed-point format) must be in the range ]-32768;32768[.</p>
1460 <hr>
1461
1462 <h2 id="ft_glyph_copy">FT_Glyph_Copy<a class="headerlink" href="#ft_glyph_copy" title="Permanent link">&para;</a></h2>
1463 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1464 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1465   <b>FT_Glyph_Copy</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>   source,
1466                  <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>  *target );
1467 </code></pre></div>
1468
1469 <p>A function used to copy a glyph image. Note that the created <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> object must be released with <code><a href="ft2-glyph_management.html#ft_done_glyph">FT_Done_Glyph</a></code>.</p>
1470 <h4>input</h4>
1471
1472 <table class="fields">
1473 <tr><td class="val" id="source">source</td><td class="desc">
1474 <p>A handle to the source glyph object.</p>
1475 </td></tr>
1476 </table>
1477
1478 <h4>output</h4>
1479
1480 <table class="fields">
1481 <tr><td class="val" id="target">target</td><td class="desc">
1482 <p>A handle to the target glyph object. 0&nbsp;in case of error.</p>
1483 </td></tr>
1484 </table>
1485
1486 <h4>return</h4>
1487
1488 <p>FreeType error code. 0&nbsp;means success.</p>
1489 <hr>
1490
1491 <h2 id="ft_glyph_transform">FT_Glyph_Transform<a class="headerlink" href="#ft_glyph_transform" title="Permanent link">&para;</a></h2>
1492 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1493 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1494   <b>FT_Glyph_Transform</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>    glyph,
1495                       <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*  matrix,
1496                       <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  delta );
1497 </code></pre></div>
1498
1499 <p>Transform a glyph image if its format is scalable.</p>
1500 <h4>inout</h4>
1501
1502 <table class="fields">
1503 <tr><td class="val" id="glyph">glyph</td><td class="desc">
1504 <p>A handle to the target glyph object.</p>
1505 </td></tr>
1506 </table>
1507
1508 <h4>input</h4>
1509
1510 <table class="fields">
1511 <tr><td class="val" id="matrix">matrix</td><td class="desc">
1512 <p>A pointer to a 2x2 matrix to apply.</p>
1513 </td></tr>
1514 <tr><td class="val" id="delta">delta</td><td class="desc">
1515 <p>A pointer to a 2d vector to apply. Coordinates are expressed in 1/64th of a pixel.</p>
1516 </td></tr>
1517 </table>
1518
1519 <h4>return</h4>
1520
1521 <p>FreeType error code (if not 0, the glyph format is not scalable).</p>
1522 <h4>note</h4>
1523
1524 <p>The 2x2 transformation matrix is also applied to the glyph's advance vector.</p>
1525 <hr>
1526
1527 <h2 id="ft_glyph_bbox_mode">FT_Glyph_BBox_Mode<a class="headerlink" href="#ft_glyph_bbox_mode" title="Permanent link">&para;</a></h2>
1528 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1529 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">enum</span>  FT_Glyph_BBox_Mode_
1530   {
1531     <a href="ft2-glyph_management.html#ft_glyph_bbox_unscaled">FT_GLYPH_BBOX_UNSCALED</a>  = 0,
1532     <a href="ft2-glyph_management.html#ft_glyph_bbox_subpixels">FT_GLYPH_BBOX_SUBPIXELS</a> = 0,
1533     <a href="ft2-glyph_management.html#ft_glyph_bbox_gridfit">FT_GLYPH_BBOX_GRIDFIT</a>   = 1,
1534     <a href="ft2-glyph_management.html#ft_glyph_bbox_truncate">FT_GLYPH_BBOX_TRUNCATE</a>  = 2,
1535     <a href="ft2-glyph_management.html#ft_glyph_bbox_pixels">FT_GLYPH_BBOX_PIXELS</a>    = 3
1536
1537   } <b>FT_Glyph_BBox_Mode</b>;
1538
1539
1540   /* these constants are deprecated; use the corresponding */
1541   /* `<b>FT_Glyph_BBox_Mode</b>` values instead                   */
1542 #<span class="keyword">define</span> ft_glyph_bbox_unscaled   <a href="ft2-glyph_management.html#ft_glyph_bbox_unscaled">FT_GLYPH_BBOX_UNSCALED</a>
1543 #<span class="keyword">define</span> ft_glyph_bbox_subpixels  <a href="ft2-glyph_management.html#ft_glyph_bbox_subpixels">FT_GLYPH_BBOX_SUBPIXELS</a>
1544 #<span class="keyword">define</span> ft_glyph_bbox_gridfit    <a href="ft2-glyph_management.html#ft_glyph_bbox_gridfit">FT_GLYPH_BBOX_GRIDFIT</a>
1545 #<span class="keyword">define</span> ft_glyph_bbox_truncate   <a href="ft2-glyph_management.html#ft_glyph_bbox_truncate">FT_GLYPH_BBOX_TRUNCATE</a>
1546 #<span class="keyword">define</span> ft_glyph_bbox_pixels     <a href="ft2-glyph_management.html#ft_glyph_bbox_pixels">FT_GLYPH_BBOX_PIXELS</a>
1547 </code></pre></div>
1548
1549 <p>The mode how the values of <code><a href="ft2-glyph_management.html#ft_glyph_get_cbox">FT_Glyph_Get_CBox</a></code> are returned.</p>
1550 <h4>values</h4>
1551
1552 <table class="fields">
1553 <tr><td class="val" id="ft_glyph_bbox_unscaled">FT_GLYPH_BBOX_UNSCALED</td><td class="desc">
1554 <p>Return unscaled font units.</p>
1555 </td></tr>
1556 <tr><td class="val" id="ft_glyph_bbox_subpixels">FT_GLYPH_BBOX_SUBPIXELS</td><td class="desc">
1557 <p>Return unfitted 26.6 coordinates.</p>
1558 </td></tr>
1559 <tr><td class="val" id="ft_glyph_bbox_gridfit">FT_GLYPH_BBOX_GRIDFIT</td><td class="desc">
1560 <p>Return grid-fitted 26.6 coordinates.</p>
1561 </td></tr>
1562 <tr><td class="val" id="ft_glyph_bbox_truncate">FT_GLYPH_BBOX_TRUNCATE</td><td class="desc">
1563 <p>Return coordinates in integer pixels.</p>
1564 </td></tr>
1565 <tr><td class="val" id="ft_glyph_bbox_pixels">FT_GLYPH_BBOX_PIXELS</td><td class="desc">
1566 <p>Return grid-fitted pixel coordinates.</p>
1567 </td></tr>
1568 </table>
1569
1570 <hr>
1571
1572 <h2 id="ft_glyph_get_cbox">FT_Glyph_Get_CBox<a class="headerlink" href="#ft_glyph_get_cbox" title="Permanent link">&para;</a></h2>
1573 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1574 <div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1575   <b>FT_Glyph_Get_CBox</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>  glyph,
1576                      <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>   bbox_mode,
1577                      <a href="ft2-basic_types.html#ft_bbox">FT_BBox</a>  *acbox );
1578 </code></pre></div>
1579
1580 <p>Return a glyph's &lsquo;control box&rsquo;. The control box encloses all the outline's points, including Bezier control points. Though it coincides with the exact bounding box for most glyphs, it can be slightly larger in some situations (like when rotating an outline that contains Bezier outside arcs).</p>
1581 <p>Computing the control box is very fast, while getting the bounding box can take much more time as it needs to walk over all segments and arcs in the outline. To get the latter, you can use the &lsquo;ftbbox&rsquo; component, which is dedicated to this single task.</p>
1582 <h4>input</h4>
1583
1584 <table class="fields">
1585 <tr><td class="val" id="glyph">glyph</td><td class="desc">
1586 <p>A handle to the source glyph object.</p>
1587 </td></tr>
1588 <tr><td class="val" id="mode">mode</td><td class="desc">
1589 <p>The mode that indicates how to interpret the returned bounding box values.</p>
1590 </td></tr>
1591 </table>
1592
1593 <h4>output</h4>
1594
1595 <table class="fields">
1596 <tr><td class="val" id="acbox">acbox</td><td class="desc">
1597 <p>The glyph coordinate bounding box. Coordinates are expressed in 1/64th of pixels if it is grid-fitted.</p>
1598 </td></tr>
1599 </table>
1600
1601 <h4>note</h4>
1602
1603 <p>Coordinates are relative to the glyph origin, using the y&nbsp;upwards convention.</p>
1604 <p>If the glyph has been loaded with <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code>, <code>bbox_mode</code> must be set to <code><a href="ft2-glyph_management.html#ft_glyph_bbox_mode">FT_GLYPH_BBOX_UNSCALED</a></code> to get unscaled font units in 26.6 pixel format. The value <code><a href="ft2-glyph_management.html#ft_glyph_bbox_mode">FT_GLYPH_BBOX_SUBPIXELS</a></code> is another name for this constant.</p>
1605 <p>If the font is tricky and the glyph has been loaded with <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code>, the resulting CBox is meaningless. To get reasonable values for the CBox it is necessary to load the glyph at a large ppem value (so that the hinting instructions can properly shift and scale the subglyphs), then extracting the CBox, which can be eventually converted back to font units.</p>
1606 <p>Note that the maximum coordinates are exclusive, which means that one can compute the width and height of the glyph image (be it in integer or 26.6 pixels) as:
1607 <div class="highlight"><pre><span></span><code>  width  = bbox.xMax - bbox.xMin;
1608   height = bbox.yMax - bbox.yMin;
1609 </code></pre></div></p>
1610 <p>Note also that for 26.6 coordinates, if <code>bbox_mode</code> is set to <code><a href="ft2-glyph_management.html#ft_glyph_bbox_mode">FT_GLYPH_BBOX_GRIDFIT</a></code>, the coordinates will also be grid-fitted, which corresponds to:
1611 <div class="highlight"><pre><span></span><code>  bbox.xMin = FLOOR(bbox.xMin);
1612   bbox.yMin = FLOOR(bbox.yMin);
1613   bbox.xMax = CEILING(bbox.xMax);
1614   bbox.yMax = CEILING(bbox.yMax);
1615 </code></pre></div></p>
1616 <p>To get the bbox in pixel coordinates, set <code>bbox_mode</code> to <code><a href="ft2-glyph_management.html#ft_glyph_bbox_mode">FT_GLYPH_BBOX_TRUNCATE</a></code>.</p>
1617 <p>To get the bbox in grid-fitted pixel coordinates, set <code>bbox_mode</code> to <code><a href="ft2-glyph_management.html#ft_glyph_bbox_mode">FT_GLYPH_BBOX_PIXELS</a></code>.</p>
1618 <hr>
1619
1620 <h2 id="ft_glyph_to_bitmap">FT_Glyph_To_Bitmap<a class="headerlink" href="#ft_glyph_to_bitmap" title="Permanent link">&para;</a></h2>
1621 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1622 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1623   <b>FT_Glyph_To_Bitmap</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>*       the_glyph,
1624                       <a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a>  render_mode,
1625                       <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*      origin,
1626                       <a href="ft2-basic_types.html#ft_bool">FT_Bool</a>         destroy );
1627 </code></pre></div>
1628
1629 <p>Convert a given glyph object to a bitmap glyph object.</p>
1630 <h4>inout</h4>
1631
1632 <table class="fields">
1633 <tr><td class="val" id="the_glyph">the_glyph</td><td class="desc">
1634 <p>A pointer to a handle to the target glyph.</p>
1635 </td></tr>
1636 </table>
1637
1638 <h4>input</h4>
1639
1640 <table class="fields">
1641 <tr><td class="val" id="render_mode">render_mode</td><td class="desc">
1642 <p>An enumeration that describes how the data is rendered.</p>
1643 </td></tr>
1644 <tr><td class="val" id="origin">origin</td><td class="desc">
1645 <p>A pointer to a vector used to translate the glyph image before rendering. Can be&nbsp;0 (if no translation). The origin is expressed in 26.6 pixels.</p>
1646 </td></tr>
1647 <tr><td class="val" id="destroy">destroy</td><td class="desc">
1648 <p>A boolean that indicates that the original glyph image should be destroyed by this function. It is never destroyed in case of error.</p>
1649 </td></tr>
1650 </table>
1651
1652 <h4>return</h4>
1653
1654 <p>FreeType error code. 0&nbsp;means success.</p>
1655 <h4>note</h4>
1656
1657 <p>This function does nothing if the glyph format isn't scalable.</p>
1658 <p>The glyph image is translated with the <code>origin</code> vector before rendering.</p>
1659 <p>The first parameter is a pointer to an <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> handle, that will be <em>replaced</em> by this function (with newly allocated data). Typically, you would use (omitting error handling):
1660 <div class="highlight"><pre><span></span><code>  FT_Glyph        glyph;
1661   FT_BitmapGlyph  glyph_bitmap;
1662
1663
1664   // load glyph
1665   error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAULT );
1666
1667   // extract glyph image
1668   error = FT_Get_Glyph( face-&gt;glyph, &amp;glyph );
1669
1670   // convert to a bitmap (default render mode + destroying old)
1671   if ( glyph-&gt;format != FT_GLYPH_FORMAT_BITMAP )
1672   {
1673     error = FT_Glyph_To_Bitmap( &amp;glyph, FT_RENDER_MODE_NORMAL,
1674                                   0, 1 );
1675     if ( error ) // `glyph&#39; unchanged
1676       ...
1677   }
1678
1679   // access bitmap content by typecasting
1680   glyph_bitmap = (FT_BitmapGlyph)glyph;
1681
1682   // do funny stuff with it, like blitting/drawing
1683   ...
1684
1685   // discard glyph image (bitmap or not)
1686   FT_Done_Glyph( glyph );
1687 </code></pre></div></p>
1688 <p>Here is another example, again without error handling:
1689 <div class="highlight"><pre><span></span><code>  FT_Glyph  glyphs[MAX_GLYPHS]
1690
1691
1692   ...
1693
1694   for ( idx = 0; i &lt; MAX_GLYPHS; i++ )
1695     error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) ||
1696             FT_Get_Glyph ( face-&gt;glyph, &amp;glyphs[idx] );
1697
1698   ...
1699
1700   for ( idx = 0; i &lt; MAX_GLYPHS; i++ )
1701   {
1702     FT_Glyph  bitmap = glyphs[idx];
1703
1704
1705     ...
1706
1707     // after this call, `bitmap&#39; no longer points into
1708     // the `glyphs&#39; array (and the old value isn&#39;t destroyed)
1709     FT_Glyph_To_Bitmap( &amp;bitmap, FT_RENDER_MODE_MONO, 0, 0 );
1710
1711     ...
1712
1713     FT_Done_Glyph( bitmap );
1714   }
1715
1716   ...
1717
1718   for ( idx = 0; i &lt; MAX_GLYPHS; i++ )
1719     FT_Done_Glyph( glyphs[idx] );
1720 </code></pre></div></p>
1721 <hr>
1722
1723 <h2 id="ft_done_glyph">FT_Done_Glyph<a class="headerlink" href="#ft_done_glyph" title="Permanent link">&para;</a></h2>
1724 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
1725 <div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1726   <b>FT_Done_Glyph</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>  glyph );
1727 </code></pre></div>
1728
1729 <p>Destroy a given glyph.</p>
1730 <h4>input</h4>
1731
1732 <table class="fields">
1733 <tr><td class="val" id="glyph">glyph</td><td class="desc">
1734 <p>A handle to the target glyph object.</p>
1735 </td></tr>
1736 </table>
1737
1738 <hr>
1739                 
1740                   
1741                 
1742                 
1743               
1744               
1745                 
1746
1747
1748               
1749             </article>
1750           </div>
1751         </div>
1752       </main>
1753       
1754         
1755 <footer class="md-footer">
1756   
1757     <div class="md-footer-nav">
1758       <nav class="md-footer-nav__inner md-grid">
1759         
1760           <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
1761             <div class="md-flex__cell md-flex__cell--shrink">
1762               <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
1763             </div>
1764             <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1765               <span class="md-flex__ellipsis">
1766                 <span class="md-footer-nav__direction">
1767                   Previous
1768                 </span>
1769                 Glyph Layer Management
1770               </span>
1771             </div>
1772           </a>
1773         
1774         
1775           <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
1776             <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1777               <span class="md-flex__ellipsis">
1778                 <span class="md-footer-nav__direction">
1779                   Next
1780                 </span>
1781                 Mac Specific Interface
1782               </span>
1783             </div>
1784             <div class="md-flex__cell md-flex__cell--shrink">
1785               <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
1786             </div>
1787           </a>
1788         
1789       </nav>
1790     </div>
1791   
1792   <div class="md-footer-meta md-typeset">
1793     <div class="md-footer-meta__inner md-grid">
1794       <div class="md-footer-copyright">
1795         
1796           <div class="md-footer-copyright__highlight">
1797             Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1798           </div>
1799         
1800         powered by
1801         <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
1802         and
1803         <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1804           Material for MkDocs</a>
1805       </div>
1806       
1807     </div>
1808   </div>
1809 </footer>
1810       
1811     </div>
1812     
1813       <script src="assets/javascripts/application.c33a9706.js"></script>
1814       
1815       <script>app.initialize({version:"1.1",url:{base:"."}})</script>
1816       
1817         <script src="javascripts/extra.js"></script>
1818       
1819     
1820   </body>
1821 </html>