ftbzip2.h revision ec0bab5697bb31ba980810145f62e3799946ec60
1071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/***************************************************************************/ 2071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* */ 3071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* ftbzip2.h */ 4071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* */ 5071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* Bzip2-compressed stream support. */ 6071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* */ 7071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* Copyright 2010 by */ 8071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* Joel Klinghed. */ 9071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* */ 10fc8f0e14ad142ed811e90fbd9a30e419e301c717Chris Lattner/* This file is part of the FreeType project, and may only be used, */ 11071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* modified, and distributed under the terms of the FreeType project */ 12071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* this file you indicate that you have read the license and */ 14071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* understand and accept it fully. */ 15071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/* */ 16071cc7deffad608165b1ddd5263e8bf181861520Charles Davis/***************************************************************************/ 17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 18071cc7deffad608165b1ddd5263e8bf181861520Charles Davis 19942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#ifndef __FTBZIP2_H__ 20dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson#define __FTBZIP2_H__ 21dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson 22dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson#include <ft2build.h> 23071cc7deffad608165b1ddd5263e8bf181861520Charles Davis#include FT_FREETYPE_H 24071cc7deffad608165b1ddd5263e8bf181861520Charles Davis 25071cc7deffad608165b1ddd5263e8bf181861520Charles Davis#ifdef FREETYPE_H 26071cc7deffad608165b1ddd5263e8bf181861520Charles Davis#error "freetype.h of FreeType 1 has been loaded!" 27942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#error "Please fix the directory search order for header files" 28942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#error "so that freetype.h of FreeType 2 is found first." 29942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner#endif 30942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner 31942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner 32651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesFT_BEGIN_HEADER 33651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 34651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /*************************************************************************/ 35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /* */ 36942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner /* <Section> */ 37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /* bzip2 */ 38651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /* */ 39651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /* <Title> */ 40942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner /* BZIP2 Streams */ 41942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner /* */ 42942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner /* <Abstract> */ 43071cc7deffad608165b1ddd5263e8bf181861520Charles Davis /* Using bzip2-compressed font files. */ 44071cc7deffad608165b1ddd5263e8bf181861520Charles Davis /* */ 45071cc7deffad608165b1ddd5263e8bf181861520Charles Davis /* <Description> */ 46071cc7deffad608165b1ddd5263e8bf181861520Charles Davis /* This section contains the declaration of Bzip2-specific functions. */ 47071cc7deffad608165b1ddd5263e8bf181861520Charles Davis /* */ 4884e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner /*************************************************************************/ 49651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 50424ae9882e8a6eecc9dfe7c2d8623e72b2563873Charles Davis 51651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines /************************************************************************ 52a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer * 53a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer * @function: 54424ae9882e8a6eecc9dfe7c2d8623e72b2563873Charles Davis * FT_Stream_OpenBzip2 55a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer * 56424ae9882e8a6eecc9dfe7c2d8623e72b2563873Charles Davis * @description: 57dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * Open a new stream to parse bzip2-compressed font files. This is 58651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines * mainly used to support the compressed `*.pcf.bz2' fonts that come 59dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * with XFree86. 60dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * 61dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * @input: 62dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * stream :: 63dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * The target embedding stream. 64dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * 65dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * source :: 665c3633fa57f27b0909ab5767715c4e66b8920165Ken Dyck * The source stream. 67bcfd1f55bfbb3e5944cd5e03d07b343e280838c4Douglas Gregor * 685c3633fa57f27b0909ab5767715c4e66b8920165Ken Dyck * @return: 695c3633fa57f27b0909ab5767715c4e66b8920165Ken Dyck * FreeType error code. 0~means success. 70dae0cb52e4e3d46bbfc9a4510909522197a92e54Anders Carlsson * 71942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner * @note: 72651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines * The source stream must be opened _before_ calling this function. 73942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner * 74942f9fe11d3a9583eef6bc4ca2549b1f0d1694daReid Kleckner * Calling the internal function `FT_Stream_Close' on the new stream will 75071cc7deffad608165b1ddd5263e8bf181861520Charles Davis * *not* call `FT_Stream_Close' on the source stream. None of the stream 76071cc7deffad608165b1ddd5263e8bf181861520Charles Davis * objects will be released to the heap. 77071cc7deffad608165b1ddd5263e8bf181861520Charles Davis * 7884e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * The stream implementation is very basic and resets the decompression 7984e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * process each time seeking backwards is needed within the stream. 8084e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * 81a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer * In certain builds of the library, bzip2 compression recognition is 8284e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * automatically handled when calling @FT_New_Face or @FT_Open_Face. 8384e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * This means that if no font driver is capable of handling the raw 8484e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * compressed file, the library will try to open a bzip2 compressed stream 8584e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * from it and re-open the face with it. 86a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer * 87a83297bd83ba7184935dddde04787f88dd52e182Benjamin Kramer * This function may return `FT_Err_Unimplemented_Feature' if your build 8884e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner * of FreeType was not compiled with bzip2 support. 8984e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner */ 9084e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner FT_EXPORT( FT_Error ) 9184e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner FT_Stream_OpenBzip2( FT_Stream stream, 9284e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner FT_Stream source ); 9384e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner 9484e9ab44af3a16f66d62590505db2036ef0aa03bReid Kleckner /* */ 95651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 96ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 97651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesFT_END_HEADER 98651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 99651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines#endif /* __FTBZIP2_H__ */ 100651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 101651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 102651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines/* END */ 1034410489163931892b568f0a43bd49c430a3aa3f5Reid Kleckner