00001 /***************************************************************************/ 00002 /* */ 00003 /* ftlzw.h */ 00004 /* */ 00005 /* LZW-compressed stream support. */ 00006 /* */ 00007 /* Copyright 2004, 2006 by */ 00008 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00009 /* */ 00010 /* This file is part of the FreeType project, and may only be used, */ 00011 /* modified, and distributed under the terms of the FreeType project */ 00012 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00013 /* this file you indicate that you have read the license and */ 00014 /* understand and accept it fully. */ 00015 /* */ 00016 /***************************************************************************/ 00017 00018 00019 #ifndef __FTLZW_H__ 00020 #define __FTLZW_H__ 00021 00022 #include <ft2build.h> 00023 #include FT_FREETYPE_H 00024 00025 #ifdef FREETYPE_H 00026 #error "freetype.h of FreeType 1 has been loaded!" 00027 #error "Please fix the directory search order for header files" 00028 #error "so that freetype.h of FreeType 2 is found first." 00029 #endif 00030 00031 00032 FT_BEGIN_HEADER 00033 00034 /*************************************************************************/ 00035 /* */ 00036 /* <Section> */ 00037 /* lzw */ 00038 /* */ 00039 /* <Title> */ 00040 /* LZW Streams */ 00041 /* */ 00042 /* <Abstract> */ 00043 /* Using LZW-compressed font files. */ 00044 /* */ 00045 /* <Description> */ 00046 /* This section contains the declaration of LZW-specific functions. */ 00047 /* */ 00048 /*************************************************************************/ 00049 00050 /************************************************************************ 00051 * 00052 * @function: 00053 * FT_Stream_OpenLZW 00054 * 00055 * @description: 00056 * Open a new stream to parse LZW-compressed font files. This is 00057 * mainly used to support the compressed `*.pcf.Z' fonts that come 00058 * with XFree86. 00059 * 00060 * @input: 00061 * stream :: The target embedding stream. 00062 * 00063 * source :: The source stream. 00064 * 00065 * @return: 00066 * FreeType error code. 0~means success. 00067 * 00068 * @note: 00069 * The source stream must be opened _before_ calling this function. 00070 * 00071 * Calling the internal function `FT_Stream_Close' on the new stream will 00072 * *not* call `FT_Stream_Close' on the source stream. None of the stream 00073 * objects will be released to the heap. 00074 * 00075 * The stream implementation is very basic and resets the decompression 00076 * process each time seeking backwards is needed within the stream 00077 * 00078 * In certain builds of the library, LZW compression recognition is 00079 * automatically handled when calling @FT_New_Face or @FT_Open_Face. 00080 * This means that if no font driver is capable of handling the raw 00081 * compressed file, the library will try to open a LZW stream from it 00082 * and re-open the face with it. 00083 * 00084 * This function may return `FT_Err_Unimplemented_Feature' if your build 00085 * of FreeType was not compiled with LZW support. 00086 */ 00087 FT_EXPORT( FT_Error ) 00088 FT_Stream_OpenLZW( FT_Stream stream, 00089 FT_Stream source ); 00090 00091 /* */ 00092 00093 00094 FT_END_HEADER 00095 00096 #endif /* __FTLZW_H__ */ 00097 00098 00099 /* END */