ReactOS  0.4.15-dev-1068-g467feb9
ftgzip.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* ftgzip.h */
4 /* */
5 /* Gzip-compressed stream support. */
6 /* */
7 /* Copyright 2002-2018 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 
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  */
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 total size of the output
121  * buffer, which must be large enough to hold the entire uncompressed
122  * data (so the size of the uncompressed data must be known in
123  * advance). After calling the function, `output_len' is the size of
124  * 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  * @since:
134  * 2.5.1
135  */
138  FT_Byte* output,
139  FT_ULong* output_len,
140  const FT_Byte* input,
141  FT_ULong input_len );
142 
143  /* */
144 
145 
147 
148 #endif /* FTGZIP_H_ */
149 
150 
151 /* END */
int FT_Error
Definition: fttypes.h:300
static UCHAR ULONG UCHAR ULONG UCHAR * output
Definition: bcrypt.c:29
unsigned long FT_ULong
Definition: fttypes.h:253
#define FT_END_HEADER
Definition: ftheader.h:54
static char memory[1024 *256]
Definition: process.c:116
unsigned char FT_Byte
Definition: fttypes.h:154
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_BEGIN_HEADER FT_Stream_OpenGzip(FT_Stream stream, FT_Stream source)
Definition: ftgzip.c:787
Definition: parse.h:22
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
GLenum GLenum GLenum input
Definition: glext.h:9031
#define FT_EXPORT(x)
Definition: ftconfig.h:461
FT_Gzip_Uncompress(FT_Memory memory, FT_Byte *output, FT_ULong *output_len, const FT_Byte *input, FT_ULong input_len)
Definition: ftgzip.c:798