1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftgzip.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Gzip-compressed stream support. */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Copyright 2002, 2003, 2004, 2006 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTGZIP_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTGZIP_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!" 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files" 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first." 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* gzip */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Title> */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* GZIP Streams */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Abstract> */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Using gzip-compressed font files. */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This section contains the declaration of Gzip-specific functions. */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stream_OpenGzip 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Open a new stream to parse gzip-compressed font files. This is 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * mainly used to support the compressed `*.pcf.gz' fonts that come 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * with XFree86. 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stream :: 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target embedding stream. 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * source :: 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source stream. 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 690a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source stream must be opened _before_ calling this function. 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Calling the internal function `FT_Stream_Close' on the new stream will 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * *not* call `FT_Stream_Close' on the source stream. None of the stream 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * objects will be released to the heap. 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The stream implementation is very basic and resets the decompression 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * process each time seeking backwards is needed within the stream. 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * In certain builds of the library, gzip compression recognition is 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * automatically handled when calling @FT_New_Face or @FT_Open_Face. 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This means that if no font driver is capable of handling the raw 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * compressed file, the library will try to open a gzipped stream from 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * it and re-open the face with it. 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This function may return `FT_Err_Unimplemented_Feature' if your build 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * of FreeType was not compiled with zlib support. 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stream_OpenGzip( FT_Stream stream, 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stream source ); 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTGZIP_H__ */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 103