c09851bab738279730572ba5b9b1c5083a9f74ac
[platform/upstream/freetype2.git] / docs / reference / ft2-incremental.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>Incremental Loading - 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="#incremental-loading" 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                 Incremental Loading
119               
120             </span>
121           
122         </div>
123       </div>
124       <div class="md-flex__cell md-flex__cell--shrink">
125         
126           <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
127           
128 <div class="md-search" data-md-component="search" role="dialog">
129   <label class="md-search__overlay" for="__search"></label>
130   <div class="md-search__inner" role="search">
131     <form class="md-search__form" name="search">
132       <input type="text" class="md-search__input" aria-label="search" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
133       <label class="md-icon md-search__icon" for="__search"></label>
134       <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
135         &#xE5CD;
136       </button>
137     </form>
138     <div class="md-search__output">
139       <div class="md-search__scrollwrap" data-md-scrollfix>
140         <div class="md-search-result" data-md-component="result">
141           <div class="md-search-result__meta">
142             Type to start searching
143           </div>
144           <ol class="md-search-result__list"></ol>
145         </div>
146       </div>
147     </div>
148   </div>
149 </div>
150         
151       </div>
152       
153     </div>
154   </nav>
155 </header>
156     
157     <div class="md-container">
158       
159         
160       
161       
162       <main class="md-main" role="main">
163         <div class="md-main__inner md-grid" data-md-component="container">
164           
165             
166               <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
167                 <div class="md-sidebar__scrollwrap">
168                   <div class="md-sidebar__inner">
169                     <nav class="md-nav md-nav--primary" data-md-level="0">
170   <label class="md-nav__title md-nav__title--site" for="__drawer">
171     <a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
172       
173         <img alt="logo" src="images/favico.ico" width="48" height="48">
174       
175     </a>
176     FreeType-2.10.4 API Reference
177   </label>
178   
179   <ul class="md-nav__list" data-md-scrollfix>
180     
181       
182       
183       
184
185
186   <li class="md-nav__item">
187     <a href="index.html" title="TOC" class="md-nav__link">
188       TOC
189     </a>
190   </li>
191
192     
193       
194       
195       
196
197
198   <li class="md-nav__item">
199     <a href="ft2-index.html" title="Index" class="md-nav__link">
200       Index
201     </a>
202   </li>
203
204     
205       
206       
207       
208
209
210   <li class="md-nav__item md-nav__item--nested">
211     
212       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
213     
214     <label class="md-nav__link" for="nav-3">
215       General Remarks
216     </label>
217     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
218       <label class="md-nav__title" for="nav-3">
219         General Remarks
220       </label>
221       <ul class="md-nav__list" data-md-scrollfix>
222         
223         
224           
225           
226           
227
228
229   <li class="md-nav__item">
230     <a href="ft2-header_inclusion.html" title="FreeType's header inclusion scheme" class="md-nav__link">
231       FreeType's header inclusion scheme
232     </a>
233   </li>
234
235         
236           
237           
238           
239
240
241   <li class="md-nav__item">
242     <a href="ft2-user_allocation.html" title="User allocation" class="md-nav__link">
243       User allocation
244     </a>
245   </li>
246
247         
248       </ul>
249     </nav>
250   </li>
251
252     
253       
254       
255       
256
257
258   <li class="md-nav__item md-nav__item--nested">
259     
260       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
261     
262     <label class="md-nav__link" for="nav-4">
263       Core API
264     </label>
265     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
266       <label class="md-nav__title" for="nav-4">
267         Core API
268       </label>
269       <ul class="md-nav__list" data-md-scrollfix>
270         
271         
272           
273           
274           
275
276
277   <li class="md-nav__item">
278     <a href="ft2-version.html" title="FreeType Version" class="md-nav__link">
279       FreeType Version
280     </a>
281   </li>
282
283         
284           
285           
286           
287
288
289   <li class="md-nav__item">
290     <a href="ft2-basic_types.html" title="Basic Data Types" class="md-nav__link">
291       Basic Data Types
292     </a>
293   </li>
294
295         
296           
297           
298           
299
300
301   <li class="md-nav__item">
302     <a href="ft2-base_interface.html" title="Base Interface" class="md-nav__link">
303       Base Interface
304     </a>
305   </li>
306
307         
308           
309           
310           
311
312
313   <li class="md-nav__item">
314     <a href="ft2-glyph_variants.html" title="Unicode Variation Sequences" class="md-nav__link">
315       Unicode Variation Sequences
316     </a>
317   </li>
318
319         
320           
321           
322           
323
324
325   <li class="md-nav__item">
326     <a href="ft2-color_management.html" title="Glyph Color Management" class="md-nav__link">
327       Glyph Color Management
328     </a>
329   </li>
330
331         
332           
333           
334           
335
336
337   <li class="md-nav__item">
338     <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-nav__link">
339       Glyph Layer Management
340     </a>
341   </li>
342
343         
344           
345           
346           
347
348
349   <li class="md-nav__item">
350     <a href="ft2-glyph_management.html" title="Glyph Management" class="md-nav__link">
351       Glyph Management
352     </a>
353   </li>
354
355         
356           
357           
358           
359
360
361   <li class="md-nav__item">
362     <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-nav__link">
363       Mac Specific Interface
364     </a>
365   </li>
366
367         
368           
369           
370           
371
372
373   <li class="md-nav__item">
374     <a href="ft2-sizes_management.html" title="Size Management" class="md-nav__link">
375       Size Management
376     </a>
377   </li>
378
379         
380           
381           
382           
383
384
385   <li class="md-nav__item">
386     <a href="ft2-header_file_macros.html" title="Header File Macros" class="md-nav__link">
387       Header File Macros
388     </a>
389   </li>
390
391         
392       </ul>
393     </nav>
394   </li>
395
396     
397       
398       
399       
400
401
402   <li class="md-nav__item md-nav__item--nested">
403     
404       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
405     
406     <label class="md-nav__link" for="nav-5">
407       Format-Specific API
408     </label>
409     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
410       <label class="md-nav__title" for="nav-5">
411         Format-Specific API
412       </label>
413       <ul class="md-nav__list" data-md-scrollfix>
414         
415         
416           
417           
418           
419
420
421   <li class="md-nav__item">
422     <a href="ft2-multiple_masters.html" title="Multiple Masters" class="md-nav__link">
423       Multiple Masters
424     </a>
425   </li>
426
427         
428           
429           
430           
431
432
433   <li class="md-nav__item">
434     <a href="ft2-truetype_tables.html" title="TrueType Tables" class="md-nav__link">
435       TrueType Tables
436     </a>
437   </li>
438
439         
440           
441           
442           
443
444
445   <li class="md-nav__item">
446     <a href="ft2-type1_tables.html" title="Type 1 Tables" class="md-nav__link">
447       Type 1 Tables
448     </a>
449   </li>
450
451         
452           
453           
454           
455
456
457   <li class="md-nav__item">
458     <a href="ft2-sfnt_names.html" title="SFNT Names" class="md-nav__link">
459       SFNT Names
460     </a>
461   </li>
462
463         
464           
465           
466           
467
468
469   <li class="md-nav__item">
470     <a href="ft2-bdf_fonts.html" title="BDF and PCF Files" class="md-nav__link">
471       BDF and PCF Files
472     </a>
473   </li>
474
475         
476           
477           
478           
479
480
481   <li class="md-nav__item">
482     <a href="ft2-cid_fonts.html" title="CID Fonts" class="md-nav__link">
483       CID Fonts
484     </a>
485   </li>
486
487         
488           
489           
490           
491
492
493   <li class="md-nav__item">
494     <a href="ft2-pfr_fonts.html" title="PFR Fonts" class="md-nav__link">
495       PFR Fonts
496     </a>
497   </li>
498
499         
500           
501           
502           
503
504
505   <li class="md-nav__item">
506     <a href="ft2-winfnt_fonts.html" title="Window FNT Files" class="md-nav__link">
507       Window FNT Files
508     </a>
509   </li>
510
511         
512           
513           
514           
515
516
517   <li class="md-nav__item">
518     <a href="ft2-font_formats.html" title="Font Formats" class="md-nav__link">
519       Font Formats
520     </a>
521   </li>
522
523         
524           
525           
526           
527
528
529   <li class="md-nav__item">
530     <a href="ft2-gasp_table.html" title="Gasp Table" class="md-nav__link">
531       Gasp Table
532     </a>
533   </li>
534
535         
536       </ul>
537     </nav>
538   </li>
539
540     
541       
542       
543       
544
545
546   <li class="md-nav__item md-nav__item--nested">
547     
548       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
549     
550     <label class="md-nav__link" for="nav-6">
551       Controlling FreeType Modules
552     </label>
553     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
554       <label class="md-nav__title" for="nav-6">
555         Controlling FreeType Modules
556       </label>
557       <ul class="md-nav__list" data-md-scrollfix>
558         
559         
560           
561           
562           
563
564
565   <li class="md-nav__item">
566     <a href="ft2-auto_hinter.html" title="The auto-hinter" class="md-nav__link">
567       The auto-hinter
568     </a>
569   </li>
570
571         
572           
573           
574           
575
576
577   <li class="md-nav__item">
578     <a href="ft2-cff_driver.html" title="The CFF driver" class="md-nav__link">
579       The CFF driver
580     </a>
581   </li>
582
583         
584           
585           
586           
587
588
589   <li class="md-nav__item">
590     <a href="ft2-t1_cid_driver.html" title="The Type 1 and CID drivers" class="md-nav__link">
591       The Type 1 and CID drivers
592     </a>
593   </li>
594
595         
596           
597           
598           
599
600
601   <li class="md-nav__item">
602     <a href="ft2-tt_driver.html" title="The TrueType driver" class="md-nav__link">
603       The TrueType driver
604     </a>
605   </li>
606
607         
608           
609           
610           
611
612
613   <li class="md-nav__item">
614     <a href="ft2-pcf_driver.html" title="The PCF driver" class="md-nav__link">
615       The PCF driver
616     </a>
617   </li>
618
619         
620           
621           
622           
623
624
625   <li class="md-nav__item">
626     <a href="ft2-properties.html" title="Driver properties" class="md-nav__link">
627       Driver properties
628     </a>
629   </li>
630
631         
632           
633           
634           
635
636
637   <li class="md-nav__item">
638     <a href="ft2-parameter_tags.html" title="Parameter Tags" class="md-nav__link">
639       Parameter Tags
640     </a>
641   </li>
642
643         
644           
645           
646           
647
648
649   <li class="md-nav__item">
650     <a href="ft2-lcd_rendering.html" title="Subpixel Rendering" class="md-nav__link">
651       Subpixel Rendering
652     </a>
653   </li>
654
655         
656       </ul>
657     </nav>
658   </li>
659
660     
661       
662       
663       
664
665
666   <li class="md-nav__item md-nav__item--nested">
667     
668       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
669     
670     <label class="md-nav__link" for="nav-7">
671       Cache Sub-System
672     </label>
673     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
674       <label class="md-nav__title" for="nav-7">
675         Cache Sub-System
676       </label>
677       <ul class="md-nav__list" data-md-scrollfix>
678         
679         
680           
681           
682           
683
684
685   <li class="md-nav__item">
686     <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-nav__link">
687       Cache Sub-System
688     </a>
689   </li>
690
691         
692       </ul>
693     </nav>
694   </li>
695
696     
697       
698       
699       
700
701
702   <li class="md-nav__item md-nav__item--nested">
703     
704       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8">
705     
706     <label class="md-nav__link" for="nav-8">
707       Support API
708     </label>
709     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
710       <label class="md-nav__title" for="nav-8">
711         Support API
712       </label>
713       <ul class="md-nav__list" data-md-scrollfix>
714         
715         
716           
717           
718           
719
720
721   <li class="md-nav__item">
722     <a href="ft2-computations.html" title="Computations" class="md-nav__link">
723       Computations
724     </a>
725   </li>
726
727         
728           
729           
730           
731
732
733   <li class="md-nav__item">
734     <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link">
735       List Processing
736     </a>
737   </li>
738
739         
740           
741           
742           
743
744
745   <li class="md-nav__item">
746     <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link">
747       Outline Processing
748     </a>
749   </li>
750
751         
752           
753           
754           
755
756
757   <li class="md-nav__item">
758     <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link">
759       Quick retrieval of advance values
760     </a>
761   </li>
762
763         
764           
765           
766           
767
768
769   <li class="md-nav__item">
770     <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link">
771       Bitmap Handling
772     </a>
773   </li>
774
775         
776           
777           
778           
779
780
781   <li class="md-nav__item">
782     <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link">
783       Scanline Converter
784     </a>
785   </li>
786
787         
788           
789           
790           
791
792
793   <li class="md-nav__item">
794     <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link">
795       Glyph Stroker
796     </a>
797   </li>
798
799         
800           
801           
802           
803
804
805   <li class="md-nav__item">
806     <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link">
807       System Interface
808     </a>
809   </li>
810
811         
812           
813           
814           
815
816
817   <li class="md-nav__item">
818     <a href="ft2-module_management.html" title="Module Management" class="md-nav__link">
819       Module Management
820     </a>
821   </li>
822
823         
824           
825           
826           
827
828
829   <li class="md-nav__item">
830     <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link">
831       GZIP Streams
832     </a>
833   </li>
834
835         
836           
837           
838           
839
840
841   <li class="md-nav__item">
842     <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link">
843       LZW Streams
844     </a>
845   </li>
846
847         
848           
849           
850           
851
852
853   <li class="md-nav__item">
854     <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link">
855       BZIP2 Streams
856     </a>
857   </li>
858
859         
860       </ul>
861     </nav>
862   </li>
863
864     
865       
866       
867       
868
869
870   <li class="md-nav__item md-nav__item--nested">
871     
872       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
873     
874     <label class="md-nav__link" for="nav-9">
875       Error Codes
876     </label>
877     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
878       <label class="md-nav__title" for="nav-9">
879         Error Codes
880       </label>
881       <ul class="md-nav__list" data-md-scrollfix>
882         
883         
884           
885           
886           
887
888
889   <li class="md-nav__item">
890     <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link">
891       Error Enumerations
892     </a>
893   </li>
894
895         
896           
897           
898           
899
900
901   <li class="md-nav__item">
902     <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link">
903       Error Code Values
904     </a>
905   </li>
906
907         
908       </ul>
909     </nav>
910   </li>
911
912     
913       
914       
915       
916
917   
918
919
920   <li class="md-nav__item md-nav__item--active md-nav__item--nested">
921     
922       <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10" checked>
923     
924     <label class="md-nav__link" for="nav-10">
925       Miscellaneous
926     </label>
927     <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
928       <label class="md-nav__title" for="nav-10">
929         Miscellaneous
930       </label>
931       <ul class="md-nav__list" data-md-scrollfix>
932         
933         
934           
935           
936           
937
938
939   <li class="md-nav__item">
940     <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link">
941       TrueTypeGX/AAT Validation
942     </a>
943   </li>
944
945         
946           
947           
948           
949
950   
951
952
953   <li class="md-nav__item md-nav__item--active">
954     
955     <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
956     
957       
958     
959     
960       <label class="md-nav__link md-nav__link--active" for="__toc">
961         Incremental Loading
962       </label>
963     
964     <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link md-nav__link--active">
965       Incremental Loading
966     </a>
967     
968       
969 <nav class="md-nav md-nav--secondary">
970   
971   
972     
973   
974   
975     <label class="md-nav__title" for="__toc">Table of contents</label>
976     <ul class="md-nav__list" data-md-scrollfix>
977       
978         <li class="md-nav__item">
979   <a href="#synopsis" class="md-nav__link">
980     Synopsis
981   </a>
982   
983 </li>
984       
985         <li class="md-nav__item">
986   <a href="#ft_incremental" class="md-nav__link">
987     FT_Incremental
988   </a>
989   
990 </li>
991       
992         <li class="md-nav__item">
993   <a href="#ft_incremental_metricsrec" class="md-nav__link">
994     FT_Incremental_MetricsRec
995   </a>
996   
997 </li>
998       
999         <li class="md-nav__item">
1000   <a href="#ft_incremental_metrics" class="md-nav__link">
1001     FT_Incremental_Metrics
1002   </a>
1003   
1004 </li>
1005       
1006         <li class="md-nav__item">
1007   <a href="#ft_incremental_getglyphdatafunc" class="md-nav__link">
1008     FT_Incremental_GetGlyphDataFunc
1009   </a>
1010   
1011 </li>
1012       
1013         <li class="md-nav__item">
1014   <a href="#ft_incremental_freeglyphdatafunc" class="md-nav__link">
1015     FT_Incremental_FreeGlyphDataFunc
1016   </a>
1017   
1018 </li>
1019       
1020         <li class="md-nav__item">
1021   <a href="#ft_incremental_getglyphmetricsfunc" class="md-nav__link">
1022     FT_Incremental_GetGlyphMetricsFunc
1023   </a>
1024   
1025 </li>
1026       
1027         <li class="md-nav__item">
1028   <a href="#ft_incremental_funcsrec" class="md-nav__link">
1029     FT_Incremental_FuncsRec
1030   </a>
1031   
1032 </li>
1033       
1034         <li class="md-nav__item">
1035   <a href="#ft_incremental_interfacerec" class="md-nav__link">
1036     FT_Incremental_InterfaceRec
1037   </a>
1038   
1039 </li>
1040       
1041         <li class="md-nav__item">
1042   <a href="#ft_incremental_interface" class="md-nav__link">
1043     FT_Incremental_Interface
1044   </a>
1045   
1046 </li>
1047       
1048       
1049       
1050       
1051       
1052     </ul>
1053   
1054 </nav>
1055     
1056   </li>
1057
1058         
1059           
1060           
1061           
1062
1063
1064   <li class="md-nav__item">
1065     <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
1066       The TrueType Engine
1067     </a>
1068   </li>
1069
1070         
1071           
1072           
1073           
1074
1075
1076   <li class="md-nav__item">
1077     <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
1078       OpenType Validation
1079     </a>
1080   </li>
1081
1082         
1083       </ul>
1084     </nav>
1085   </li>
1086
1087     
1088   </ul>
1089 </nav>
1090                   </div>
1091                 </div>
1092               </div>
1093             
1094             
1095               <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
1096                 <div class="md-sidebar__scrollwrap">
1097                   <div class="md-sidebar__inner">
1098                     
1099 <nav class="md-nav md-nav--secondary">
1100   
1101   
1102     
1103   
1104   
1105     <label class="md-nav__title" for="__toc">Table of contents</label>
1106     <ul class="md-nav__list" data-md-scrollfix>
1107       
1108         <li class="md-nav__item">
1109   <a href="#synopsis" class="md-nav__link">
1110     Synopsis
1111   </a>
1112   
1113 </li>
1114       
1115         <li class="md-nav__item">
1116   <a href="#ft_incremental" class="md-nav__link">
1117     FT_Incremental
1118   </a>
1119   
1120 </li>
1121       
1122         <li class="md-nav__item">
1123   <a href="#ft_incremental_metricsrec" class="md-nav__link">
1124     FT_Incremental_MetricsRec
1125   </a>
1126   
1127 </li>
1128       
1129         <li class="md-nav__item">
1130   <a href="#ft_incremental_metrics" class="md-nav__link">
1131     FT_Incremental_Metrics
1132   </a>
1133   
1134 </li>
1135       
1136         <li class="md-nav__item">
1137   <a href="#ft_incremental_getglyphdatafunc" class="md-nav__link">
1138     FT_Incremental_GetGlyphDataFunc
1139   </a>
1140   
1141 </li>
1142       
1143         <li class="md-nav__item">
1144   <a href="#ft_incremental_freeglyphdatafunc" class="md-nav__link">
1145     FT_Incremental_FreeGlyphDataFunc
1146   </a>
1147   
1148 </li>
1149       
1150         <li class="md-nav__item">
1151   <a href="#ft_incremental_getglyphmetricsfunc" class="md-nav__link">
1152     FT_Incremental_GetGlyphMetricsFunc
1153   </a>
1154   
1155 </li>
1156       
1157         <li class="md-nav__item">
1158   <a href="#ft_incremental_funcsrec" class="md-nav__link">
1159     FT_Incremental_FuncsRec
1160   </a>
1161   
1162 </li>
1163       
1164         <li class="md-nav__item">
1165   <a href="#ft_incremental_interfacerec" class="md-nav__link">
1166     FT_Incremental_InterfaceRec
1167   </a>
1168   
1169 </li>
1170       
1171         <li class="md-nav__item">
1172   <a href="#ft_incremental_interface" class="md-nav__link">
1173     FT_Incremental_Interface
1174   </a>
1175   
1176 </li>
1177       
1178       
1179       
1180       
1181       
1182     </ul>
1183   
1184 </nav>
1185                   </div>
1186                 </div>
1187               </div>
1188             
1189           
1190           <div class="md-content">
1191             <article class="md-content__inner md-typeset">
1192               
1193                 
1194                 
1195                 <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#miscellaneous">Miscellaneous</a> &raquo; Incremental Loading</p>
1196 <hr />
1197 <h1 id="incremental-loading">Incremental Loading<a class="headerlink" href="#incremental-loading" title="Permanent link">&para;</a></h1>
1198 <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1199 <p>This section contains various functions used to perform so-called &lsquo;incremental&rsquo; glyph loading. This is a mode where all glyphs loaded from a given <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> are provided by the client application.</p>
1200 <p>Apart from that, all other tables are loaded normally from the font file. This mode is useful when FreeType is used within another engine, e.g., a PostScript Imaging Processor.</p>
1201 <p>To enable this mode, you must use <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>, passing an <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> with the <code><a href="ft2-parameter_tags.html#ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL</a></code> tag and an <code><a href="ft2-incremental.html#ft_incremental_interface">FT_Incremental_Interface</a></code> value. See the comments for <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code> for an example.</p>
1202 <h2 id="ft_incremental">FT_Incremental<a class="headerlink" href="#ft_incremental" title="Permanent link">&para;</a></h2>
1203 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1204 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_IncrementalRec_*  <b>FT_Incremental</b>;
1205 </code></pre></div>
1206
1207 <p>An opaque type describing a user-provided object used to implement &lsquo;incremental&rsquo; glyph loading within FreeType. This is used to support embedded fonts in certain environments (e.g., PostScript interpreters), where the glyph data isn't in the font file, or must be overridden by different values.</p>
1208 <h4>note</h4>
1209
1210 <p>It is up to client applications to create and implement <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> objects, as long as they provide implementations for the methods <code><a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a></code>, <code><a href="ft2-incremental.html#ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc</a></code> and <code><a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a></code>.</p>
1211 <p>See the description of <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code> to understand how to use incremental objects with FreeType.</p>
1212 <hr>
1213
1214 <h2 id="ft_incremental_metricsrec">FT_Incremental_MetricsRec<a class="headerlink" href="#ft_incremental_metricsrec" title="Permanent link">&para;</a></h2>
1215 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1216 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Incremental_MetricsRec_
1217   {
1218     <a href="ft2-basic_types.html#ft_long">FT_Long</a>  bearing_x;
1219     <a href="ft2-basic_types.html#ft_long">FT_Long</a>  bearing_y;
1220     <a href="ft2-basic_types.html#ft_long">FT_Long</a>  advance;
1221     <a href="ft2-basic_types.html#ft_long">FT_Long</a>  advance_v;     /* since 2.3.12 */
1222
1223   } <b>FT_Incremental_MetricsRec</b>;
1224 </code></pre></div>
1225
1226 <p>A small structure used to contain the basic glyph metrics returned by the <code><a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a></code> method.</p>
1227 <h4>fields</h4>
1228
1229 <table class="fields">
1230 <tr><td class="val" id="bearing_x">bearing_x</td><td class="desc">
1231 <p>Left bearing, in font units.</p>
1232 </td></tr>
1233 <tr><td class="val" id="bearing_y">bearing_y</td><td class="desc">
1234 <p>Top bearing, in font units.</p>
1235 </td></tr>
1236 <tr><td class="val" id="advance">advance</td><td class="desc">
1237 <p>Horizontal component of glyph advance, in font units.</p>
1238 </td></tr>
1239 <tr><td class="val" id="advance_v">advance_v</td><td class="desc">
1240 <p>Vertical component of glyph advance, in font units.</p>
1241 </td></tr>
1242 </table>
1243
1244 <h4>note</h4>
1245
1246 <p>These correspond to horizontal or vertical metrics depending on the value of the <code>vertical</code> argument to the function <code><a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a></code>.</p>
1247 <hr>
1248
1249 <h2 id="ft_incremental_metrics">FT_Incremental_Metrics<a class="headerlink" href="#ft_incremental_metrics" title="Permanent link">&para;</a></h2>
1250 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1251 <div class = "codehilite"><pre><code>   <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Incremental_MetricsRec_*  <b>FT_Incremental_Metrics</b>;
1252 </code></pre></div>
1253
1254 <p>A handle to an <code><a href="ft2-incremental.html#ft_incremental_metricsrec">FT_Incremental_MetricsRec</a></code> structure.</p>
1255 <hr>
1256
1257 <h2 id="ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc<a class="headerlink" href="#ft_incremental_getglyphdatafunc" title="Permanent link">&para;</a></h2>
1258 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1259 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a>
1260   (*<b>FT_Incremental_GetGlyphDataFunc</b>)( <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a>  incremental,
1261                                       <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         glyph_index,
1262                                       <a href="ft2-basic_types.html#ft_data">FT_Data</a>*        adata );
1263 </code></pre></div>
1264
1265 <p>A function called by FreeType to access a given glyph's data bytes during <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> if incremental loading is enabled.</p>
1266 <p>Note that the format of the glyph's data bytes depends on the font file format. For TrueType, it must correspond to the raw bytes within the &lsquo;glyf&rsquo; table. For PostScript formats, it must correspond to the <strong>unencrypted</strong> charstring bytes, without any <code>lenIV</code> header. It is undefined for any other format.</p>
1267 <h4>input</h4>
1268
1269 <table class="fields">
1270 <tr><td class="val" id="incremental">incremental</td><td class="desc">
1271 <p>Handle to an opaque <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> handle provided by the client application.</p>
1272 </td></tr>
1273 <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
1274 <p>Index of relevant glyph.</p>
1275 </td></tr>
1276 </table>
1277
1278 <h4>output</h4>
1279
1280 <table class="fields">
1281 <tr><td class="val" id="adata">adata</td><td class="desc">
1282 <p>A structure describing the returned glyph data bytes (which will be accessed as a read-only byte block).</p>
1283 </td></tr>
1284 </table>
1285
1286 <h4>return</h4>
1287
1288 <p>FreeType error code. 0&nbsp;means success.</p>
1289 <h4>note</h4>
1290
1291 <p>If this function returns successfully the method <code><a href="ft2-incremental.html#ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc</a></code> will be called later to release the data bytes.</p>
1292 <p>Nested calls to <code><a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a></code> can happen for compound glyphs.</p>
1293 <hr>
1294
1295 <h2 id="ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc<a class="headerlink" href="#ft_incremental_freeglyphdatafunc" title="Permanent link">&para;</a></h2>
1296 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1297 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">void</span>
1298   (*<b>FT_Incremental_FreeGlyphDataFunc</b>)( <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a>  incremental,
1299                                        <a href="ft2-basic_types.html#ft_data">FT_Data</a>*        data );
1300 </code></pre></div>
1301
1302 <p>A function used to release the glyph data bytes returned by a successful call to <code><a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a></code>.</p>
1303 <h4>input</h4>
1304
1305 <table class="fields">
1306 <tr><td class="val" id="incremental">incremental</td><td class="desc">
1307 <p>A handle to an opaque <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> handle provided by the client application.</p>
1308 </td></tr>
1309 <tr><td class="val" id="data">data</td><td class="desc">
1310 <p>A structure describing the glyph data bytes (which will be accessed as a read-only byte block).</p>
1311 </td></tr>
1312 </table>
1313
1314 <hr>
1315
1316 <h2 id="ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc<a class="headerlink" href="#ft_incremental_getglyphmetricsfunc" title="Permanent link">&para;</a></h2>
1317 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1318 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a>
1319   (*<b>FT_Incremental_GetGlyphMetricsFunc</b>)
1320                       ( <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a>              incremental,
1321                         <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>                     glyph_index,
1322                         <a href="ft2-basic_types.html#ft_bool">FT_Bool</a>                     vertical,
1323                         <a href="ft2-incremental.html#ft_incremental_metricsrec">FT_Incremental_MetricsRec</a>  *ametrics );
1324 </code></pre></div>
1325
1326 <p>A function used to retrieve the basic metrics of a given glyph index before accessing its data. This is necessary because, in certain formats like TrueType, the metrics are stored in a different place from the glyph images proper.</p>
1327 <h4>input</h4>
1328
1329 <table class="fields">
1330 <tr><td class="val" id="incremental">incremental</td><td class="desc">
1331 <p>A handle to an opaque <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> handle provided by the client application.</p>
1332 </td></tr>
1333 <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
1334 <p>Index of relevant glyph.</p>
1335 </td></tr>
1336 <tr><td class="val" id="vertical">vertical</td><td class="desc">
1337 <p>If true, return vertical metrics.</p>
1338 </td></tr>
1339 <tr><td class="val" id="ametrics">ametrics</td><td class="desc">
1340 <p>This parameter is used for both input and output. The original glyph metrics, if any, in font units. If metrics are not available all the values must be set to zero.</p>
1341 </td></tr>
1342 </table>
1343
1344 <h4>output</h4>
1345
1346 <table class="fields">
1347 <tr><td class="val" id="ametrics">ametrics</td><td class="desc">
1348 <p>The replacement glyph metrics in font units.</p>
1349 </td></tr>
1350 </table>
1351
1352 <hr>
1353
1354 <h2 id="ft_incremental_funcsrec">FT_Incremental_FuncsRec<a class="headerlink" href="#ft_incremental_funcsrec" title="Permanent link">&para;</a></h2>
1355 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1356 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Incremental_FuncsRec_
1357   {
1358     <a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a>     get_glyph_data;
1359     <a href="ft2-incremental.html#ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc</a>    free_glyph_data;
1360     <a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a>  get_glyph_metrics;
1361
1362   } <b>FT_Incremental_FuncsRec</b>;
1363 </code></pre></div>
1364
1365 <p>A table of functions for accessing fonts that load data incrementally. Used in <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code>.</p>
1366 <h4>fields</h4>
1367
1368 <table class="fields">
1369 <tr><td class="val" id="get_glyph_data">get_glyph_data</td><td class="desc">
1370 <p>The function to get glyph data. Must not be null.</p>
1371 </td></tr>
1372 <tr><td class="val" id="free_glyph_data">free_glyph_data</td><td class="desc">
1373 <p>The function to release glyph data. Must not be null.</p>
1374 </td></tr>
1375 <tr><td class="val" id="get_glyph_metrics">get_glyph_metrics</td><td class="desc">
1376 <p>The function to get glyph metrics. May be null if the font does not provide overriding glyph metrics.</p>
1377 </td></tr>
1378 </table>
1379
1380 <hr>
1381
1382 <h2 id="ft_incremental_interfacerec">FT_Incremental_InterfaceRec<a class="headerlink" href="#ft_incremental_interfacerec" title="Permanent link">&para;</a></h2>
1383 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1384 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Incremental_InterfaceRec_
1385   {
1386     <span class="keyword">const</span> <a href="ft2-incremental.html#ft_incremental_funcsrec">FT_Incremental_FuncsRec</a>*  funcs;
1387     <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a>                  object;
1388
1389   } <b>FT_Incremental_InterfaceRec</b>;
1390 </code></pre></div>
1391
1392 <p>A structure to be used with <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to indicate that the user wants to support incremental glyph loading. You should use it with <code><a href="ft2-parameter_tags.html#ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL</a></code> as in the following example:
1393 <div class="highlight"><pre><span></span><code>  FT_Incremental_InterfaceRec  inc_int;
1394   FT_Parameter                 parameter;
1395   FT_Open_Args                 open_args;
1396
1397
1398   // set up incremental descriptor
1399   inc_int.funcs  = my_funcs;
1400   inc_int.object = my_object;
1401
1402   // set up optional parameter
1403   parameter.tag  = FT_PARAM_TAG_INCREMENTAL;
1404   parameter.data = &amp;inc_int;
1405
1406   // set up FT_Open_Args structure
1407   open_args.flags      = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
1408   open_args.pathname   = my_font_pathname;
1409   open_args.num_params = 1;
1410   open_args.params     = &amp;parameter; // we use one optional argument
1411
1412   // open the font
1413   error = FT_Open_Face( library, &amp;open_args, index, &amp;face );
1414   ...
1415 </code></pre></div></p>
1416 <hr>
1417
1418 <h2 id="ft_incremental_interface">FT_Incremental_Interface<a class="headerlink" href="#ft_incremental_interface" title="Permanent link">&para;</a></h2>
1419 <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
1420 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a>*   <b>FT_Incremental_Interface</b>;
1421 </code></pre></div>
1422
1423 <p>A pointer to an <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code> structure.</p>
1424 <hr>
1425                 
1426                   
1427                 
1428                 
1429               
1430               
1431                 
1432
1433
1434               
1435             </article>
1436           </div>
1437         </div>
1438       </main>
1439       
1440         
1441 <footer class="md-footer">
1442   
1443     <div class="md-footer-nav">
1444       <nav class="md-footer-nav__inner md-grid">
1445         
1446           <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
1447             <div class="md-flex__cell md-flex__cell--shrink">
1448               <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
1449             </div>
1450             <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1451               <span class="md-flex__ellipsis">
1452                 <span class="md-footer-nav__direction">
1453                   Previous
1454                 </span>
1455                 TrueTypeGX/AAT Validation
1456               </span>
1457             </div>
1458           </a>
1459         
1460         
1461           <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
1462             <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1463               <span class="md-flex__ellipsis">
1464                 <span class="md-footer-nav__direction">
1465                   Next
1466                 </span>
1467                 The TrueType Engine
1468               </span>
1469             </div>
1470             <div class="md-flex__cell md-flex__cell--shrink">
1471               <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
1472             </div>
1473           </a>
1474         
1475       </nav>
1476     </div>
1477   
1478   <div class="md-footer-meta md-typeset">
1479     <div class="md-footer-meta__inner md-grid">
1480       <div class="md-footer-copyright">
1481         
1482           <div class="md-footer-copyright__highlight">
1483             Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1484           </div>
1485         
1486         powered by
1487         <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
1488         and
1489         <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1490           Material for MkDocs</a>
1491       </div>
1492       
1493     </div>
1494   </div>
1495 </footer>
1496       
1497     </div>
1498     
1499       <script src="assets/javascripts/application.c33a9706.js"></script>
1500       
1501       <script>app.initialize({version:"1.1",url:{base:"."}})</script>
1502       
1503         <script src="javascripts/extra.js"></script>
1504       
1505     
1506   </body>
1507 </html>