Imported Upstream version 2.10.1
[platform/upstream/freetype2.git] / docs / reference / ft2-layer_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 Layer 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-layer-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 Layer 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
340
341   <li class="md-nav__item md-nav__item--active">
342     
343     <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
344     
345       
346     
347     
348       <label class="md-nav__link md-nav__link--active" for="__toc">
349         Glyph Layer Management
350       </label>
351     
352     <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-nav__link md-nav__link--active">
353       Glyph Layer Management
354     </a>
355     
356       
357 <nav class="md-nav md-nav--secondary">
358   
359   
360     
361   
362   
363     <label class="md-nav__title" for="__toc">Table of contents</label>
364     <ul class="md-nav__list" data-md-scrollfix>
365       
366         <li class="md-nav__item">
367   <a href="#synopsis" class="md-nav__link">
368     Synopsis
369   </a>
370   
371 </li>
372       
373         <li class="md-nav__item">
374   <a href="#ft_layeriterator" class="md-nav__link">
375     FT_LayerIterator
376   </a>
377   
378 </li>
379       
380         <li class="md-nav__item">
381   <a href="#ft_get_color_glyph_layer" class="md-nav__link">
382     FT_Get_Color_Glyph_Layer
383   </a>
384   
385 </li>
386       
387       
388       
389       
390       
391     </ul>
392   
393 </nav>
394     
395   </li>
396
397         
398           
399           
400           
401
402
403   <li class="md-nav__item">
404     <a href="ft2-glyph_management.html" title="Glyph Management" class="md-nav__link">
405       Glyph Management
406     </a>
407   </li>
408
409         
410           
411           
412           
413
414
415   <li class="md-nav__item">
416     <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-nav__link">
417       Mac Specific Interface
418     </a>
419   </li>
420
421         
422           
423           
424           
425
426
427   <li class="md-nav__item">
428     <a href="ft2-sizes_management.html" title="Size Management" class="md-nav__link">
429       Size Management
430     </a>
431   </li>
432
433         
434           
435           
436           
437
438
439   <li class="md-nav__item">
440     <a href="ft2-header_file_macros.html" title="Header File Macros" class="md-nav__link">
441       Header File Macros
442     </a>
443   </li>
444
445         
446       </ul>
447     </nav>
448   </li>
449
450     
451       
452       
453       
454
455
456   <li class="md-nav__item md-nav__item--nested">
457     
458       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
459     
460     <label class="md-nav__link" for="nav-5">
461       Format-Specific API
462     </label>
463     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
464       <label class="md-nav__title" for="nav-5">
465         Format-Specific API
466       </label>
467       <ul class="md-nav__list" data-md-scrollfix>
468         
469         
470           
471           
472           
473
474
475   <li class="md-nav__item">
476     <a href="ft2-multiple_masters.html" title="Multiple Masters" class="md-nav__link">
477       Multiple Masters
478     </a>
479   </li>
480
481         
482           
483           
484           
485
486
487   <li class="md-nav__item">
488     <a href="ft2-truetype_tables.html" title="TrueType Tables" class="md-nav__link">
489       TrueType Tables
490     </a>
491   </li>
492
493         
494           
495           
496           
497
498
499   <li class="md-nav__item">
500     <a href="ft2-type1_tables.html" title="Type 1 Tables" class="md-nav__link">
501       Type 1 Tables
502     </a>
503   </li>
504
505         
506           
507           
508           
509
510
511   <li class="md-nav__item">
512     <a href="ft2-sfnt_names.html" title="SFNT Names" class="md-nav__link">
513       SFNT Names
514     </a>
515   </li>
516
517         
518           
519           
520           
521
522
523   <li class="md-nav__item">
524     <a href="ft2-bdf_fonts.html" title="BDF and PCF Files" class="md-nav__link">
525       BDF and PCF Files
526     </a>
527   </li>
528
529         
530           
531           
532           
533
534
535   <li class="md-nav__item">
536     <a href="ft2-cid_fonts.html" title="CID Fonts" class="md-nav__link">
537       CID Fonts
538     </a>
539   </li>
540
541         
542           
543           
544           
545
546
547   <li class="md-nav__item">
548     <a href="ft2-pfr_fonts.html" title="PFR Fonts" class="md-nav__link">
549       PFR Fonts
550     </a>
551   </li>
552
553         
554           
555           
556           
557
558
559   <li class="md-nav__item">
560     <a href="ft2-winfnt_fonts.html" title="Window FNT Files" class="md-nav__link">
561       Window FNT Files
562     </a>
563   </li>
564
565         
566           
567           
568           
569
570
571   <li class="md-nav__item">
572     <a href="ft2-font_formats.html" title="Font Formats" class="md-nav__link">
573       Font Formats
574     </a>
575   </li>
576
577         
578           
579           
580           
581
582
583   <li class="md-nav__item">
584     <a href="ft2-gasp_table.html" title="Gasp Table" class="md-nav__link">
585       Gasp Table
586     </a>
587   </li>
588
589         
590       </ul>
591     </nav>
592   </li>
593
594     
595       
596       
597       
598
599
600   <li class="md-nav__item md-nav__item--nested">
601     
602       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
603     
604     <label class="md-nav__link" for="nav-6">
605       Controlling FreeType Modules
606     </label>
607     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
608       <label class="md-nav__title" for="nav-6">
609         Controlling FreeType Modules
610       </label>
611       <ul class="md-nav__list" data-md-scrollfix>
612         
613         
614           
615           
616           
617
618
619   <li class="md-nav__item">
620     <a href="ft2-auto_hinter.html" title="The auto-hinter" class="md-nav__link">
621       The auto-hinter
622     </a>
623   </li>
624
625         
626           
627           
628           
629
630
631   <li class="md-nav__item">
632     <a href="ft2-cff_driver.html" title="The CFF driver" class="md-nav__link">
633       The CFF driver
634     </a>
635   </li>
636
637         
638           
639           
640           
641
642
643   <li class="md-nav__item">
644     <a href="ft2-t1_cid_driver.html" title="The Type 1 and CID drivers" class="md-nav__link">
645       The Type 1 and CID drivers
646     </a>
647   </li>
648
649         
650           
651           
652           
653
654
655   <li class="md-nav__item">
656     <a href="ft2-tt_driver.html" title="The TrueType driver" class="md-nav__link">
657       The TrueType driver
658     </a>
659   </li>
660
661         
662           
663           
664           
665
666
667   <li class="md-nav__item">
668     <a href="ft2-pcf_driver.html" title="The PCF driver" class="md-nav__link">
669       The PCF driver
670     </a>
671   </li>
672
673         
674           
675           
676           
677
678
679   <li class="md-nav__item">
680     <a href="ft2-properties.html" title="Driver properties" class="md-nav__link">
681       Driver properties
682     </a>
683   </li>
684
685         
686           
687           
688           
689
690
691   <li class="md-nav__item">
692     <a href="ft2-parameter_tags.html" title="Parameter Tags" class="md-nav__link">
693       Parameter Tags
694     </a>
695   </li>
696
697         
698           
699           
700           
701
702
703   <li class="md-nav__item">
704     <a href="ft2-lcd_rendering.html" title="Subpixel Rendering" class="md-nav__link">
705       Subpixel Rendering
706     </a>
707   </li>
708
709         
710       </ul>
711     </nav>
712   </li>
713
714     
715       
716       
717       
718
719
720   <li class="md-nav__item md-nav__item--nested">
721     
722       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
723     
724     <label class="md-nav__link" for="nav-7">
725       Cache Sub-System
726     </label>
727     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
728       <label class="md-nav__title" for="nav-7">
729         Cache Sub-System
730       </label>
731       <ul class="md-nav__list" data-md-scrollfix>
732         
733         
734           
735           
736           
737
738
739   <li class="md-nav__item">
740     <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-nav__link">
741       Cache Sub-System
742     </a>
743   </li>
744
745         
746       </ul>
747     </nav>
748   </li>
749
750     
751       
752       
753       
754
755
756   <li class="md-nav__item md-nav__item--nested">
757     
758       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8">
759     
760     <label class="md-nav__link" for="nav-8">
761       Support API
762     </label>
763     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
764       <label class="md-nav__title" for="nav-8">
765         Support API
766       </label>
767       <ul class="md-nav__list" data-md-scrollfix>
768         
769         
770           
771           
772           
773
774
775   <li class="md-nav__item">
776     <a href="ft2-computations.html" title="Computations" class="md-nav__link">
777       Computations
778     </a>
779   </li>
780
781         
782           
783           
784           
785
786
787   <li class="md-nav__item">
788     <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link">
789       List Processing
790     </a>
791   </li>
792
793         
794           
795           
796           
797
798
799   <li class="md-nav__item">
800     <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link">
801       Outline Processing
802     </a>
803   </li>
804
805         
806           
807           
808           
809
810
811   <li class="md-nav__item">
812     <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link">
813       Quick retrieval of advance values
814     </a>
815   </li>
816
817         
818           
819           
820           
821
822
823   <li class="md-nav__item">
824     <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link">
825       Bitmap Handling
826     </a>
827   </li>
828
829         
830           
831           
832           
833
834
835   <li class="md-nav__item">
836     <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link">
837       Scanline Converter
838     </a>
839   </li>
840
841         
842           
843           
844           
845
846
847   <li class="md-nav__item">
848     <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link">
849       Glyph Stroker
850     </a>
851   </li>
852
853         
854           
855           
856           
857
858
859   <li class="md-nav__item">
860     <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link">
861       System Interface
862     </a>
863   </li>
864
865         
866           
867           
868           
869
870
871   <li class="md-nav__item">
872     <a href="ft2-module_management.html" title="Module Management" class="md-nav__link">
873       Module Management
874     </a>
875   </li>
876
877         
878           
879           
880           
881
882
883   <li class="md-nav__item">
884     <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link">
885       GZIP Streams
886     </a>
887   </li>
888
889         
890           
891           
892           
893
894
895   <li class="md-nav__item">
896     <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link">
897       LZW Streams
898     </a>
899   </li>
900
901         
902           
903           
904           
905
906
907   <li class="md-nav__item">
908     <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link">
909       BZIP2 Streams
910     </a>
911   </li>
912
913         
914       </ul>
915     </nav>
916   </li>
917
918     
919       
920       
921       
922
923
924   <li class="md-nav__item md-nav__item--nested">
925     
926       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
927     
928     <label class="md-nav__link" for="nav-9">
929       Error Codes
930     </label>
931     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
932       <label class="md-nav__title" for="nav-9">
933         Error Codes
934       </label>
935       <ul class="md-nav__list" data-md-scrollfix>
936         
937         
938           
939           
940           
941
942
943   <li class="md-nav__item">
944     <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link">
945       Error Enumerations
946     </a>
947   </li>
948
949         
950           
951           
952           
953
954
955   <li class="md-nav__item">
956     <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link">
957       Error Code Values
958     </a>
959   </li>
960
961         
962       </ul>
963     </nav>
964   </li>
965
966     
967       
968       
969       
970
971
972   <li class="md-nav__item md-nav__item--nested">
973     
974       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10">
975     
976     <label class="md-nav__link" for="nav-10">
977       Miscellaneous
978     </label>
979     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
980       <label class="md-nav__title" for="nav-10">
981         Miscellaneous
982       </label>
983       <ul class="md-nav__list" data-md-scrollfix>
984         
985         
986           
987           
988           
989
990
991   <li class="md-nav__item">
992     <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link">
993       TrueTypeGX/AAT Validation
994     </a>
995   </li>
996
997         
998           
999           
1000           
1001
1002
1003   <li class="md-nav__item">
1004     <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
1005       Incremental Loading
1006     </a>
1007   </li>
1008
1009         
1010           
1011           
1012           
1013
1014
1015   <li class="md-nav__item">
1016     <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
1017       The TrueType Engine
1018     </a>
1019   </li>
1020
1021         
1022           
1023           
1024           
1025
1026
1027   <li class="md-nav__item">
1028     <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
1029       OpenType Validation
1030     </a>
1031   </li>
1032
1033         
1034       </ul>
1035     </nav>
1036   </li>
1037
1038     
1039   </ul>
1040 </nav>
1041                   </div>
1042                 </div>
1043               </div>
1044             
1045             
1046               <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
1047                 <div class="md-sidebar__scrollwrap">
1048                   <div class="md-sidebar__inner">
1049                     
1050 <nav class="md-nav md-nav--secondary">
1051   
1052   
1053     
1054   
1055   
1056     <label class="md-nav__title" for="__toc">Table of contents</label>
1057     <ul class="md-nav__list" data-md-scrollfix>
1058       
1059         <li class="md-nav__item">
1060   <a href="#synopsis" class="md-nav__link">
1061     Synopsis
1062   </a>
1063   
1064 </li>
1065       
1066         <li class="md-nav__item">
1067   <a href="#ft_layeriterator" class="md-nav__link">
1068     FT_LayerIterator
1069   </a>
1070   
1071 </li>
1072       
1073         <li class="md-nav__item">
1074   <a href="#ft_get_color_glyph_layer" class="md-nav__link">
1075     FT_Get_Color_Glyph_Layer
1076   </a>
1077   
1078 </li>
1079       
1080       
1081       
1082       
1083       
1084     </ul>
1085   
1086 </nav>
1087                   </div>
1088                 </div>
1089               </div>
1090             
1091           
1092           <div class="md-content">
1093             <article class="md-content__inner md-typeset">
1094               
1095                 
1096                 
1097                 <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 Layer Management</p>
1098 <hr />
1099 <h1 id="glyph-layer-management">Glyph Layer Management<a class="headerlink" href="#glyph-layer-management" title="Permanent link">&para;</a></h1>
1100 <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1101 <p>The functions described here allow access of colored glyph layer data in OpenType's &lsquo;COLR&rsquo; tables.</p>
1102 <h2 id="ft_layeriterator">FT_LayerIterator<a class="headerlink" href="#ft_layeriterator" title="Permanent link">&para;</a></h2>
1103 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1104 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_LayerIterator_
1105   {
1106     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>   num_layers;
1107     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>   layer;
1108     <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>*  p;
1109
1110   } <b>FT_LayerIterator</b>;
1111 </code></pre></div>
1112
1113 <p>This iterator object is needed for <code><a href="ft2-layer_management.html#ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer</a></code>.</p>
1114 <h4>fields</h4>
1115
1116 <table class="fields">
1117 <tr><td class="val" id="num_layers">num_layers</td><td class="desc">
1118 <p>The number of glyph layers for the requested glyph index. Will be set by <code><a href="ft2-layer_management.html#ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer</a></code>.</p>
1119 </td></tr>
1120 <tr><td class="val" id="layer">layer</td><td class="desc">
1121 <p>The current layer. Will be set by <code><a href="ft2-layer_management.html#ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer</a></code>.</p>
1122 </td></tr>
1123 <tr><td class="val" id="p">p</td><td class="desc">
1124 <p>An opaque pointer into &lsquo;COLR&rsquo; table data. The caller must set this to <code>NULL</code> before the first call of <code><a href="ft2-layer_management.html#ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer</a></code>.</p>
1125 </td></tr>
1126 </table>
1127
1128 <hr>
1129
1130 <h2 id="ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer<a class="headerlink" href="#ft_get_color_glyph_layer" title="Permanent link">&para;</a></h2>
1131 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
1132 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> )
1133   <b>FT_Get_Color_Glyph_Layer</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a>            face,
1134                             <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>            base_glyph,
1135                             <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>           *aglyph_index,
1136                             <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>           *acolor_index,
1137                             <a href="ft2-layer_management.html#ft_layeriterator">FT_LayerIterator</a>*  iterator );
1138 </code></pre></div>
1139
1140 <p>This is an interface to the &lsquo;COLR&rsquo; table in OpenType fonts to iteratively retrieve the colored glyph layers associated with the current glyph slot.</p>
1141 <p><a href="https://docs.microsoft.com/en-us/typography/opentype/spec/colr">https://docs.microsoft.com/en-us/typography/opentype/spec/colr</a></p>
1142 <p>The glyph layer data for a given glyph index, if present, provides an alternative, multi-color glyph representation: Instead of rendering the outline or bitmap with the given glyph index, glyphs with the indices and colors returned by this function are rendered layer by layer.</p>
1143 <p>The returned elements are ordered in the z&nbsp;direction from bottom to top; the 'n'th element should be rendered with the associated palette color and blended on top of the already rendered layers (elements 0, 1, ..., n-1).</p>
1144 <h4>input</h4>
1145
1146 <table class="fields">
1147 <tr><td class="val" id="face">face</td><td class="desc">
1148 <p>A handle to the parent face object.</p>
1149 </td></tr>
1150 <tr><td class="val" id="base_glyph">base_glyph</td><td class="desc">
1151 <p>The glyph index the colored glyph layers are associated with.</p>
1152 </td></tr>
1153 </table>
1154
1155 <h4>inout</h4>
1156
1157 <table class="fields">
1158 <tr><td class="val" id="iterator">iterator</td><td class="desc">
1159 <p>An <code><a href="ft2-layer_management.html#ft_layeriterator">FT_LayerIterator</a></code> object. For the first call you should set <code>iterator-&gt;p</code> to <code>NULL</code>. For all following calls, simply use the same object again.</p>
1160 </td></tr>
1161 </table>
1162
1163 <h4>output</h4>
1164
1165 <table class="fields">
1166 <tr><td class="val" id="aglyph_index">aglyph_index</td><td class="desc">
1167 <p>The glyph index of the current layer.</p>
1168 </td></tr>
1169 <tr><td class="val" id="acolor_index">acolor_index</td><td class="desc">
1170 <p>The color index into the font face's color palette of the current layer. The value 0xFFFF is special; it doesn't reference a palette entry but indicates that the text foreground color should be used instead (to be set up by the application outside of FreeType).</p>
1171 <p>The color palette can be retrieved with <code><a href="ft2-color_management.html#ft_palette_select">FT_Palette_Select</a></code>.</p>
1172 </td></tr>
1173 </table>
1174
1175 <h4>return</h4>
1176
1177 <p>Value&nbsp;1 if everything is OK. If there are no more layers (or if there are no layers at all), value&nbsp;0 gets returned. In case of an error, value&nbsp;0 is returned also.</p>
1178 <h4>note</h4>
1179
1180 <p>This function is necessary if you want to handle glyph layers by yourself. In particular, functions that operate with <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code> objects (like <code><a href="ft2-glyph_management.html#ft_get_glyph">FT_Get_Glyph</a></code> or <code><a href="ft2-glyph_management.html#ft_glyph_to_bitmap">FT_Glyph_To_Bitmap</a></code>) don't have access to this information.</p>
1181 <p>Note that <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code> is able to handle colored glyph layers automatically if the <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code> flag is passed to a previous call to <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code>. [This is an experimental feature.]</p>
1182 <h4>example</h4>
1183
1184 <div class="highlight"><pre><span></span><code>  FT_Color*         palette;
1185   FT_LayerIterator  iterator;
1186
1187   FT_Bool  have_layers;
1188   FT_UInt  layer_glyph_index;
1189   FT_UInt  layer_color_index;
1190
1191
1192   error = FT_Palette_Select( face, palette_index, &amp;palette );
1193   if ( error )
1194     palette = NULL;
1195
1196   iterator.p  = NULL;
1197   have_layers = FT_Get_Color_Glyph_Layer( face,
1198                                           glyph_index,
1199                                           &amp;layer_glyph_index,
1200                                           &amp;layer_color_index,
1201                                           &amp;iterator );
1202
1203   if ( palette &amp;&amp; have_layers )
1204   {
1205     do
1206     {
1207       FT_Color  layer_color;
1208
1209
1210       if ( layer_color_index == 0xFFFF )
1211         layer_color = text_foreground_color;
1212       else
1213         layer_color = palette[layer_color_index];
1214
1215       // Load and render glyph `layer_glyph_index&#39;, then
1216       // blend resulting pixmap (using color `layer_color&#39;)
1217       // with previously created pixmaps.
1218
1219     } while ( FT_Get_Color_Glyph_Layer( face,
1220                                         glyph_index,
1221                                         &amp;layer_glyph_index,
1222                                         &amp;layer_color_index,
1223                                         &amp;iterator ) );
1224   }
1225 </code></pre></div>
1226
1227 <hr>
1228                 
1229                   
1230                 
1231                 
1232               
1233               
1234                 
1235
1236
1237               
1238             </article>
1239           </div>
1240         </div>
1241       </main>
1242       
1243         
1244 <footer class="md-footer">
1245   
1246     <div class="md-footer-nav">
1247       <nav class="md-footer-nav__inner md-grid">
1248         
1249           <a href="ft2-color_management.html" title="Glyph Color Management" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
1250             <div class="md-flex__cell md-flex__cell--shrink">
1251               <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
1252             </div>
1253             <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1254               <span class="md-flex__ellipsis">
1255                 <span class="md-footer-nav__direction">
1256                   Previous
1257                 </span>
1258                 Glyph Color Management
1259               </span>
1260             </div>
1261           </a>
1262         
1263         
1264           <a href="ft2-glyph_management.html" title="Glyph Management" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
1265             <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1266               <span class="md-flex__ellipsis">
1267                 <span class="md-footer-nav__direction">
1268                   Next
1269                 </span>
1270                 Glyph Management
1271               </span>
1272             </div>
1273             <div class="md-flex__cell md-flex__cell--shrink">
1274               <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
1275             </div>
1276           </a>
1277         
1278       </nav>
1279     </div>
1280   
1281   <div class="md-footer-meta md-typeset">
1282     <div class="md-footer-meta__inner md-grid">
1283       <div class="md-footer-copyright">
1284         
1285           <div class="md-footer-copyright__highlight">
1286             Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1287           </div>
1288         
1289         powered by
1290         <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
1291         and
1292         <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1293           Material for MkDocs</a>
1294       </div>
1295       
1296     </div>
1297   </div>
1298 </footer>
1299       
1300     </div>
1301     
1302       <script src="assets/javascripts/application.c33a9706.js"></script>
1303       
1304       <script>app.initialize({version:"1.1",url:{base:"."}})</script>
1305       
1306         <script src="javascripts/extra.js"></script>
1307       
1308     
1309   </body>
1310 </html>