Imported Upstream version 2.13.2
[platform/upstream/freetype2.git] / docs / reference / ft2-cache_subsystem.html
1
2 <!doctype html>
3 <html lang="en" class="no-js">
4   <head>
5     
6       <meta charset="utf-8">
7       <meta name="viewport" content="width=device-width,initial-scale=1">
8       
9         <meta name="description" content="API Reference Documentation for FreeType-2.13.2">
10       
11       
12       
13         <meta name="author" content="FreeType Contributors">
14       
15       
16       <link rel="icon" href="images/favico.ico">
17       <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-7.1.9">
18     
19     
20       
21         <title>Cache Sub-System - FreeType-2.13.2 API Reference</title>
22       
23     
24     
25       <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css">
26       
27         
28         <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css">
29         
30           
31           
32           <meta name="theme-color" content="#4cae4f">
33         
34       
35     
36     
37     
38       
39         
40         <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
41         <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
42         <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style>
43       
44     
45     
46     
47       <link rel="stylesheet" href="stylesheets/extra.css">
48     
49     
50       
51
52
53     
54     
55   </head>
56   
57   
58     
59     
60     
61     
62     
63     <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green">
64   
65     
66     <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
67     
68     <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
69     <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
70     <label class="md-overlay" for="__drawer"></label>
71     <div data-md-component="skip">
72       
73         
74         <a href="#cache-sub-system" class="md-skip">
75           Skip to content
76         </a>
77       
78     </div>
79     <div data-md-component="announce">
80       
81     </div>
82     
83       <header class="md-header" data-md-component="header">
84   <nav class="md-header__inner md-grid" aria-label="Header">
85     <a href="index.html" title="FreeType-2.13.2 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.13.2 API Reference" data-md-component="logo">
86       
87   <img src="images/favico.ico" alt="logo">
88
89     </a>
90     <label class="md-header__button md-icon" for="__drawer">
91       <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
92     </label>
93     <div class="md-header__title" data-md-component="header-title">
94       <div class="md-header__ellipsis">
95         <div class="md-header__topic">
96           <span class="md-ellipsis">
97             FreeType-2.13.2 API Reference
98           </span>
99         </div>
100         <div class="md-header__topic" data-md-component="header-topic">
101           <span class="md-ellipsis">
102             
103               Cache Sub-System
104             
105           </span>
106         </div>
107       </div>
108     </div>
109     
110     
111     
112       <label class="md-header__button md-icon" for="__search">
113         <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
114       </label>
115       
116 <div class="md-search" data-md-component="search" role="dialog">
117   <label class="md-search__overlay" for="__search"></label>
118   <div class="md-search__inner" role="search">
119     <form class="md-search__form" name="search">
120       <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
121       <label class="md-search__icon md-icon" for="__search">
122         <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
123         <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
124       </label>
125       <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
126         <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
127       </button>
128     </form>
129     <div class="md-search__output">
130       <div class="md-search__scrollwrap" data-md-scrollfix>
131         <div class="md-search-result" data-md-component="search-result">
132           <div class="md-search-result__meta">
133             Initializing search
134           </div>
135           <ol class="md-search-result__list"></ol>
136         </div>
137       </div>
138     </div>
139   </div>
140 </div>
141     
142     
143   </nav>
144 </header>
145     
146     <div class="md-container" data-md-component="container">
147       
148       
149         
150       
151       <main class="md-main" data-md-component="main">
152         <div class="md-main__inner md-grid">
153           
154             
155               
156               <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
157                 <div class="md-sidebar__scrollwrap">
158                   <div class="md-sidebar__inner">
159                     
160
161
162 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
163   <label class="md-nav__title" for="__drawer">
164     <a href="index.html" title="FreeType-2.13.2 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.13.2 API Reference" data-md-component="logo">
165       
166   <img src="images/favico.ico" alt="logo">
167
168     </a>
169     FreeType-2.13.2 API Reference
170   </label>
171   
172   <ul class="md-nav__list" data-md-scrollfix>
173     
174       
175       
176       
177
178   
179   
180   
181     <li class="md-nav__item">
182       <a href="index.html" class="md-nav__link">
183         TOC
184       </a>
185     </li>
186   
187
188     
189       
190       
191       
192
193   
194   
195   
196     <li class="md-nav__item">
197       <a href="ft2-index.html" class="md-nav__link">
198         Index
199       </a>
200     </li>
201   
202
203     
204       
205       
206       
207
208   
209   
210   
211     
212     <li class="md-nav__item md-nav__item--nested">
213       
214       
215         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
216       
217       <label class="md-nav__link" for="__nav_3">
218         General Remarks
219         <span class="md-nav__icon md-icon"></span>
220       </label>
221       <nav class="md-nav" aria-label="General Remarks" data-md-level="1">
222         <label class="md-nav__title" for="__nav_3">
223           <span class="md-nav__icon md-icon"></span>
224           General Remarks
225         </label>
226         <ul class="md-nav__list" data-md-scrollfix>
227           
228             
229   
230   
231   
232     <li class="md-nav__item">
233       <a href="ft2-preamble.html" class="md-nav__link">
234         Preamble
235       </a>
236     </li>
237   
238
239           
240             
241   
242   
243   
244     <li class="md-nav__item">
245       <a href="ft2-header_inclusion.html" class="md-nav__link">
246         FreeType's header inclusion scheme
247       </a>
248     </li>
249   
250
251           
252             
253   
254   
255   
256     <li class="md-nav__item">
257       <a href="ft2-user_allocation.html" class="md-nav__link">
258         User allocation
259       </a>
260     </li>
261   
262
263           
264         </ul>
265       </nav>
266     </li>
267   
268
269     
270       
271       
272       
273
274   
275   
276   
277     
278     <li class="md-nav__item md-nav__item--nested">
279       
280       
281         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
282       
283       <label class="md-nav__link" for="__nav_4">
284         Core API
285         <span class="md-nav__icon md-icon"></span>
286       </label>
287       <nav class="md-nav" aria-label="Core API" data-md-level="1">
288         <label class="md-nav__title" for="__nav_4">
289           <span class="md-nav__icon md-icon"></span>
290           Core API
291         </label>
292         <ul class="md-nav__list" data-md-scrollfix>
293           
294             
295   
296   
297   
298     <li class="md-nav__item">
299       <a href="ft2-basic_types.html" class="md-nav__link">
300         Basic Data Types
301       </a>
302     </li>
303   
304
305           
306             
307   
308   
309   
310     <li class="md-nav__item">
311       <a href="ft2-library_setup.html" class="md-nav__link">
312         Library Setup
313       </a>
314     </li>
315   
316
317           
318             
319   
320   
321   
322     <li class="md-nav__item">
323       <a href="ft2-face_creation.html" class="md-nav__link">
324         Face Creation
325       </a>
326     </li>
327   
328
329           
330             
331   
332   
333   
334     <li class="md-nav__item">
335       <a href="ft2-font_testing_macros.html" class="md-nav__link">
336         Font Testing Macros
337       </a>
338     </li>
339   
340
341           
342             
343   
344   
345   
346     <li class="md-nav__item">
347       <a href="ft2-sizing_and_scaling.html" class="md-nav__link">
348         Sizing and Scaling
349       </a>
350     </li>
351   
352
353           
354             
355   
356   
357   
358     <li class="md-nav__item">
359       <a href="ft2-glyph_retrieval.html" class="md-nav__link">
360         Glyph Retrieval
361       </a>
362     </li>
363   
364
365           
366             
367   
368   
369   
370     <li class="md-nav__item">
371       <a href="ft2-character_mapping.html" class="md-nav__link">
372         Character Mapping
373       </a>
374     </li>
375   
376
377           
378             
379   
380   
381   
382     <li class="md-nav__item">
383       <a href="ft2-information_retrieval.html" class="md-nav__link">
384         Information Retrieval
385       </a>
386     </li>
387   
388
389           
390             
391   
392   
393   
394     <li class="md-nav__item">
395       <a href="ft2-other_api_data.html" class="md-nav__link">
396         Other API Data
397       </a>
398     </li>
399   
400
401           
402         </ul>
403       </nav>
404     </li>
405   
406
407     
408       
409       
410       
411
412   
413   
414   
415     
416     <li class="md-nav__item md-nav__item--nested">
417       
418       
419         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
420       
421       <label class="md-nav__link" for="__nav_5">
422         Extended API
423         <span class="md-nav__icon md-icon"></span>
424       </label>
425       <nav class="md-nav" aria-label="Extended API" data-md-level="1">
426         <label class="md-nav__title" for="__nav_5">
427           <span class="md-nav__icon md-icon"></span>
428           Extended API
429         </label>
430         <ul class="md-nav__list" data-md-scrollfix>
431           
432             
433   
434   
435   
436     <li class="md-nav__item">
437       <a href="ft2-glyph_variants.html" class="md-nav__link">
438         Unicode Variation Sequences
439       </a>
440     </li>
441   
442
443           
444             
445   
446   
447   
448     <li class="md-nav__item">
449       <a href="ft2-color_management.html" class="md-nav__link">
450         Glyph Color Management
451       </a>
452     </li>
453   
454
455           
456             
457   
458   
459   
460     <li class="md-nav__item">
461       <a href="ft2-layer_management.html" class="md-nav__link">
462         Glyph Layer Management
463       </a>
464     </li>
465   
466
467           
468             
469   
470   
471   
472     <li class="md-nav__item">
473       <a href="ft2-glyph_management.html" class="md-nav__link">
474         Glyph Management
475       </a>
476     </li>
477   
478
479           
480             
481   
482   
483   
484     <li class="md-nav__item">
485       <a href="ft2-mac_specific.html" class="md-nav__link">
486         Mac Specific Interface
487       </a>
488     </li>
489   
490
491           
492             
493   
494   
495   
496     <li class="md-nav__item">
497       <a href="ft2-sizes_management.html" class="md-nav__link">
498         Size Management
499       </a>
500     </li>
501   
502
503           
504             
505   
506   
507   
508     <li class="md-nav__item">
509       <a href="ft2-header_file_macros.html" class="md-nav__link">
510         Header File Macros
511       </a>
512     </li>
513   
514
515           
516         </ul>
517       </nav>
518     </li>
519   
520
521     
522       
523       
524       
525
526   
527   
528   
529     
530     <li class="md-nav__item md-nav__item--nested">
531       
532       
533         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
534       
535       <label class="md-nav__link" for="__nav_6">
536         Format-Specific API
537         <span class="md-nav__icon md-icon"></span>
538       </label>
539       <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1">
540         <label class="md-nav__title" for="__nav_6">
541           <span class="md-nav__icon md-icon"></span>
542           Format-Specific API
543         </label>
544         <ul class="md-nav__list" data-md-scrollfix>
545           
546             
547   
548   
549   
550     <li class="md-nav__item">
551       <a href="ft2-multiple_masters.html" class="md-nav__link">
552         Multiple Masters
553       </a>
554     </li>
555   
556
557           
558             
559   
560   
561   
562     <li class="md-nav__item">
563       <a href="ft2-truetype_tables.html" class="md-nav__link">
564         TrueType Tables
565       </a>
566     </li>
567   
568
569           
570             
571   
572   
573   
574     <li class="md-nav__item">
575       <a href="ft2-type1_tables.html" class="md-nav__link">
576         Type 1 Tables
577       </a>
578     </li>
579   
580
581           
582             
583   
584   
585   
586     <li class="md-nav__item">
587       <a href="ft2-sfnt_names.html" class="md-nav__link">
588         SFNT Names
589       </a>
590     </li>
591   
592
593           
594             
595   
596   
597   
598     <li class="md-nav__item">
599       <a href="ft2-bdf_fonts.html" class="md-nav__link">
600         BDF and PCF Files
601       </a>
602     </li>
603   
604
605           
606             
607   
608   
609   
610     <li class="md-nav__item">
611       <a href="ft2-cid_fonts.html" class="md-nav__link">
612         CID Fonts
613       </a>
614     </li>
615   
616
617           
618             
619   
620   
621   
622     <li class="md-nav__item">
623       <a href="ft2-pfr_fonts.html" class="md-nav__link">
624         PFR Fonts
625       </a>
626     </li>
627   
628
629           
630             
631   
632   
633   
634     <li class="md-nav__item">
635       <a href="ft2-winfnt_fonts.html" class="md-nav__link">
636         Window FNT Files
637       </a>
638     </li>
639   
640
641           
642             
643   
644   
645   
646     <li class="md-nav__item">
647       <a href="ft2-svg_fonts.html" class="md-nav__link">
648         OpenType SVG Fonts
649       </a>
650     </li>
651   
652
653           
654             
655   
656   
657   
658     <li class="md-nav__item">
659       <a href="ft2-font_formats.html" class="md-nav__link">
660         Font Formats
661       </a>
662     </li>
663   
664
665           
666             
667   
668   
669   
670     <li class="md-nav__item">
671       <a href="ft2-gasp_table.html" class="md-nav__link">
672         Gasp Table
673       </a>
674     </li>
675   
676
677           
678         </ul>
679       </nav>
680     </li>
681   
682
683     
684       
685       
686       
687
688   
689   
690   
691     
692     <li class="md-nav__item md-nav__item--nested">
693       
694       
695         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
696       
697       <label class="md-nav__link" for="__nav_7">
698         Controlling FreeType Modules
699         <span class="md-nav__icon md-icon"></span>
700       </label>
701       <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1">
702         <label class="md-nav__title" for="__nav_7">
703           <span class="md-nav__icon md-icon"></span>
704           Controlling FreeType Modules
705         </label>
706         <ul class="md-nav__list" data-md-scrollfix>
707           
708             
709   
710   
711   
712     <li class="md-nav__item">
713       <a href="ft2-auto_hinter.html" class="md-nav__link">
714         The auto-hinter
715       </a>
716     </li>
717   
718
719           
720             
721   
722   
723   
724     <li class="md-nav__item">
725       <a href="ft2-cff_driver.html" class="md-nav__link">
726         The CFF driver
727       </a>
728     </li>
729   
730
731           
732             
733   
734   
735   
736     <li class="md-nav__item">
737       <a href="ft2-t1_cid_driver.html" class="md-nav__link">
738         The Type 1 and CID drivers
739       </a>
740     </li>
741   
742
743           
744             
745   
746   
747   
748     <li class="md-nav__item">
749       <a href="ft2-tt_driver.html" class="md-nav__link">
750         The TrueType driver
751       </a>
752     </li>
753   
754
755           
756             
757   
758   
759   
760     <li class="md-nav__item">
761       <a href="ft2-pcf_driver.html" class="md-nav__link">
762         The PCF driver
763       </a>
764     </li>
765   
766
767           
768             
769   
770   
771   
772     <li class="md-nav__item">
773       <a href="ft2-ot_svg_driver.html" class="md-nav__link">
774         The SVG driver
775       </a>
776     </li>
777   
778
779           
780             
781   
782   
783   
784     <li class="md-nav__item">
785       <a href="ft2-properties.html" class="md-nav__link">
786         Driver properties
787       </a>
788     </li>
789   
790
791           
792             
793   
794   
795   
796     <li class="md-nav__item">
797       <a href="ft2-parameter_tags.html" class="md-nav__link">
798         Parameter Tags
799       </a>
800     </li>
801   
802
803           
804             
805   
806   
807   
808     <li class="md-nav__item">
809       <a href="ft2-lcd_rendering.html" class="md-nav__link">
810         Subpixel Rendering
811       </a>
812     </li>
813   
814
815           
816         </ul>
817       </nav>
818     </li>
819   
820
821     
822       
823       
824       
825
826   
827   
828     
829   
830   
831     
832     <li class="md-nav__item md-nav__item--active md-nav__item--nested">
833       
834       
835         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" checked>
836       
837       <label class="md-nav__link" for="__nav_8">
838         Cache Sub-System
839         <span class="md-nav__icon md-icon"></span>
840       </label>
841       <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
842         <label class="md-nav__title" for="__nav_8">
843           <span class="md-nav__icon md-icon"></span>
844           Cache Sub-System
845         </label>
846         <ul class="md-nav__list" data-md-scrollfix>
847           
848             
849   
850   
851     
852   
853   
854     <li class="md-nav__item md-nav__item--active">
855       
856       <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
857       
858       
859         
860       
861       
862         <label class="md-nav__link md-nav__link--active" for="__toc">
863           Cache Sub-System
864           <span class="md-nav__icon md-icon"></span>
865         </label>
866       
867       <a href="ft2-cache_subsystem.html" class="md-nav__link md-nav__link--active">
868         Cache Sub-System
869       </a>
870       
871         
872 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
873   
874   
875   
876     
877   
878   
879     <label class="md-nav__title" for="__toc">
880       <span class="md-nav__icon md-icon"></span>
881       Table of contents
882     </label>
883     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
884       
885         <li class="md-nav__item">
886   <a href="#synopsis" class="md-nav__link">
887     Synopsis
888   </a>
889   
890 </li>
891       
892         <li class="md-nav__item">
893   <a href="#ftc_manager" class="md-nav__link">
894     FTC_Manager
895   </a>
896   
897 </li>
898       
899         <li class="md-nav__item">
900   <a href="#ftc_faceid" class="md-nav__link">
901     FTC_FaceID
902   </a>
903   
904 </li>
905       
906         <li class="md-nav__item">
907   <a href="#ftc_face_requester" class="md-nav__link">
908     FTC_Face_Requester
909   </a>
910   
911 </li>
912       
913         <li class="md-nav__item">
914   <a href="#ftc_manager_new" class="md-nav__link">
915     FTC_Manager_New
916   </a>
917   
918 </li>
919       
920         <li class="md-nav__item">
921   <a href="#ftc_manager_reset" class="md-nav__link">
922     FTC_Manager_Reset
923   </a>
924   
925 </li>
926       
927         <li class="md-nav__item">
928   <a href="#ftc_manager_done" class="md-nav__link">
929     FTC_Manager_Done
930   </a>
931   
932 </li>
933       
934         <li class="md-nav__item">
935   <a href="#ftc_manager_lookupface" class="md-nav__link">
936     FTC_Manager_LookupFace
937   </a>
938   
939 </li>
940       
941         <li class="md-nav__item">
942   <a href="#ftc_manager_lookupsize" class="md-nav__link">
943     FTC_Manager_LookupSize
944   </a>
945   
946 </li>
947       
948         <li class="md-nav__item">
949   <a href="#ftc_manager_removefaceid" class="md-nav__link">
950     FTC_Manager_RemoveFaceID
951   </a>
952   
953 </li>
954       
955         <li class="md-nav__item">
956   <a href="#ftc_node" class="md-nav__link">
957     FTC_Node
958   </a>
959   
960 </li>
961       
962         <li class="md-nav__item">
963   <a href="#ftc_node_unref" class="md-nav__link">
964     FTC_Node_Unref
965   </a>
966   
967 </li>
968       
969         <li class="md-nav__item">
970   <a href="#ftc_imagecache" class="md-nav__link">
971     FTC_ImageCache
972   </a>
973   
974 </li>
975       
976         <li class="md-nav__item">
977   <a href="#ftc_imagecache_new" class="md-nav__link">
978     FTC_ImageCache_New
979   </a>
980   
981 </li>
982       
983         <li class="md-nav__item">
984   <a href="#ftc_imagecache_lookup" class="md-nav__link">
985     FTC_ImageCache_Lookup
986   </a>
987   
988 </li>
989       
990         <li class="md-nav__item">
991   <a href="#ftc_sbit" class="md-nav__link">
992     FTC_SBit
993   </a>
994   
995 </li>
996       
997         <li class="md-nav__item">
998   <a href="#ftc_sbitcache" class="md-nav__link">
999     FTC_SBitCache
1000   </a>
1001   
1002 </li>
1003       
1004         <li class="md-nav__item">
1005   <a href="#ftc_sbitcache_new" class="md-nav__link">
1006     FTC_SBitCache_New
1007   </a>
1008   
1009 </li>
1010       
1011         <li class="md-nav__item">
1012   <a href="#ftc_sbitcache_lookup" class="md-nav__link">
1013     FTC_SBitCache_Lookup
1014   </a>
1015   
1016 </li>
1017       
1018         <li class="md-nav__item">
1019   <a href="#ftc_cmapcache" class="md-nav__link">
1020     FTC_CMapCache
1021   </a>
1022   
1023 </li>
1024       
1025         <li class="md-nav__item">
1026   <a href="#ftc_cmapcache_new" class="md-nav__link">
1027     FTC_CMapCache_New
1028   </a>
1029   
1030 </li>
1031       
1032         <li class="md-nav__item">
1033   <a href="#ftc_cmapcache_lookup" class="md-nav__link">
1034     FTC_CMapCache_Lookup
1035   </a>
1036   
1037 </li>
1038       
1039         <li class="md-nav__item">
1040   <a href="#ftc_scalerrec" class="md-nav__link">
1041     FTC_ScalerRec
1042   </a>
1043   
1044 </li>
1045       
1046         <li class="md-nav__item">
1047   <a href="#ftc_scaler" class="md-nav__link">
1048     FTC_Scaler
1049   </a>
1050   
1051 </li>
1052       
1053         <li class="md-nav__item">
1054   <a href="#ftc_imagetyperec" class="md-nav__link">
1055     FTC_ImageTypeRec
1056   </a>
1057   
1058 </li>
1059       
1060         <li class="md-nav__item">
1061   <a href="#ftc_imagetype" class="md-nav__link">
1062     FTC_ImageType
1063   </a>
1064   
1065 </li>
1066       
1067         <li class="md-nav__item">
1068   <a href="#ftc_imagecache_lookupscaler" class="md-nav__link">
1069     FTC_ImageCache_LookupScaler
1070   </a>
1071   
1072 </li>
1073       
1074         <li class="md-nav__item">
1075   <a href="#ftc_sbitrec" class="md-nav__link">
1076     FTC_SBitRec
1077   </a>
1078   
1079 </li>
1080       
1081         <li class="md-nav__item">
1082   <a href="#ftc_sbitcache_lookupscaler" class="md-nav__link">
1083     FTC_SBitCache_LookupScaler
1084   </a>
1085   
1086 </li>
1087       
1088     </ul>
1089   
1090 </nav>
1091       
1092     </li>
1093   
1094
1095           
1096         </ul>
1097       </nav>
1098     </li>
1099   
1100
1101     
1102       
1103       
1104       
1105
1106   
1107   
1108   
1109     
1110     <li class="md-nav__item md-nav__item--nested">
1111       
1112       
1113         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
1114       
1115       <label class="md-nav__link" for="__nav_9">
1116         Support API
1117         <span class="md-nav__icon md-icon"></span>
1118       </label>
1119       <nav class="md-nav" aria-label="Support API" data-md-level="1">
1120         <label class="md-nav__title" for="__nav_9">
1121           <span class="md-nav__icon md-icon"></span>
1122           Support API
1123         </label>
1124         <ul class="md-nav__list" data-md-scrollfix>
1125           
1126             
1127   
1128   
1129   
1130     <li class="md-nav__item">
1131       <a href="ft2-computations.html" class="md-nav__link">
1132         Computations
1133       </a>
1134     </li>
1135   
1136
1137           
1138             
1139   
1140   
1141   
1142     <li class="md-nav__item">
1143       <a href="ft2-list_processing.html" class="md-nav__link">
1144         List Processing
1145       </a>
1146     </li>
1147   
1148
1149           
1150             
1151   
1152   
1153   
1154     <li class="md-nav__item">
1155       <a href="ft2-outline_processing.html" class="md-nav__link">
1156         Outline Processing
1157       </a>
1158     </li>
1159   
1160
1161           
1162             
1163   
1164   
1165   
1166     <li class="md-nav__item">
1167       <a href="ft2-quick_advance.html" class="md-nav__link">
1168         Quick retrieval of advance values
1169       </a>
1170     </li>
1171   
1172
1173           
1174             
1175   
1176   
1177   
1178     <li class="md-nav__item">
1179       <a href="ft2-bitmap_handling.html" class="md-nav__link">
1180         Bitmap Handling
1181       </a>
1182     </li>
1183   
1184
1185           
1186             
1187   
1188   
1189   
1190     <li class="md-nav__item">
1191       <a href="ft2-raster.html" class="md-nav__link">
1192         Scanline Converter
1193       </a>
1194     </li>
1195   
1196
1197           
1198             
1199   
1200   
1201   
1202     <li class="md-nav__item">
1203       <a href="ft2-glyph_stroker.html" class="md-nav__link">
1204         Glyph Stroker
1205       </a>
1206     </li>
1207   
1208
1209           
1210             
1211   
1212   
1213   
1214     <li class="md-nav__item">
1215       <a href="ft2-system_interface.html" class="md-nav__link">
1216         System Interface
1217       </a>
1218     </li>
1219   
1220
1221           
1222             
1223   
1224   
1225   
1226     <li class="md-nav__item">
1227       <a href="ft2-module_management.html" class="md-nav__link">
1228         Module Management
1229       </a>
1230     </li>
1231   
1232
1233           
1234             
1235   
1236   
1237   
1238     <li class="md-nav__item">
1239       <a href="ft2-gzip.html" class="md-nav__link">
1240         GZIP Streams
1241       </a>
1242     </li>
1243   
1244
1245           
1246             
1247   
1248   
1249   
1250     <li class="md-nav__item">
1251       <a href="ft2-lzw.html" class="md-nav__link">
1252         LZW Streams
1253       </a>
1254     </li>
1255   
1256
1257           
1258             
1259   
1260   
1261   
1262     <li class="md-nav__item">
1263       <a href="ft2-bzip2.html" class="md-nav__link">
1264         BZIP2 Streams
1265       </a>
1266     </li>
1267   
1268
1269           
1270             
1271   
1272   
1273   
1274     <li class="md-nav__item">
1275       <a href="ft2-debugging_apis.html" class="md-nav__link">
1276         External Debugging APIs
1277       </a>
1278     </li>
1279   
1280
1281           
1282         </ul>
1283       </nav>
1284     </li>
1285   
1286
1287     
1288       
1289       
1290       
1291
1292   
1293   
1294   
1295     
1296     <li class="md-nav__item md-nav__item--nested">
1297       
1298       
1299         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
1300       
1301       <label class="md-nav__link" for="__nav_10">
1302         Error Codes
1303         <span class="md-nav__icon md-icon"></span>
1304       </label>
1305       <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
1306         <label class="md-nav__title" for="__nav_10">
1307           <span class="md-nav__icon md-icon"></span>
1308           Error Codes
1309         </label>
1310         <ul class="md-nav__list" data-md-scrollfix>
1311           
1312             
1313   
1314   
1315   
1316     <li class="md-nav__item">
1317       <a href="ft2-error_enumerations.html" class="md-nav__link">
1318         Error Enumerations
1319       </a>
1320     </li>
1321   
1322
1323           
1324             
1325   
1326   
1327   
1328     <li class="md-nav__item">
1329       <a href="ft2-error_code_values.html" class="md-nav__link">
1330         Error Code Values
1331       </a>
1332     </li>
1333   
1334
1335           
1336         </ul>
1337       </nav>
1338     </li>
1339   
1340
1341     
1342       
1343       
1344       
1345
1346   
1347   
1348   
1349     
1350     <li class="md-nav__item md-nav__item--nested">
1351       
1352       
1353         <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_11" type="checkbox" id="__nav_11" >
1354       
1355       <label class="md-nav__link" for="__nav_11">
1356         Miscellaneous
1357         <span class="md-nav__icon md-icon"></span>
1358       </label>
1359       <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
1360         <label class="md-nav__title" for="__nav_11">
1361           <span class="md-nav__icon md-icon"></span>
1362           Miscellaneous
1363         </label>
1364         <ul class="md-nav__list" data-md-scrollfix>
1365           
1366             
1367   
1368   
1369   
1370     <li class="md-nav__item">
1371       <a href="ft2-gx_validation.html" class="md-nav__link">
1372         TrueTypeGX/AAT Validation
1373       </a>
1374     </li>
1375   
1376
1377           
1378             
1379   
1380   
1381   
1382     <li class="md-nav__item">
1383       <a href="ft2-incremental.html" class="md-nav__link">
1384         Incremental Loading
1385       </a>
1386     </li>
1387   
1388
1389           
1390             
1391   
1392   
1393   
1394     <li class="md-nav__item">
1395       <a href="ft2-truetype_engine.html" class="md-nav__link">
1396         The TrueType Engine
1397       </a>
1398     </li>
1399   
1400
1401           
1402             
1403   
1404   
1405   
1406     <li class="md-nav__item">
1407       <a href="ft2-ot_validation.html" class="md-nav__link">
1408         OpenType Validation
1409       </a>
1410     </li>
1411   
1412
1413           
1414         </ul>
1415       </nav>
1416     </li>
1417   
1418
1419     
1420   </ul>
1421 </nav>
1422                   </div>
1423                 </div>
1424               </div>
1425             
1426             
1427               
1428               <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1429                 <div class="md-sidebar__scrollwrap">
1430                   <div class="md-sidebar__inner">
1431                     
1432 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1433   
1434   
1435   
1436     
1437   
1438   
1439     <label class="md-nav__title" for="__toc">
1440       <span class="md-nav__icon md-icon"></span>
1441       Table of contents
1442     </label>
1443     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1444       
1445         <li class="md-nav__item">
1446   <a href="#synopsis" class="md-nav__link">
1447     Synopsis
1448   </a>
1449   
1450 </li>
1451       
1452         <li class="md-nav__item">
1453   <a href="#ftc_manager" class="md-nav__link">
1454     FTC_Manager
1455   </a>
1456   
1457 </li>
1458       
1459         <li class="md-nav__item">
1460   <a href="#ftc_faceid" class="md-nav__link">
1461     FTC_FaceID
1462   </a>
1463   
1464 </li>
1465       
1466         <li class="md-nav__item">
1467   <a href="#ftc_face_requester" class="md-nav__link">
1468     FTC_Face_Requester
1469   </a>
1470   
1471 </li>
1472       
1473         <li class="md-nav__item">
1474   <a href="#ftc_manager_new" class="md-nav__link">
1475     FTC_Manager_New
1476   </a>
1477   
1478 </li>
1479       
1480         <li class="md-nav__item">
1481   <a href="#ftc_manager_reset" class="md-nav__link">
1482     FTC_Manager_Reset
1483   </a>
1484   
1485 </li>
1486       
1487         <li class="md-nav__item">
1488   <a href="#ftc_manager_done" class="md-nav__link">
1489     FTC_Manager_Done
1490   </a>
1491   
1492 </li>
1493       
1494         <li class="md-nav__item">
1495   <a href="#ftc_manager_lookupface" class="md-nav__link">
1496     FTC_Manager_LookupFace
1497   </a>
1498   
1499 </li>
1500       
1501         <li class="md-nav__item">
1502   <a href="#ftc_manager_lookupsize" class="md-nav__link">
1503     FTC_Manager_LookupSize
1504   </a>
1505   
1506 </li>
1507       
1508         <li class="md-nav__item">
1509   <a href="#ftc_manager_removefaceid" class="md-nav__link">
1510     FTC_Manager_RemoveFaceID
1511   </a>
1512   
1513 </li>
1514       
1515         <li class="md-nav__item">
1516   <a href="#ftc_node" class="md-nav__link">
1517     FTC_Node
1518   </a>
1519   
1520 </li>
1521       
1522         <li class="md-nav__item">
1523   <a href="#ftc_node_unref" class="md-nav__link">
1524     FTC_Node_Unref
1525   </a>
1526   
1527 </li>
1528       
1529         <li class="md-nav__item">
1530   <a href="#ftc_imagecache" class="md-nav__link">
1531     FTC_ImageCache
1532   </a>
1533   
1534 </li>
1535       
1536         <li class="md-nav__item">
1537   <a href="#ftc_imagecache_new" class="md-nav__link">
1538     FTC_ImageCache_New
1539   </a>
1540   
1541 </li>
1542       
1543         <li class="md-nav__item">
1544   <a href="#ftc_imagecache_lookup" class="md-nav__link">
1545     FTC_ImageCache_Lookup
1546   </a>
1547   
1548 </li>
1549       
1550         <li class="md-nav__item">
1551   <a href="#ftc_sbit" class="md-nav__link">
1552     FTC_SBit
1553   </a>
1554   
1555 </li>
1556       
1557         <li class="md-nav__item">
1558   <a href="#ftc_sbitcache" class="md-nav__link">
1559     FTC_SBitCache
1560   </a>
1561   
1562 </li>
1563       
1564         <li class="md-nav__item">
1565   <a href="#ftc_sbitcache_new" class="md-nav__link">
1566     FTC_SBitCache_New
1567   </a>
1568   
1569 </li>
1570       
1571         <li class="md-nav__item">
1572   <a href="#ftc_sbitcache_lookup" class="md-nav__link">
1573     FTC_SBitCache_Lookup
1574   </a>
1575   
1576 </li>
1577       
1578         <li class="md-nav__item">
1579   <a href="#ftc_cmapcache" class="md-nav__link">
1580     FTC_CMapCache
1581   </a>
1582   
1583 </li>
1584       
1585         <li class="md-nav__item">
1586   <a href="#ftc_cmapcache_new" class="md-nav__link">
1587     FTC_CMapCache_New
1588   </a>
1589   
1590 </li>
1591       
1592         <li class="md-nav__item">
1593   <a href="#ftc_cmapcache_lookup" class="md-nav__link">
1594     FTC_CMapCache_Lookup
1595   </a>
1596   
1597 </li>
1598       
1599         <li class="md-nav__item">
1600   <a href="#ftc_scalerrec" class="md-nav__link">
1601     FTC_ScalerRec
1602   </a>
1603   
1604 </li>
1605       
1606         <li class="md-nav__item">
1607   <a href="#ftc_scaler" class="md-nav__link">
1608     FTC_Scaler
1609   </a>
1610   
1611 </li>
1612       
1613         <li class="md-nav__item">
1614   <a href="#ftc_imagetyperec" class="md-nav__link">
1615     FTC_ImageTypeRec
1616   </a>
1617   
1618 </li>
1619       
1620         <li class="md-nav__item">
1621   <a href="#ftc_imagetype" class="md-nav__link">
1622     FTC_ImageType
1623   </a>
1624   
1625 </li>
1626       
1627         <li class="md-nav__item">
1628   <a href="#ftc_imagecache_lookupscaler" class="md-nav__link">
1629     FTC_ImageCache_LookupScaler
1630   </a>
1631   
1632 </li>
1633       
1634         <li class="md-nav__item">
1635   <a href="#ftc_sbitrec" class="md-nav__link">
1636     FTC_SBitRec
1637   </a>
1638   
1639 </li>
1640       
1641         <li class="md-nav__item">
1642   <a href="#ftc_sbitcache_lookupscaler" class="md-nav__link">
1643     FTC_SBitCache_LookupScaler
1644   </a>
1645   
1646 </li>
1647       
1648     </ul>
1649   
1650 </nav>
1651                   </div>
1652                 </div>
1653               </div>
1654             
1655           
1656           <div class="md-content" data-md-component="content">
1657             <article class="md-content__inner md-typeset">
1658               
1659                 
1660                 
1661                 <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#cache-sub-system">Cache Sub-System</a> &raquo; Cache Sub-System</p>
1662 <hr />
1663 <h1 id="cache-sub-system">Cache Sub-System<a class="headerlink" href="#cache-sub-system" title="Permanent link">&para;</a></h1>
1664 <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1665 <p>This section describes the FreeType&nbsp;2 cache sub-system, which is used to limit the number of concurrently opened <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> and <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects, as well as caching information like character maps and glyph images while limiting their maximum memory usage.</p>
1666 <p>Note that all types and functions begin with the <code>FTC_</code> prefix rather than the usual <code>FT_</code> prefix in the rest of FreeType.</p>
1667 <p>The cache is highly portable and, thus, doesn't know anything about the fonts installed on your system, or how to access them. Therefore, it requires the following.</p>
1668 <ul>
1669 <li>
1670 <p><code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code>, an arbitrary non-zero value that uniquely identifies available or installed font faces, has to be provided to the cache by the client. Note that the cache only stores and compares these values and doesn't try to interpret them in any way, but they have to be persistent on the client side.</p>
1671 </li>
1672 <li>
1673 <p><code><a href="ft2-cache_subsystem.html#ftc_face_requester">FTC_Face_Requester</a></code>, a method to convert an <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code> into a new <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object when necessary, has to be provided to the cache by the client. The <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object is completely managed by the cache, including its termination through <code><a href="ft2-face_creation.html#ft_done_face">FT_Done_Face</a></code>. To monitor termination of face objects, the finalizer callback in the <code>generic</code> field of the <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object can be used, which might also be used to store the <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code> of the face.</p>
1674 </li>
1675 </ul>
1676 <p>Clients are free to map face IDs to anything useful. The most simple usage is, for example, to associate them to a <code>{pathname,face_index}</code> pair that is then used by <code><a href="ft2-cache_subsystem.html#ftc_face_requester">FTC_Face_Requester</a></code> to call <code><a href="ft2-face_creation.html#ft_new_face">FT_New_Face</a></code>. However, more complex schemes are also possible.</p>
1677 <p>Note that for the cache to work correctly, the face ID values must be <strong>persistent</strong>, which means that the contents they point to should not change at runtime, or that their value should not become invalid. If this is unavoidable (e.g., when a font is uninstalled at runtime), you should call <code><a href="ft2-cache_subsystem.html#ftc_manager_removefaceid">FTC_Manager_RemoveFaceID</a></code> as soon as possible to let the cache get rid of any references to the old <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code> it may keep internally. Failure to do so will lead to incorrect behaviour or even crashes in <code><a href="ft2-cache_subsystem.html#ftc_face_requester">FTC_Face_Requester</a></code>.</p>
1678 <p>To use the cache, start with calling <code><a href="ft2-cache_subsystem.html#ftc_manager_new">FTC_Manager_New</a></code> to create a new <code><a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a></code> object, which models a single cache instance. You can then look up <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> and <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects with <code><a href="ft2-cache_subsystem.html#ftc_manager_lookupface">FTC_Manager_LookupFace</a></code> and <code><a href="ft2-cache_subsystem.html#ftc_manager_lookupsize">FTC_Manager_LookupSize</a></code>, respectively, and use them in any FreeType work stream. You can also cache other FreeType objects as follows.</p>
1679 <ul>
1680 <li>
1681 <p>If you want to use the charmap caching, call <code><a href="ft2-cache_subsystem.html#ftc_cmapcache_new">FTC_CMapCache_New</a></code>, then later use <code><a href="ft2-cache_subsystem.html#ftc_cmapcache_lookup">FTC_CMapCache_Lookup</a></code> to perform the equivalent of <code><a href="ft2-character_mapping.html#ft_get_char_index">FT_Get_Char_Index</a></code>, only much faster.</p>
1682 </li>
1683 <li>
1684 <p>If you want to use the <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> caching, call <code><a href="ft2-cache_subsystem.html#ftc_imagecache_new">FTC_ImageCache_New</a></code>, then later use <code><a href="ft2-cache_subsystem.html#ftc_imagecache_lookup">FTC_ImageCache_Lookup</a></code> to retrieve the corresponding <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> objects from the cache.</p>
1685 </li>
1686 <li>
1687 <p>If you need lots of small bitmaps, it is much more memory-efficient to call <code><a href="ft2-cache_subsystem.html#ftc_sbitcache_new">FTC_SBitCache_New</a></code> followed by <code><a href="ft2-cache_subsystem.html#ftc_sbitcache_lookup">FTC_SBitCache_Lookup</a></code>. This returns <code><a href="ft2-cache_subsystem.html#ftc_sbitrec">FTC_SBitRec</a></code> structures, which are used to store small bitmaps directly. (A small bitmap is one whose metrics and dimensions all fit into 8-bit integers).</p>
1688 </li>
1689 </ul>
1690 <h2 id="ftc_manager">FTC_Manager<a class="headerlink" href="#ftc_manager" title="Permanent link">&para;</a></h2>
1691 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1692 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ManagerRec_*  <b>FTC_Manager</b>;
1693 </code></pre></div>
1694
1695 <p>This object corresponds to one instance of the cache-subsystem. It is used to cache one or more <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> objects, along with corresponding <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects.</p>
1696 <p>The manager intentionally limits the total number of opened <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> and <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects to control memory usage. See the <code>max_faces</code> and <code>max_sizes</code> parameters of <code><a href="ft2-cache_subsystem.html#ftc_manager_new">FTC_Manager_New</a></code>.</p>
1697 <p>The manager is also used to cache &lsquo;nodes&rsquo; of various types while limiting their total memory usage.</p>
1698 <p>All limitations are enforced by keeping lists of managed objects in most-recently-used order, and flushing old nodes to make room for new ones.</p>
1699 <hr>
1700
1701 <h2 id="ftc_faceid">FTC_FaceID<a class="headerlink" href="#ftc_faceid" title="Permanent link">&para;</a></h2>
1702 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1703 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a>  <b>FTC_FaceID</b>;
1704 </code></pre></div>
1705
1706 <p>An opaque pointer type that is used to identity face objects. The contents of such objects is application-dependent.</p>
1707 <p>These pointers are typically used to point to a user-defined structure containing a font file path, and face index.</p>
1708 <h4>note</h4>
1709
1710 <p>Never use <code>NULL</code> as a valid <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code>.</p>
1711 <p>Face IDs are passed by the client to the cache manager that calls, when needed, the <code><a href="ft2-cache_subsystem.html#ftc_face_requester">FTC_Face_Requester</a></code> to translate them into new <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> objects.</p>
1712 <p>If the content of a given face ID changes at runtime, or if the value becomes invalid (e.g., when uninstalling a font), you should immediately call <code><a href="ft2-cache_subsystem.html#ftc_manager_removefaceid">FTC_Manager_RemoveFaceID</a></code> before any other cache function.</p>
1713 <p>Failure to do so will result in incorrect behaviour or even memory leaks and crashes.</p>
1714 <hr>
1715
1716 <h2 id="ftc_face_requester">FTC_Face_Requester<a class="headerlink" href="#ftc_face_requester" title="Permanent link">&para;</a></h2>
1717 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1718 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a>
1719   (*<b>FTC_Face_Requester</b>)( <a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a>  face_id,
1720                          <a href="ft2-library_setup.html#ft_library">FT_Library</a>  library,
1721                          <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a>  req_data,
1722                          <a href="ft2-face_creation.html#ft_face">FT_Face</a>*    aface );
1723 </code></pre></div>
1724
1725 <p>A callback function provided by client applications. It is used by the cache manager to translate a given <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code> into a new valid <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object, on demand.</p>
1726 <h4>input</h4>
1727 <table class="fields">
1728 <tr><td class="val" id="face_id">face_id</td><td class="desc">
1729 <p>The face ID to resolve.</p>
1730 </td></tr>
1731 <tr><td class="val" id="library">library</td><td class="desc">
1732 <p>A handle to a FreeType library object.</p>
1733 </td></tr>
1734 <tr><td class="val" id="req_data">req_data</td><td class="desc">
1735 <p>Application-provided request data (see note below).</p>
1736 </td></tr>
1737 </table>
1738
1739 <h4>output</h4>
1740 <table class="fields">
1741 <tr><td class="val" id="aface">aface</td><td class="desc">
1742 <p>A new <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> handle.</p>
1743 </td></tr>
1744 </table>
1745
1746 <h4>return</h4>
1747
1748 <p>FreeType error code. 0&nbsp;means success.</p>
1749 <h4>note</h4>
1750
1751 <p>The third parameter <code>req_data</code> is the same as the one passed by the client when <code><a href="ft2-cache_subsystem.html#ftc_manager_new">FTC_Manager_New</a></code> is called.</p>
1752 <p>The face requester should not perform funny things on the returned face object, like creating a new <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> for it, or setting a transformation through <code><a href="ft2-sizing_and_scaling.html#ft_set_transform">FT_Set_Transform</a></code>!</p>
1753 <hr>
1754
1755 <h2 id="ftc_manager_new">FTC_Manager_New<a class="headerlink" href="#ftc_manager_new" title="Permanent link">&para;</a></h2>
1756 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1757 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1758   <b>FTC_Manager_New</b>( <a href="ft2-library_setup.html#ft_library">FT_Library</a>          library,
1759                    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>             max_faces,
1760                    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>             max_sizes,
1761                    <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>            max_bytes,
1762                    <a href="ft2-cache_subsystem.html#ftc_face_requester">FTC_Face_Requester</a>  requester,
1763                    <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a>          req_data,
1764                    <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>        *amanager );
1765 </code></pre></div>
1766
1767 <p>Create a new cache manager.</p>
1768 <h4>input</h4>
1769 <table class="fields">
1770 <tr><td class="val" id="library">library</td><td class="desc">
1771 <p>The parent FreeType library handle to use.</p>
1772 </td></tr>
1773 <tr><td class="val" id="max_faces">max_faces</td><td class="desc">
1774 <p>Maximum number of opened <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> objects managed by this cache instance. Use&nbsp;0 for defaults.</p>
1775 </td></tr>
1776 <tr><td class="val" id="max_sizes">max_sizes</td><td class="desc">
1777 <p>Maximum number of opened <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects managed by this cache instance. Use&nbsp;0 for defaults.</p>
1778 </td></tr>
1779 <tr><td class="val" id="max_bytes">max_bytes</td><td class="desc">
1780 <p>Maximum number of bytes to use for cached data nodes. Use&nbsp;0 for defaults. Note that this value does not account for managed <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> and <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects.</p>
1781 </td></tr>
1782 <tr><td class="val" id="requester">requester</td><td class="desc">
1783 <p>An application-provided callback used to translate face IDs into real <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> objects.</p>
1784 </td></tr>
1785 <tr><td class="val" id="req_data">req_data</td><td class="desc">
1786 <p>A generic pointer that is passed to the requester each time it is called (see <code><a href="ft2-cache_subsystem.html#ftc_face_requester">FTC_Face_Requester</a></code>).</p>
1787 </td></tr>
1788 </table>
1789
1790 <h4>output</h4>
1791 <table class="fields">
1792 <tr><td class="val" id="amanager">amanager</td><td class="desc">
1793 <p>A handle to a new manager object. 0&nbsp;in case of failure.</p>
1794 </td></tr>
1795 </table>
1796
1797 <h4>return</h4>
1798
1799 <p>FreeType error code. 0&nbsp;means success.</p>
1800 <hr>
1801
1802 <h2 id="ftc_manager_reset">FTC_Manager_Reset<a class="headerlink" href="#ftc_manager_reset" title="Permanent link">&para;</a></h2>
1803 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1804 <div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1805   <b>FTC_Manager_Reset</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>  manager );
1806 </code></pre></div>
1807
1808 <p>Empty a given cache manager. This simply gets rid of all the currently cached <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> and <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects within the manager.</p>
1809 <h4>inout</h4>
1810 <table class="fields">
1811 <tr><td class="val" id="manager">manager</td><td class="desc">
1812 <p>A handle to the manager.</p>
1813 </td></tr>
1814 </table>
1815
1816 <hr>
1817
1818 <h2 id="ftc_manager_done">FTC_Manager_Done<a class="headerlink" href="#ftc_manager_done" title="Permanent link">&para;</a></h2>
1819 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1820 <div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1821   <b>FTC_Manager_Done</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>  manager );
1822 </code></pre></div>
1823
1824 <p>Destroy a given manager after emptying it.</p>
1825 <h4>input</h4>
1826 <table class="fields">
1827 <tr><td class="val" id="manager">manager</td><td class="desc">
1828 <p>A handle to the target cache manager object.</p>
1829 </td></tr>
1830 </table>
1831
1832 <hr>
1833
1834 <h2 id="ftc_manager_lookupface">FTC_Manager_LookupFace<a class="headerlink" href="#ftc_manager_lookupface" title="Permanent link">&para;</a></h2>
1835 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1836 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1837   <b>FTC_Manager_LookupFace</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>  manager,
1838                           <a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a>   face_id,
1839                           <a href="ft2-face_creation.html#ft_face">FT_Face</a>     *aface );
1840 </code></pre></div>
1841
1842 <p>Retrieve the <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object that corresponds to a given face ID through a cache manager.</p>
1843 <h4>input</h4>
1844 <table class="fields">
1845 <tr><td class="val" id="manager">manager</td><td class="desc">
1846 <p>A handle to the cache manager.</p>
1847 </td></tr>
1848 <tr><td class="val" id="face_id">face_id</td><td class="desc">
1849 <p>The ID of the face object.</p>
1850 </td></tr>
1851 </table>
1852
1853 <h4>output</h4>
1854 <table class="fields">
1855 <tr><td class="val" id="aface">aface</td><td class="desc">
1856 <p>A handle to the face object.</p>
1857 </td></tr>
1858 </table>
1859
1860 <h4>return</h4>
1861
1862 <p>FreeType error code. 0&nbsp;means success.</p>
1863 <h4>note</h4>
1864
1865 <p>The returned <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object is always owned by the manager. You should never try to discard it yourself.</p>
1866 <p>The <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object doesn't necessarily have a current size object (i.e., face-&gt;size can be&nbsp;0). If you need a specific &lsquo;font size&rsquo;, use <code><a href="ft2-cache_subsystem.html#ftc_manager_lookupsize">FTC_Manager_LookupSize</a></code> instead.</p>
1867 <p>Never change the face's transformation matrix (i.e., never call the <code><a href="ft2-sizing_and_scaling.html#ft_set_transform">FT_Set_Transform</a></code> function) on a returned face! If you need to transform glyphs, do it yourself after glyph loading.</p>
1868 <p>When you perform a lookup, out-of-memory errors are detected <em>within</em> the lookup and force incremental flushes of the cache until enough memory is released for the lookup to succeed.</p>
1869 <p>If a lookup fails with <code>FT_Err_Out_Of_Memory</code> the cache has already been completely flushed, and still no memory was available for the operation.</p>
1870 <hr>
1871
1872 <h2 id="ftc_manager_lookupsize">FTC_Manager_LookupSize<a class="headerlink" href="#ftc_manager_lookupsize" title="Permanent link">&para;</a></h2>
1873 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1874 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1875   <b>FTC_Manager_LookupSize</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>  manager,
1876                           <a href="ft2-cache_subsystem.html#ftc_scaler">FTC_Scaler</a>   scaler,
1877                           <a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a>     *asize );
1878 </code></pre></div>
1879
1880 <p>Retrieve the <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> object that corresponds to a given <code><a href="ft2-cache_subsystem.html#ftc_scalerrec">FTC_ScalerRec</a></code> pointer through a cache manager.</p>
1881 <h4>input</h4>
1882 <table class="fields">
1883 <tr><td class="val" id="manager">manager</td><td class="desc">
1884 <p>A handle to the cache manager.</p>
1885 </td></tr>
1886 <tr><td class="val" id="scaler">scaler</td><td class="desc">
1887 <p>A scaler handle.</p>
1888 </td></tr>
1889 </table>
1890
1891 <h4>output</h4>
1892 <table class="fields">
1893 <tr><td class="val" id="asize">asize</td><td class="desc">
1894 <p>A handle to the size object.</p>
1895 </td></tr>
1896 </table>
1897
1898 <h4>return</h4>
1899
1900 <p>FreeType error code. 0&nbsp;means success.</p>
1901 <h4>note</h4>
1902
1903 <p>The returned <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> object is always owned by the manager. You should never try to discard it by yourself.</p>
1904 <p>You can access the parent <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code> object simply as <code>size-&gt;face</code> if you need it. Note that this object is also owned by the manager.</p>
1905 <h4>note</h4>
1906
1907 <p>When you perform a lookup, out-of-memory errors are detected <em>within</em> the lookup and force incremental flushes of the cache until enough memory is released for the lookup to succeed.</p>
1908 <p>If a lookup fails with <code>FT_Err_Out_Of_Memory</code> the cache has already been completely flushed, and still no memory is available for the operation.</p>
1909 <hr>
1910
1911 <h2 id="ftc_manager_removefaceid">FTC_Manager_RemoveFaceID<a class="headerlink" href="#ftc_manager_removefaceid" title="Permanent link">&para;</a></h2>
1912 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1913 <div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1914   <b>FTC_Manager_RemoveFaceID</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>  manager,
1915                             <a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a>   face_id );
1916 </code></pre></div>
1917
1918 <p>A special function used to indicate to the cache manager that a given <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code> is no longer valid, either because its content changed, or because it was deallocated or uninstalled.</p>
1919 <h4>input</h4>
1920 <table class="fields">
1921 <tr><td class="val" id="manager">manager</td><td class="desc">
1922 <p>The cache manager handle.</p>
1923 </td></tr>
1924 <tr><td class="val" id="face_id">face_id</td><td class="desc">
1925 <p>The <code><a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a></code> to be removed.</p>
1926 </td></tr>
1927 </table>
1928
1929 <h4>note</h4>
1930
1931 <p>This function flushes all nodes from the cache corresponding to this <code>face_id</code>, with the exception of nodes with a non-null reference count.</p>
1932 <p>Such nodes are however modified internally so as to never appear in later lookups with the same <code>face_id</code> value, and to be immediately destroyed when released by all their users.</p>
1933 <hr>
1934
1935 <h2 id="ftc_node">FTC_Node<a class="headerlink" href="#ftc_node" title="Permanent link">&para;</a></h2>
1936 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1937 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_NodeRec_*  <b>FTC_Node</b>;
1938 </code></pre></div>
1939
1940 <p>An opaque handle to a cache node object. Each cache node is reference-counted. A node with a count of&nbsp;0 might be flushed out of a full cache whenever a lookup request is performed.</p>
1941 <p>If you look up nodes, you have the ability to &lsquo;acquire&rsquo; them, i.e., to increment their reference count. This will prevent the node from being flushed out of the cache until you explicitly &lsquo;release&rsquo; it (see <code><a href="ft2-cache_subsystem.html#ftc_node_unref">FTC_Node_Unref</a></code>).</p>
1942 <p>See also <code><a href="ft2-cache_subsystem.html#ftc_sbitcache_lookup">FTC_SBitCache_Lookup</a></code> and <code><a href="ft2-cache_subsystem.html#ftc_imagecache_lookup">FTC_ImageCache_Lookup</a></code>.</p>
1943 <hr>
1944
1945 <h2 id="ftc_node_unref">FTC_Node_Unref<a class="headerlink" href="#ftc_node_unref" title="Permanent link">&para;</a></h2>
1946 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1947 <div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1948   <b>FTC_Node_Unref</b>( <a href="ft2-cache_subsystem.html#ftc_node">FTC_Node</a>     node,
1949                   <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>  manager );
1950 </code></pre></div>
1951
1952 <p>Decrement a cache node's internal reference count. When the count reaches 0, it is not destroyed but becomes eligible for subsequent cache flushes.</p>
1953 <h4>input</h4>
1954 <table class="fields">
1955 <tr><td class="val" id="node">node</td><td class="desc">
1956 <p>The cache node handle.</p>
1957 </td></tr>
1958 <tr><td class="val" id="manager">manager</td><td class="desc">
1959 <p>The cache manager handle.</p>
1960 </td></tr>
1961 </table>
1962
1963 <hr>
1964
1965 <h2 id="ftc_imagecache">FTC_ImageCache<a class="headerlink" href="#ftc_imagecache" title="Permanent link">&para;</a></h2>
1966 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1967 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ImageCacheRec_*  <b>FTC_ImageCache</b>;
1968 </code></pre></div>
1969
1970 <p>A handle to a glyph image cache object. They are designed to hold many distinct glyph images while not exceeding a certain memory threshold.</p>
1971 <hr>
1972
1973 <h2 id="ftc_imagecache_new">FTC_ImageCache_New<a class="headerlink" href="#ftc_imagecache_new" title="Permanent link">&para;</a></h2>
1974 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
1975 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1976   <b>FTC_ImageCache_New</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>      manager,
1977                       <a href="ft2-cache_subsystem.html#ftc_imagecache">FTC_ImageCache</a>  *acache );
1978 </code></pre></div>
1979
1980 <p>Create a new glyph image cache.</p>
1981 <h4>input</h4>
1982 <table class="fields">
1983 <tr><td class="val" id="manager">manager</td><td class="desc">
1984 <p>The parent manager for the image cache.</p>
1985 </td></tr>
1986 </table>
1987
1988 <h4>output</h4>
1989 <table class="fields">
1990 <tr><td class="val" id="acache">acache</td><td class="desc">
1991 <p>A handle to the new glyph image cache object.</p>
1992 </td></tr>
1993 </table>
1994
1995 <h4>return</h4>
1996
1997 <p>FreeType error code. 0&nbsp;means success.</p>
1998 <hr>
1999
2000 <h2 id="ftc_imagecache_lookup">FTC_ImageCache_Lookup<a class="headerlink" href="#ftc_imagecache_lookup" title="Permanent link">&para;</a></h2>
2001 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2002 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
2003   <b>FTC_ImageCache_Lookup</b>( <a href="ft2-cache_subsystem.html#ftc_imagecache">FTC_ImageCache</a>  cache,
2004                          <a href="ft2-cache_subsystem.html#ftc_imagetype">FTC_ImageType</a>   type,
2005                          <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         gindex,
2006                          <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>       *aglyph,
2007                          <a href="ft2-cache_subsystem.html#ftc_node">FTC_Node</a>       *anode );
2008 </code></pre></div>
2009
2010 <p>Retrieve a given glyph image from a glyph image cache.</p>
2011 <h4>input</h4>
2012 <table class="fields">
2013 <tr><td class="val" id="cache">cache</td><td class="desc">
2014 <p>A handle to the source glyph image cache.</p>
2015 </td></tr>
2016 <tr><td class="val" id="type">type</td><td class="desc">
2017 <p>A pointer to a glyph image type descriptor.</p>
2018 </td></tr>
2019 <tr><td class="val" id="gindex">gindex</td><td class="desc">
2020 <p>The glyph index to retrieve.</p>
2021 </td></tr>
2022 </table>
2023
2024 <h4>output</h4>
2025 <table class="fields">
2026 <tr><td class="val" id="aglyph">aglyph</td><td class="desc">
2027 <p>The corresponding <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> object. 0&nbsp;in case of failure.</p>
2028 </td></tr>
2029 <tr><td class="val" id="anode">anode</td><td class="desc">
2030 <p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
2031 </td></tr>
2032 </table>
2033
2034 <h4>return</h4>
2035
2036 <p>FreeType error code. 0&nbsp;means success.</p>
2037 <h4>note</h4>
2038
2039 <p>The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with <code><a href="ft2-glyph_management.html#ft_glyph_copy">FT_Glyph_Copy</a></code> and modify the new one.</p>
2040 <p>If <code>anode</code> is <em>not</em> <code>NULL</code>, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>) will always be kept in the cache until you call <code><a href="ft2-cache_subsystem.html#ftc_node_unref">FTC_Node_Unref</a></code> to &lsquo;release&rsquo; it.</p>
2041 <p>If <code>anode</code> is <code>NULL</code>, the cache node is left unchanged, which means that the <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
2042 <hr>
2043
2044 <h2 id="ftc_sbit">FTC_SBit<a class="headerlink" href="#ftc_sbit" title="Permanent link">&para;</a></h2>
2045 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2046 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_SBitRec_*  <b>FTC_SBit</b>;
2047 </code></pre></div>
2048
2049 <p>A handle to a small bitmap descriptor. See the <code><a href="ft2-cache_subsystem.html#ftc_sbitrec">FTC_SBitRec</a></code> structure for details.</p>
2050 <hr>
2051
2052 <h2 id="ftc_sbitcache">FTC_SBitCache<a class="headerlink" href="#ftc_sbitcache" title="Permanent link">&para;</a></h2>
2053 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2054 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_SBitCacheRec_*  <b>FTC_SBitCache</b>;
2055 </code></pre></div>
2056
2057 <p>A handle to a small bitmap cache. These are special cache objects used to store small glyph bitmaps (and anti-aliased pixmaps) in a much more efficient way than the traditional glyph image cache implemented by <code><a href="ft2-cache_subsystem.html#ftc_imagecache">FTC_ImageCache</a></code>.</p>
2058 <hr>
2059
2060 <h2 id="ftc_sbitcache_new">FTC_SBitCache_New<a class="headerlink" href="#ftc_sbitcache_new" title="Permanent link">&para;</a></h2>
2061 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2062 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
2063   <b>FTC_SBitCache_New</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>     manager,
2064                      <a href="ft2-cache_subsystem.html#ftc_sbitcache">FTC_SBitCache</a>  *acache );
2065 </code></pre></div>
2066
2067 <p>Create a new cache to store small glyph bitmaps.</p>
2068 <h4>input</h4>
2069 <table class="fields">
2070 <tr><td class="val" id="manager">manager</td><td class="desc">
2071 <p>A handle to the source cache manager.</p>
2072 </td></tr>
2073 </table>
2074
2075 <h4>output</h4>
2076 <table class="fields">
2077 <tr><td class="val" id="acache">acache</td><td class="desc">
2078 <p>A handle to the new sbit cache. <code>NULL</code> in case of error.</p>
2079 </td></tr>
2080 </table>
2081
2082 <h4>return</h4>
2083
2084 <p>FreeType error code. 0&nbsp;means success.</p>
2085 <hr>
2086
2087 <h2 id="ftc_sbitcache_lookup">FTC_SBitCache_Lookup<a class="headerlink" href="#ftc_sbitcache_lookup" title="Permanent link">&para;</a></h2>
2088 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2089 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
2090   <b>FTC_SBitCache_Lookup</b>( <a href="ft2-cache_subsystem.html#ftc_sbitcache">FTC_SBitCache</a>    cache,
2091                         <a href="ft2-cache_subsystem.html#ftc_imagetype">FTC_ImageType</a>    type,
2092                         <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>          gindex,
2093                         <a href="ft2-cache_subsystem.html#ftc_sbit">FTC_SBit</a>        *sbit,
2094                         <a href="ft2-cache_subsystem.html#ftc_node">FTC_Node</a>        *anode );
2095 </code></pre></div>
2096
2097 <p>Look up a given small glyph bitmap in a given sbit cache and &lsquo;lock&rsquo; it to prevent its flushing from the cache until needed.</p>
2098 <h4>input</h4>
2099 <table class="fields">
2100 <tr><td class="val" id="cache">cache</td><td class="desc">
2101 <p>A handle to the source sbit cache.</p>
2102 </td></tr>
2103 <tr><td class="val" id="type">type</td><td class="desc">
2104 <p>A pointer to the glyph image type descriptor.</p>
2105 </td></tr>
2106 <tr><td class="val" id="gindex">gindex</td><td class="desc">
2107 <p>The glyph index.</p>
2108 </td></tr>
2109 </table>
2110
2111 <h4>output</h4>
2112 <table class="fields">
2113 <tr><td class="val" id="sbit">sbit</td><td class="desc">
2114 <p>A handle to a small bitmap descriptor.</p>
2115 </td></tr>
2116 <tr><td class="val" id="anode">anode</td><td class="desc">
2117 <p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
2118 </td></tr>
2119 </table>
2120
2121 <h4>return</h4>
2122
2123 <p>FreeType error code. 0&nbsp;means success.</p>
2124 <h4>note</h4>
2125
2126 <p>The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.</p>
2127 <p>The descriptor's <code>buffer</code> field is set to&nbsp;0 to indicate a missing glyph bitmap.</p>
2128 <p>If <code>anode</code> is <em>not</em> <code>NULL</code>, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call <code><a href="ft2-cache_subsystem.html#ftc_node_unref">FTC_Node_Unref</a></code> to &lsquo;release&rsquo; it.</p>
2129 <p>If <code>anode</code> is <code>NULL</code>, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
2130 <hr>
2131
2132 <h2 id="ftc_cmapcache">FTC_CMapCache<a class="headerlink" href="#ftc_cmapcache" title="Permanent link">&para;</a></h2>
2133 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2134 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_CMapCacheRec_*  <b>FTC_CMapCache</b>;
2135 </code></pre></div>
2136
2137 <p>An opaque handle used to model a charmap cache. This cache is to hold character codes -&gt; glyph indices mappings.</p>
2138 <hr>
2139
2140 <h2 id="ftc_cmapcache_new">FTC_CMapCache_New<a class="headerlink" href="#ftc_cmapcache_new" title="Permanent link">&para;</a></h2>
2141 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2142 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
2143   <b>FTC_CMapCache_New</b>( <a href="ft2-cache_subsystem.html#ftc_manager">FTC_Manager</a>     manager,
2144                      <a href="ft2-cache_subsystem.html#ftc_cmapcache">FTC_CMapCache</a>  *acache );
2145 </code></pre></div>
2146
2147 <p>Create a new charmap cache.</p>
2148 <h4>input</h4>
2149 <table class="fields">
2150 <tr><td class="val" id="manager">manager</td><td class="desc">
2151 <p>A handle to the cache manager.</p>
2152 </td></tr>
2153 </table>
2154
2155 <h4>output</h4>
2156 <table class="fields">
2157 <tr><td class="val" id="acache">acache</td><td class="desc">
2158 <p>A new cache handle. <code>NULL</code> in case of error.</p>
2159 </td></tr>
2160 </table>
2161
2162 <h4>return</h4>
2163
2164 <p>FreeType error code. 0&nbsp;means success.</p>
2165 <h4>note</h4>
2166
2167 <p>Like all other caches, this one will be destroyed with the cache manager.</p>
2168 <hr>
2169
2170 <h2 id="ftc_cmapcache_lookup">FTC_CMapCache_Lookup<a class="headerlink" href="#ftc_cmapcache_lookup" title="Permanent link">&para;</a></h2>
2171 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2172 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> )
2173   <b>FTC_CMapCache_Lookup</b>( <a href="ft2-cache_subsystem.html#ftc_cmapcache">FTC_CMapCache</a>  cache,
2174                         <a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a>     face_id,
2175                         <a href="ft2-basic_types.html#ft_int">FT_Int</a>         cmap_index,
2176                         <a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>      char_code );
2177 </code></pre></div>
2178
2179 <p>Translate a character code into a glyph index, using the charmap cache.</p>
2180 <h4>input</h4>
2181 <table class="fields">
2182 <tr><td class="val" id="cache">cache</td><td class="desc">
2183 <p>A charmap cache handle.</p>
2184 </td></tr>
2185 <tr><td class="val" id="face_id">face_id</td><td class="desc">
2186 <p>The source face ID.</p>
2187 </td></tr>
2188 <tr><td class="val" id="cmap_index">cmap_index</td><td class="desc">
2189 <p>The index of the charmap in the source face. Any negative value means to use the cache <code><a href="ft2-face_creation.html#ft_face">FT_Face</a></code>'s default charmap.</p>
2190 </td></tr>
2191 <tr><td class="val" id="char_code">char_code</td><td class="desc">
2192 <p>The character code (in the corresponding charmap).</p>
2193 </td></tr>
2194 </table>
2195
2196 <h4>return</h4>
2197
2198 <p>Glyph index. 0&nbsp;means &lsquo;no glyph&rsquo;.</p>
2199 <hr>
2200
2201 <h2 id="ftc_scalerrec">FTC_ScalerRec<a class="headerlink" href="#ftc_scalerrec" title="Permanent link">&para;</a></h2>
2202 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2203 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FTC_ScalerRec_
2204   {
2205     <a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a>  face_id;
2206     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>     width;
2207     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>     height;
2208     <a href="ft2-basic_types.html#ft_int">FT_Int</a>      pixel;
2209     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>     x_res;
2210     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>     y_res;
2211
2212   } <b>FTC_ScalerRec</b>;
2213 </code></pre></div>
2214
2215 <p>A structure used to describe a given character size in either pixels or points to the cache manager. See <code><a href="ft2-cache_subsystem.html#ftc_manager_lookupsize">FTC_Manager_LookupSize</a></code>.</p>
2216 <h4>fields</h4>
2217 <table class="fields">
2218 <tr><td class="val" id="face_id">face_id</td><td class="desc">
2219 <p>The source face ID.</p>
2220 </td></tr>
2221 <tr><td class="val" id="width">width</td><td class="desc">
2222 <p>The character width.</p>
2223 </td></tr>
2224 <tr><td class="val" id="height">height</td><td class="desc">
2225 <p>The character height.</p>
2226 </td></tr>
2227 <tr><td class="val" id="pixel">pixel</td><td class="desc">
2228 <p>A Boolean. If 1, the <code>width</code> and <code>height</code> fields are interpreted as integer pixel character sizes. Otherwise, they are expressed as 1/64 of points.</p>
2229 </td></tr>
2230 <tr><td class="val" id="x_res">x_res</td><td class="desc">
2231 <p>Only used when <code>pixel</code> is value&nbsp;0 to indicate the horizontal resolution in dpi.</p>
2232 </td></tr>
2233 <tr><td class="val" id="y_res">y_res</td><td class="desc">
2234 <p>Only used when <code>pixel</code> is value&nbsp;0 to indicate the vertical resolution in dpi.</p>
2235 </td></tr>
2236 </table>
2237
2238 <h4>note</h4>
2239
2240 <p>This type is mainly used to retrieve <code><a href="ft2-sizing_and_scaling.html#ft_size">FT_Size</a></code> objects through the cache manager.</p>
2241 <hr>
2242
2243 <h2 id="ftc_scaler">FTC_Scaler<a class="headerlink" href="#ftc_scaler" title="Permanent link">&para;</a></h2>
2244 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2245 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ScalerRec_*  <b>FTC_Scaler</b>;
2246 </code></pre></div>
2247
2248 <p>A handle to an <code><a href="ft2-cache_subsystem.html#ftc_scalerrec">FTC_ScalerRec</a></code> structure.</p>
2249 <hr>
2250
2251 <h2 id="ftc_imagetyperec">FTC_ImageTypeRec<a class="headerlink" href="#ftc_imagetyperec" title="Permanent link">&para;</a></h2>
2252 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2253 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FTC_ImageTypeRec_
2254   {
2255     <a href="ft2-cache_subsystem.html#ftc_faceid">FTC_FaceID</a>  face_id;
2256     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>     width;
2257     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>     height;
2258     <a href="ft2-basic_types.html#ft_int32">FT_Int32</a>    flags;
2259
2260   } <b>FTC_ImageTypeRec</b>;
2261 </code></pre></div>
2262
2263 <p>A structure used to model the type of images in a glyph cache.</p>
2264 <h4>fields</h4>
2265 <table class="fields">
2266 <tr><td class="val" id="face_id">face_id</td><td class="desc">
2267 <p>The face ID.</p>
2268 </td></tr>
2269 <tr><td class="val" id="width">width</td><td class="desc">
2270 <p>The width in pixels.</p>
2271 </td></tr>
2272 <tr><td class="val" id="height">height</td><td class="desc">
2273 <p>The height in pixels.</p>
2274 </td></tr>
2275 <tr><td class="val" id="flags">flags</td><td class="desc">
2276 <p>The load flags, as in <code><a href="ft2-glyph_retrieval.html#ft_load_glyph">FT_Load_Glyph</a></code>.</p>
2277 </td></tr>
2278 </table>
2279
2280 <hr>
2281
2282 <h2 id="ftc_imagetype">FTC_ImageType<a class="headerlink" href="#ftc_imagetype" title="Permanent link">&para;</a></h2>
2283 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2284 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span> FTC_ImageTypeRec_*  <b>FTC_ImageType</b>;
2285 </code></pre></div>
2286
2287 <p>A handle to an <code><a href="ft2-cache_subsystem.html#ftc_imagetyperec">FTC_ImageTypeRec</a></code> structure.</p>
2288 <hr>
2289
2290 <h2 id="ftc_imagecache_lookupscaler">FTC_ImageCache_LookupScaler<a class="headerlink" href="#ftc_imagecache_lookupscaler" title="Permanent link">&para;</a></h2>
2291 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2292 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
2293   <b>FTC_ImageCache_LookupScaler</b>( <a href="ft2-cache_subsystem.html#ftc_imagecache">FTC_ImageCache</a>  cache,
2294                                <a href="ft2-cache_subsystem.html#ftc_scaler">FTC_Scaler</a>      scaler,
2295                                <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>        load_flags,
2296                                <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         gindex,
2297                                <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>       *aglyph,
2298                                <a href="ft2-cache_subsystem.html#ftc_node">FTC_Node</a>       *anode );
2299 </code></pre></div>
2300
2301 <p>A variant of <code><a href="ft2-cache_subsystem.html#ftc_imagecache_lookup">FTC_ImageCache_Lookup</a></code> that uses an <code><a href="ft2-cache_subsystem.html#ftc_scalerrec">FTC_ScalerRec</a></code> to specify the face ID and its size.</p>
2302 <h4>input</h4>
2303 <table class="fields">
2304 <tr><td class="val" id="cache">cache</td><td class="desc">
2305 <p>A handle to the source glyph image cache.</p>
2306 </td></tr>
2307 <tr><td class="val" id="scaler">scaler</td><td class="desc">
2308 <p>A pointer to a scaler descriptor.</p>
2309 </td></tr>
2310 <tr><td class="val" id="load_flags">load_flags</td><td class="desc">
2311 <p>The corresponding load flags.</p>
2312 </td></tr>
2313 <tr><td class="val" id="gindex">gindex</td><td class="desc">
2314 <p>The glyph index to retrieve.</p>
2315 </td></tr>
2316 </table>
2317
2318 <h4>output</h4>
2319 <table class="fields">
2320 <tr><td class="val" id="aglyph">aglyph</td><td class="desc">
2321 <p>The corresponding <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> object. 0&nbsp;in case of failure.</p>
2322 </td></tr>
2323 <tr><td class="val" id="anode">anode</td><td class="desc">
2324 <p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
2325 </td></tr>
2326 </table>
2327
2328 <h4>return</h4>
2329
2330 <p>FreeType error code. 0&nbsp;means success.</p>
2331 <h4>note</h4>
2332
2333 <p>The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with <code><a href="ft2-glyph_management.html#ft_glyph_copy">FT_Glyph_Copy</a></code> and modify the new one.</p>
2334 <p>If <code>anode</code> is <em>not</em> <code>NULL</code>, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>) will always be kept in the cache until you call <code><a href="ft2-cache_subsystem.html#ftc_node_unref">FTC_Node_Unref</a></code> to &lsquo;release&rsquo; it.</p>
2335 <p>If <code>anode</code> is <code>NULL</code>, the cache node is left unchanged, which means that the <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
2336 <p>Calls to <code><a href="ft2-sizing_and_scaling.html#ft_set_char_size">FT_Set_Char_Size</a></code> and friends have no effect on cached glyphs; you should always use the FreeType cache API instead.</p>
2337 <hr>
2338
2339 <h2 id="ftc_sbitrec">FTC_SBitRec<a class="headerlink" href="#ftc_sbitrec" title="Permanent link">&para;</a></h2>
2340 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2341 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FTC_SBitRec_
2342   {
2343     <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>   width;
2344     <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>   height;
2345     <a href="ft2-basic_types.html#ft_char">FT_Char</a>   left;
2346     <a href="ft2-basic_types.html#ft_char">FT_Char</a>   top;
2347
2348     <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>   format;
2349     <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>   max_grays;
2350     <a href="ft2-basic_types.html#ft_short">FT_Short</a>  pitch;
2351     <a href="ft2-basic_types.html#ft_char">FT_Char</a>   xadvance;
2352     <a href="ft2-basic_types.html#ft_char">FT_Char</a>   yadvance;
2353
2354     <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>*  buffer;
2355
2356   } <b>FTC_SBitRec</b>;
2357 </code></pre></div>
2358
2359 <p>A very compact structure used to describe a small glyph bitmap.</p>
2360 <h4>fields</h4>
2361 <table class="fields">
2362 <tr><td class="val" id="width">width</td><td class="desc">
2363 <p>The bitmap width in pixels.</p>
2364 </td></tr>
2365 <tr><td class="val" id="height">height</td><td class="desc">
2366 <p>The bitmap height in pixels.</p>
2367 </td></tr>
2368 <tr><td class="val" id="left">left</td><td class="desc">
2369 <p>The horizontal distance from the pen position to the left bitmap border (a.k.a. &lsquo;left side bearing&rsquo;, or &lsquo;lsb&rsquo;).</p>
2370 </td></tr>
2371 <tr><td class="val" id="top">top</td><td class="desc">
2372 <p>The vertical distance from the pen position (on the baseline) to the upper bitmap border (a.k.a. &lsquo;top side bearing&rsquo;). The distance is positive for upwards y&nbsp;coordinates.</p>
2373 </td></tr>
2374 <tr><td class="val" id="format">format</td><td class="desc">
2375 <p>The format of the glyph bitmap (monochrome or gray).</p>
2376 </td></tr>
2377 <tr><td class="val" id="max_grays">max_grays</td><td class="desc">
2378 <p>Maximum gray level value (in the range 1 to&nbsp;255).</p>
2379 </td></tr>
2380 <tr><td class="val" id="pitch">pitch</td><td class="desc">
2381 <p>The number of bytes per bitmap line. May be positive or negative.</p>
2382 </td></tr>
2383 <tr><td class="val" id="xadvance">xadvance</td><td class="desc">
2384 <p>The horizontal advance width in pixels.</p>
2385 </td></tr>
2386 <tr><td class="val" id="yadvance">yadvance</td><td class="desc">
2387 <p>The vertical advance height in pixels.</p>
2388 </td></tr>
2389 <tr><td class="val" id="buffer">buffer</td><td class="desc">
2390 <p>A pointer to the bitmap pixels.</p>
2391 </td></tr>
2392 </table>
2393
2394 <hr>
2395
2396 <h2 id="ftc_sbitcache_lookupscaler">FTC_SBitCache_LookupScaler<a class="headerlink" href="#ftc_sbitcache_lookupscaler" title="Permanent link">&para;</a></h2>
2397 <p>Defined in FT_CACHE_H (freetype/ftcache.h).</p>
2398 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
2399   <b>FTC_SBitCache_LookupScaler</b>( <a href="ft2-cache_subsystem.html#ftc_sbitcache">FTC_SBitCache</a>  cache,
2400                               <a href="ft2-cache_subsystem.html#ftc_scaler">FTC_Scaler</a>     scaler,
2401                               <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>       load_flags,
2402                               <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>        gindex,
2403                               <a href="ft2-cache_subsystem.html#ftc_sbit">FTC_SBit</a>      *sbit,
2404                               <a href="ft2-cache_subsystem.html#ftc_node">FTC_Node</a>      *anode );
2405 </code></pre></div>
2406
2407 <p>A variant of <code><a href="ft2-cache_subsystem.html#ftc_sbitcache_lookup">FTC_SBitCache_Lookup</a></code> that uses an <code><a href="ft2-cache_subsystem.html#ftc_scalerrec">FTC_ScalerRec</a></code> to specify the face ID and its size.</p>
2408 <h4>input</h4>
2409 <table class="fields">
2410 <tr><td class="val" id="cache">cache</td><td class="desc">
2411 <p>A handle to the source sbit cache.</p>
2412 </td></tr>
2413 <tr><td class="val" id="scaler">scaler</td><td class="desc">
2414 <p>A pointer to the scaler descriptor.</p>
2415 </td></tr>
2416 <tr><td class="val" id="load_flags">load_flags</td><td class="desc">
2417 <p>The corresponding load flags.</p>
2418 </td></tr>
2419 <tr><td class="val" id="gindex">gindex</td><td class="desc">
2420 <p>The glyph index.</p>
2421 </td></tr>
2422 </table>
2423
2424 <h4>output</h4>
2425 <table class="fields">
2426 <tr><td class="val" id="sbit">sbit</td><td class="desc">
2427 <p>A handle to a small bitmap descriptor.</p>
2428 </td></tr>
2429 <tr><td class="val" id="anode">anode</td><td class="desc">
2430 <p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
2431 </td></tr>
2432 </table>
2433
2434 <h4>return</h4>
2435
2436 <p>FreeType error code. 0&nbsp;means success.</p>
2437 <h4>note</h4>
2438
2439 <p>The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.</p>
2440 <p>The descriptor's <code>buffer</code> field is set to&nbsp;0 to indicate a missing glyph bitmap.</p>
2441 <p>If <code>anode</code> is <em>not</em> <code>NULL</code>, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call <code><a href="ft2-cache_subsystem.html#ftc_node_unref">FTC_Node_Unref</a></code> to &lsquo;release&rsquo; it.</p>
2442 <p>If <code>anode</code> is <code>NULL</code>, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!</p>
2443 <hr>
2444                 
2445               
2446               
2447                 
2448
2449
2450               
2451             </article>
2452           </div>
2453         </div>
2454         
2455       </main>
2456       
2457         
2458 <footer class="md-footer">
2459   
2460     <nav class="md-footer__inner md-grid" aria-label="Footer">
2461       
2462         
2463         <a href="ft2-lcd_rendering.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Subpixel Rendering" rel="prev">
2464           <div class="md-footer__button md-icon">
2465             <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
2466           </div>
2467           <div class="md-footer__title">
2468             <div class="md-ellipsis">
2469               <span class="md-footer__direction">
2470                 Previous
2471               </span>
2472               Subpixel Rendering
2473             </div>
2474           </div>
2475         </a>
2476       
2477       
2478         
2479         <a href="ft2-computations.html" class="md-footer__link md-footer__link--next" aria-label="Next: Computations" rel="next">
2480           <div class="md-footer__title">
2481             <div class="md-ellipsis">
2482               <span class="md-footer__direction">
2483                 Next
2484               </span>
2485               Computations
2486             </div>
2487           </div>
2488           <div class="md-footer__button md-icon">
2489             <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
2490           </div>
2491         </a>
2492       
2493     </nav>
2494   
2495   <div class="md-footer-meta md-typeset">
2496     <div class="md-footer-meta__inner md-grid">
2497       <div class="md-footer-copyright">
2498         
2499           <div class="md-footer-copyright__highlight">
2500             Copyright 2023 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
2501           </div>
2502         
2503         Made with
2504         <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2505           Material for MkDocs
2506         </a>
2507         
2508       </div>
2509       
2510     </div>
2511   </div>
2512 </footer>
2513       
2514     </div>
2515     <div class="md-dialog" data-md-component="dialog">
2516       <div class="md-dialog__inner md-typeset"></div>
2517     </div>
2518     <script id="__config" type="application/json">{"base": ".", "features": [], "search": "assets/javascripts/workers/search.477d984a.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "version": null}</script>
2519     
2520     
2521       <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
2522       
2523         <script src="javascripts/extra.js"></script>
2524       
2525     
2526   </body>
2527 </html>