3 <html lang="en" class="no-js">
7 <meta name="viewport" content="width=device-width,initial-scale=1">
9 <meta name="description" content="API Reference Documentation for FreeType-2.13.2">
13 <meta name="author" content="FreeType Contributors">
16 <link rel="icon" href="images/favico.ico">
17 <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-7.1.9">
21 <title>BZIP2 Streams - FreeType-2.13.2 API Reference</title>
25 <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css">
28 <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css">
32 <meta name="theme-color" content="#4cae4f">
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>
47 <link rel="stylesheet" href="stylesheets/extra.css">
63 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green">
66 <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
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">
74 <a href="#bzip2-streams" class="md-skip">
79 <div data-md-component="announce">
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">
87 <img src="images/favico.ico" alt="logo">
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>
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
100 <div class="md-header__topic" data-md-component="header-topic">
101 <span class="md-ellipsis">
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>
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>
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>
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">
135 <ol class="md-search-result__list"></ol>
146 <div class="md-container" data-md-component="container">
151 <main class="md-main" data-md-component="main">
152 <div class="md-main__inner md-grid">
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">
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">
166 <img src="images/favico.ico" alt="logo">
169 FreeType-2.13.2 API Reference
172 <ul class="md-nav__list" data-md-scrollfix>
181 <li class="md-nav__item">
182 <a href="index.html" class="md-nav__link">
196 <li class="md-nav__item">
197 <a href="ft2-index.html" class="md-nav__link">
212 <li class="md-nav__item md-nav__item--nested">
215 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
217 <label class="md-nav__link" for="__nav_3">
219 <span class="md-nav__icon md-icon"></span>
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>
226 <ul class="md-nav__list" data-md-scrollfix>
232 <li class="md-nav__item">
233 <a href="ft2-preamble.html" class="md-nav__link">
244 <li class="md-nav__item">
245 <a href="ft2-header_inclusion.html" class="md-nav__link">
246 FreeType's header inclusion scheme
256 <li class="md-nav__item">
257 <a href="ft2-user_allocation.html" class="md-nav__link">
278 <li class="md-nav__item md-nav__item--nested">
281 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
283 <label class="md-nav__link" for="__nav_4">
285 <span class="md-nav__icon md-icon"></span>
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>
292 <ul class="md-nav__list" data-md-scrollfix>
298 <li class="md-nav__item">
299 <a href="ft2-basic_types.html" class="md-nav__link">
310 <li class="md-nav__item">
311 <a href="ft2-library_setup.html" class="md-nav__link">
322 <li class="md-nav__item">
323 <a href="ft2-face_creation.html" class="md-nav__link">
334 <li class="md-nav__item">
335 <a href="ft2-font_testing_macros.html" class="md-nav__link">
346 <li class="md-nav__item">
347 <a href="ft2-sizing_and_scaling.html" class="md-nav__link">
358 <li class="md-nav__item">
359 <a href="ft2-glyph_retrieval.html" class="md-nav__link">
370 <li class="md-nav__item">
371 <a href="ft2-character_mapping.html" class="md-nav__link">
382 <li class="md-nav__item">
383 <a href="ft2-information_retrieval.html" class="md-nav__link">
384 Information Retrieval
394 <li class="md-nav__item">
395 <a href="ft2-other_api_data.html" class="md-nav__link">
416 <li class="md-nav__item md-nav__item--nested">
419 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
421 <label class="md-nav__link" for="__nav_5">
423 <span class="md-nav__icon md-icon"></span>
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>
430 <ul class="md-nav__list" data-md-scrollfix>
436 <li class="md-nav__item">
437 <a href="ft2-glyph_variants.html" class="md-nav__link">
438 Unicode Variation Sequences
448 <li class="md-nav__item">
449 <a href="ft2-color_management.html" class="md-nav__link">
450 Glyph Color Management
460 <li class="md-nav__item">
461 <a href="ft2-layer_management.html" class="md-nav__link">
462 Glyph Layer Management
472 <li class="md-nav__item">
473 <a href="ft2-glyph_management.html" class="md-nav__link">
484 <li class="md-nav__item">
485 <a href="ft2-mac_specific.html" class="md-nav__link">
486 Mac Specific Interface
496 <li class="md-nav__item">
497 <a href="ft2-sizes_management.html" class="md-nav__link">
508 <li class="md-nav__item">
509 <a href="ft2-header_file_macros.html" class="md-nav__link">
530 <li class="md-nav__item md-nav__item--nested">
533 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
535 <label class="md-nav__link" for="__nav_6">
537 <span class="md-nav__icon md-icon"></span>
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>
544 <ul class="md-nav__list" data-md-scrollfix>
550 <li class="md-nav__item">
551 <a href="ft2-multiple_masters.html" class="md-nav__link">
562 <li class="md-nav__item">
563 <a href="ft2-truetype_tables.html" class="md-nav__link">
574 <li class="md-nav__item">
575 <a href="ft2-type1_tables.html" class="md-nav__link">
586 <li class="md-nav__item">
587 <a href="ft2-sfnt_names.html" class="md-nav__link">
598 <li class="md-nav__item">
599 <a href="ft2-bdf_fonts.html" class="md-nav__link">
610 <li class="md-nav__item">
611 <a href="ft2-cid_fonts.html" class="md-nav__link">
622 <li class="md-nav__item">
623 <a href="ft2-pfr_fonts.html" class="md-nav__link">
634 <li class="md-nav__item">
635 <a href="ft2-winfnt_fonts.html" class="md-nav__link">
646 <li class="md-nav__item">
647 <a href="ft2-svg_fonts.html" class="md-nav__link">
658 <li class="md-nav__item">
659 <a href="ft2-font_formats.html" class="md-nav__link">
670 <li class="md-nav__item">
671 <a href="ft2-gasp_table.html" class="md-nav__link">
692 <li class="md-nav__item md-nav__item--nested">
695 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
697 <label class="md-nav__link" for="__nav_7">
698 Controlling FreeType Modules
699 <span class="md-nav__icon md-icon"></span>
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
706 <ul class="md-nav__list" data-md-scrollfix>
712 <li class="md-nav__item">
713 <a href="ft2-auto_hinter.html" class="md-nav__link">
724 <li class="md-nav__item">
725 <a href="ft2-cff_driver.html" class="md-nav__link">
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
748 <li class="md-nav__item">
749 <a href="ft2-tt_driver.html" class="md-nav__link">
760 <li class="md-nav__item">
761 <a href="ft2-pcf_driver.html" class="md-nav__link">
772 <li class="md-nav__item">
773 <a href="ft2-ot_svg_driver.html" class="md-nav__link">
784 <li class="md-nav__item">
785 <a href="ft2-properties.html" class="md-nav__link">
796 <li class="md-nav__item">
797 <a href="ft2-parameter_tags.html" class="md-nav__link">
808 <li class="md-nav__item">
809 <a href="ft2-lcd_rendering.html" class="md-nav__link">
830 <li class="md-nav__item md-nav__item--nested">
833 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
835 <label class="md-nav__link" for="__nav_8">
837 <span class="md-nav__icon md-icon"></span>
839 <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
840 <label class="md-nav__title" for="__nav_8">
841 <span class="md-nav__icon md-icon"></span>
844 <ul class="md-nav__list" data-md-scrollfix>
850 <li class="md-nav__item">
851 <a href="ft2-cache_subsystem.html" class="md-nav__link">
874 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
877 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" checked>
879 <label class="md-nav__link" for="__nav_9">
881 <span class="md-nav__icon md-icon"></span>
883 <nav class="md-nav" aria-label="Support API" data-md-level="1">
884 <label class="md-nav__title" for="__nav_9">
885 <span class="md-nav__icon md-icon"></span>
888 <ul class="md-nav__list" data-md-scrollfix>
894 <li class="md-nav__item">
895 <a href="ft2-computations.html" class="md-nav__link">
906 <li class="md-nav__item">
907 <a href="ft2-list_processing.html" class="md-nav__link">
918 <li class="md-nav__item">
919 <a href="ft2-outline_processing.html" class="md-nav__link">
930 <li class="md-nav__item">
931 <a href="ft2-quick_advance.html" class="md-nav__link">
932 Quick retrieval of advance values
942 <li class="md-nav__item">
943 <a href="ft2-bitmap_handling.html" class="md-nav__link">
954 <li class="md-nav__item">
955 <a href="ft2-raster.html" class="md-nav__link">
966 <li class="md-nav__item">
967 <a href="ft2-glyph_stroker.html" class="md-nav__link">
978 <li class="md-nav__item">
979 <a href="ft2-system_interface.html" class="md-nav__link">
990 <li class="md-nav__item">
991 <a href="ft2-module_management.html" class="md-nav__link">
1002 <li class="md-nav__item">
1003 <a href="ft2-gzip.html" class="md-nav__link">
1014 <li class="md-nav__item">
1015 <a href="ft2-lzw.html" class="md-nav__link">
1028 <li class="md-nav__item md-nav__item--active">
1030 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
1036 <label class="md-nav__link md-nav__link--active" for="__toc">
1038 <span class="md-nav__icon md-icon"></span>
1041 <a href="ft2-bzip2.html" class="md-nav__link md-nav__link--active">
1046 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1053 <label class="md-nav__title" for="__toc">
1054 <span class="md-nav__icon md-icon"></span>
1057 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1059 <li class="md-nav__item">
1060 <a href="#synopsis" class="md-nav__link">
1066 <li class="md-nav__item">
1067 <a href="#ft_stream_openbzip2" class="md-nav__link">
1085 <li class="md-nav__item">
1086 <a href="ft2-debugging_apis.html" class="md-nav__link">
1087 External Debugging APIs
1107 <li class="md-nav__item md-nav__item--nested">
1110 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
1112 <label class="md-nav__link" for="__nav_10">
1114 <span class="md-nav__icon md-icon"></span>
1116 <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
1117 <label class="md-nav__title" for="__nav_10">
1118 <span class="md-nav__icon md-icon"></span>
1121 <ul class="md-nav__list" data-md-scrollfix>
1127 <li class="md-nav__item">
1128 <a href="ft2-error_enumerations.html" class="md-nav__link">
1139 <li class="md-nav__item">
1140 <a href="ft2-error_code_values.html" class="md-nav__link">
1161 <li class="md-nav__item md-nav__item--nested">
1164 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_11" type="checkbox" id="__nav_11" >
1166 <label class="md-nav__link" for="__nav_11">
1168 <span class="md-nav__icon md-icon"></span>
1170 <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
1171 <label class="md-nav__title" for="__nav_11">
1172 <span class="md-nav__icon md-icon"></span>
1175 <ul class="md-nav__list" data-md-scrollfix>
1181 <li class="md-nav__item">
1182 <a href="ft2-gx_validation.html" class="md-nav__link">
1183 TrueTypeGX/AAT Validation
1193 <li class="md-nav__item">
1194 <a href="ft2-incremental.html" class="md-nav__link">
1205 <li class="md-nav__item">
1206 <a href="ft2-truetype_engine.html" class="md-nav__link">
1217 <li class="md-nav__item">
1218 <a href="ft2-ot_validation.html" class="md-nav__link">
1239 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1240 <div class="md-sidebar__scrollwrap">
1241 <div class="md-sidebar__inner">
1243 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1250 <label class="md-nav__title" for="__toc">
1251 <span class="md-nav__icon md-icon"></span>
1254 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1256 <li class="md-nav__item">
1257 <a href="#synopsis" class="md-nav__link">
1263 <li class="md-nav__item">
1264 <a href="#ft_stream_openbzip2" class="md-nav__link">
1278 <div class="md-content" data-md-component="content">
1279 <article class="md-content__inner md-typeset">
1283 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » BZIP2 Streams</p>
1285 <h1 id="bzip2-streams">BZIP2 Streams<a class="headerlink" href="#bzip2-streams" title="Permanent link">¶</a></h1>
1286 <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2>
1287 <p>In certain builds of the library, bzip2 compression recognition is automatically handled when calling <code><a href="ft2-face_creation.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-face_creation.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a bzip2 compressed stream from it and re-open the face with it.</p>
1288 <p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance.</p>
1289 <p>This section contains the declaration of Bzip2-specific functions.</p>
1290 <h2 id="ft_stream_openbzip2">FT_Stream_OpenBzip2<a class="headerlink" href="#ft_stream_openbzip2" title="Permanent link">¶</a></h2>
1291 <p>Defined in FT_BZIP2_H (freetype/ftbzip2.h).</p>
1292 <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1293 <b>FT_Stream_OpenBzip2</b>( <a href="ft2-system_interface.html#ft_stream">FT_Stream</a> stream,
1294 <a href="ft2-system_interface.html#ft_stream">FT_Stream</a> source );
1297 <p>Open a new stream to parse bzip2-compressed font files. This is mainly used to support the compressed <code>*.pcf.bz2</code> fonts that come with XFree86.</p>
1299 <table class="fields">
1300 <tr><td class="val" id="stream">stream</td><td class="desc">
1301 <p>The target embedding stream.</p>
1303 <tr><td class="val" id="source">source</td><td class="desc">
1304 <p>The source stream.</p>
1310 <p>FreeType error code. 0 means success.</p>
1313 <p>The source stream must be opened <em>before</em> calling this function.</p>
1314 <p>Calling the internal function <code>FT_Stream_Close</code> on the new stream will <strong>not</strong> call <code>FT_Stream_Close</code> on the source stream. None of the stream objects will be released to the heap.</p>
1315 <p>This function may return <code>FT_Err_Unimplemented_Feature</code> if your build of FreeType was not compiled with bzip2 support.</p>
1331 <footer class="md-footer">
1333 <nav class="md-footer__inner md-grid" aria-label="Footer">
1336 <a href="ft2-lzw.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: LZW Streams" rel="prev">
1337 <div class="md-footer__button md-icon">
1338 <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>
1340 <div class="md-footer__title">
1341 <div class="md-ellipsis">
1342 <span class="md-footer__direction">
1352 <a href="ft2-debugging_apis.html" class="md-footer__link md-footer__link--next" aria-label="Next: External Debugging APIs" rel="next">
1353 <div class="md-footer__title">
1354 <div class="md-ellipsis">
1355 <span class="md-footer__direction">
1358 External Debugging APIs
1361 <div class="md-footer__button md-icon">
1362 <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>
1368 <div class="md-footer-meta md-typeset">
1369 <div class="md-footer-meta__inner md-grid">
1370 <div class="md-footer-copyright">
1372 <div class="md-footer-copyright__highlight">
1373 Copyright 2023 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1377 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1388 <div class="md-dialog" data-md-component="dialog">
1389 <div class="md-dialog__inner md-typeset"></div>
1391 <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>
1394 <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
1396 <script src="javascripts/extra.js"></script>