| OLD | NEW |
| (Empty) |
| 1 /***************************************************************************/ | |
| 2 /* */ | |
| 3 /* ftgzip.h */ | |
| 4 /* */ | |
| 5 /* Gzip-compressed stream support. */ | |
| 6 /* */ | |
| 7 /* Copyright 2002-2004, 2006, 2013 by */ | |
| 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |
| 9 /* */ | |
| 10 /* This file is part of the FreeType project, and may only be used, */ | |
| 11 /* modified, and distributed under the terms of the FreeType project */ | |
| 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | |
| 13 /* this file you indicate that you have read the license and */ | |
| 14 /* understand and accept it fully. */ | |
| 15 /* */ | |
| 16 /***************************************************************************/ | |
| 17 | |
| 18 | |
| 19 #ifndef __FTGZIP_H__ | |
| 20 #define __FTGZIP_H__ | |
| 21 | |
| 22 #include <ft2build.h> | |
| 23 #include FT_FREETYPE_H | |
| 24 | |
| 25 #ifdef FREETYPE_H | |
| 26 #error "freetype.h of FreeType 1 has been loaded!" | |
| 27 #error "Please fix the directory search order for header files" | |
| 28 #error "so that freetype.h of FreeType 2 is found first." | |
| 29 #endif | |
| 30 | |
| 31 | |
| 32 FT_BEGIN_HEADER | |
| 33 | |
| 34 /*************************************************************************/ | |
| 35 /* */ | |
| 36 /* <Section> */ | |
| 37 /* gzip */ | |
| 38 /* */ | |
| 39 /* <Title> */ | |
| 40 /* GZIP Streams */ | |
| 41 /* */ | |
| 42 /* <Abstract> */ | |
| 43 /* Using gzip-compressed font files. */ | |
| 44 /* */ | |
| 45 /* <Description> */ | |
| 46 /* This section contains the declaration of Gzip-specific functions. */ | |
| 47 /* */ | |
| 48 /*************************************************************************/ | |
| 49 | |
| 50 | |
| 51 /************************************************************************ | |
| 52 * | |
| 53 * @function: | |
| 54 * FT_Stream_OpenGzip | |
| 55 * | |
| 56 * @description: | |
| 57 * Open a new stream to parse gzip-compressed font files. This is | |
| 58 * mainly used to support the compressed `*.pcf.gz' fonts that come | |
| 59 * with XFree86. | |
| 60 * | |
| 61 * @input: | |
| 62 * stream :: | |
| 63 * The target embedding stream. | |
| 64 * | |
| 65 * source :: | |
| 66 * The source stream. | |
| 67 * | |
| 68 * @return: | |
| 69 * FreeType error code. 0~means success. | |
| 70 * | |
| 71 * @note: | |
| 72 * The source stream must be opened _before_ calling this function. | |
| 73 * | |
| 74 * Calling the internal function `FT_Stream_Close' on the new stream will | |
| 75 * *not* call `FT_Stream_Close' on the source stream. None of the stream | |
| 76 * objects will be released to the heap. | |
| 77 * | |
| 78 * The stream implementation is very basic and resets the decompression | |
| 79 * process each time seeking backwards is needed within the stream. | |
| 80 * | |
| 81 * In certain builds of the library, gzip compression recognition is | |
| 82 * automatically handled when calling @FT_New_Face or @FT_Open_Face. | |
| 83 * This means that if no font driver is capable of handling the raw | |
| 84 * compressed file, the library will try to open a gzipped stream from | |
| 85 * it and re-open the face with it. | |
| 86 * | |
| 87 * This function may return `FT_Err_Unimplemented_Feature' if your build | |
| 88 * of FreeType was not compiled with zlib support. | |
| 89 */ | |
| 90 FT_EXPORT( FT_Error ) | |
| 91 FT_Stream_OpenGzip( FT_Stream stream, | |
| 92 FT_Stream source ); | |
| 93 | |
| 94 | |
| 95 /************************************************************************ | |
| 96 * | |
| 97 * @function: | |
| 98 * FT_Gzip_Uncompress | |
| 99 * | |
| 100 * @description: | |
| 101 * Decompress a zipped input buffer into an output buffer. This function | |
| 102 * is modeled after zlib's `uncompress' function. | |
| 103 * | |
| 104 * @input: | |
| 105 * memory :: | |
| 106 * A FreeType memory handle. | |
| 107 * | |
| 108 * input :: | |
| 109 * The input buffer. | |
| 110 * | |
| 111 * input_len :: | |
| 112 * The length of the input buffer. | |
| 113 * | |
| 114 * @output: | |
| 115 * output:: | |
| 116 * The output buffer. | |
| 117 * | |
| 118 * @inout: | |
| 119 * output_len :: | |
| 120 * Before calling the function, this is the the total size of the | |
| 121 * output buffer, which must be large enough to hold the entire | |
| 122 * uncompressed data (so the size of the uncompressed data must be | |
| 123 * known in advance). After calling the function, `output_len' is the | |
| 124 * size of the used data in `output'. | |
| 125 * | |
| 126 * @return: | |
| 127 * FreeType error code. 0~means success. | |
| 128 * | |
| 129 * @note: | |
| 130 * This function may return `FT_Err_Unimplemented_Feature' if your build | |
| 131 * of FreeType was not compiled with zlib support. | |
| 132 */ | |
| 133 FT_EXPORT( FT_Error ) | |
| 134 FT_Gzip_Uncompress( FT_Memory memory, | |
| 135 FT_Byte* output, | |
| 136 FT_ULong* output_len, | |
| 137 const FT_Byte* input, | |
| 138 FT_ULong input_len ); | |
| 139 | |
| 140 /* */ | |
| 141 | |
| 142 | |
| 143 FT_END_HEADER | |
| 144 | |
| 145 #endif /* __FTGZIP_H__ */ | |
| 146 | |
| 147 | |
| 148 /* END */ | |
| OLD | NEW |