]>
Commit | Line | Data |
---|---|---|
7407ac7f BB |
1 | /***************************************************************************/ |
2 | /* */ | |
3 | /* ftbitmap.h */ | |
4 | /* */ | |
5 | /* FreeType utility functions for bitmaps (specification). */ | |
6 | /* */ | |
7 | /* Copyright 2004, 2005, 2006, 2008 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 __FTBITMAP_H__ | |
20 | #define __FTBITMAP_H__ | |
21 | ||
22 | ||
23 | #include <ft2build.h> | |
24 | #include FT_FREETYPE_H | |
25 | ||
26 | #ifdef FREETYPE_H | |
27 | #error "freetype.h of FreeType 1 has been loaded!" | |
28 | #error "Please fix the directory search order for header files" | |
29 | #error "so that freetype.h of FreeType 2 is found first." | |
30 | #endif | |
31 | ||
32 | ||
33 | FT_BEGIN_HEADER | |
34 | ||
35 | ||
36 | /*************************************************************************/ | |
37 | /* */ | |
38 | /* <Section> */ | |
39 | /* bitmap_handling */ | |
40 | /* */ | |
41 | /* <Title> */ | |
42 | /* Bitmap Handling */ | |
43 | /* */ | |
44 | /* <Abstract> */ | |
45 | /* Handling FT_Bitmap objects. */ | |
46 | /* */ | |
47 | /* <Description> */ | |
48 | /* This section contains functions for converting FT_Bitmap objects. */ | |
49 | /* */ | |
50 | /*************************************************************************/ | |
51 | ||
52 | ||
53 | /*************************************************************************/ | |
54 | /* */ | |
55 | /* <Function> */ | |
56 | /* FT_Bitmap_New */ | |
57 | /* */ | |
58 | /* <Description> */ | |
59 | /* Initialize a pointer to an @FT_Bitmap structure. */ | |
60 | /* */ | |
61 | /* <InOut> */ | |
62 | /* abitmap :: A pointer to the bitmap structure. */ | |
63 | /* */ | |
64 | FT_EXPORT( void ) | |
65 | FT_Bitmap_New( FT_Bitmap *abitmap ); | |
66 | ||
67 | ||
68 | /*************************************************************************/ | |
69 | /* */ | |
70 | /* <Function> */ | |
71 | /* FT_Bitmap_Copy */ | |
72 | /* */ | |
73 | /* <Description> */ | |
74 | /* Copy a bitmap into another one. */ | |
75 | /* */ | |
76 | /* <Input> */ | |
77 | /* library :: A handle to a library object. */ | |
78 | /* */ | |
79 | /* source :: A handle to the source bitmap. */ | |
80 | /* */ | |
81 | /* <Output> */ | |
82 | /* target :: A handle to the target bitmap. */ | |
83 | /* */ | |
84 | /* <Return> */ | |
85 | /* FreeType error code. 0~means success. */ | |
86 | /* */ | |
87 | FT_EXPORT( FT_Error ) | |
88 | FT_Bitmap_Copy( FT_Library library, | |
89 | const FT_Bitmap *source, | |
90 | FT_Bitmap *target); | |
91 | ||
92 | ||
93 | /*************************************************************************/ | |
94 | /* */ | |
95 | /* <Function> */ | |
96 | /* FT_Bitmap_Embolden */ | |
97 | /* */ | |
98 | /* <Description> */ | |
99 | /* Embolden a bitmap. The new bitmap will be about `xStrength' */ | |
100 | /* pixels wider and `yStrength' pixels higher. The left and bottom */ | |
101 | /* borders are kept unchanged. */ | |
102 | /* */ | |
103 | /* <Input> */ | |
104 | /* library :: A handle to a library object. */ | |
105 | /* */ | |
106 | /* xStrength :: How strong the glyph is emboldened horizontally. */ | |
107 | /* Expressed in 26.6 pixel format. */ | |
108 | /* */ | |
109 | /* yStrength :: How strong the glyph is emboldened vertically. */ | |
110 | /* Expressed in 26.6 pixel format. */ | |
111 | /* */ | |
112 | /* <InOut> */ | |
113 | /* bitmap :: A handle to the target bitmap. */ | |
114 | /* */ | |
115 | /* <Return> */ | |
116 | /* FreeType error code. 0~means success. */ | |
117 | /* */ | |
118 | /* <Note> */ | |
119 | /* The current implementation restricts `xStrength' to be less than */ | |
120 | /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ | |
121 | /* */ | |
122 | /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ | |
123 | /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ | |
124 | /* */ | |
125 | FT_EXPORT( FT_Error ) | |
126 | FT_Bitmap_Embolden( FT_Library library, | |
127 | FT_Bitmap* bitmap, | |
128 | FT_Pos xStrength, | |
129 | FT_Pos yStrength ); | |
130 | ||
131 | ||
132 | /*************************************************************************/ | |
133 | /* */ | |
134 | /* <Function> */ | |
135 | /* FT_Bitmap_Convert */ | |
136 | /* */ | |
137 | /* <Description> */ | |
138 | /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, or 8bpp to a */ | |
139 | /* bitmap object with depth 8bpp, making the number of used bytes per */ | |
140 | /* line (a.k.a. the `pitch') a multiple of `alignment'. */ | |
141 | /* */ | |
142 | /* <Input> */ | |
143 | /* library :: A handle to a library object. */ | |
144 | /* */ | |
145 | /* source :: The source bitmap. */ | |
146 | /* */ | |
147 | /* alignment :: The pitch of the bitmap is a multiple of this */ | |
148 | /* parameter. Common values are 1, 2, or 4. */ | |
149 | /* */ | |
150 | /* <Output> */ | |
151 | /* target :: The target bitmap. */ | |
152 | /* */ | |
153 | /* <Return> */ | |
154 | /* FreeType error code. 0~means success. */ | |
155 | /* */ | |
156 | /* <Note> */ | |
157 | /* It is possible to call @FT_Bitmap_Convert multiple times without */ | |
158 | /* calling @FT_Bitmap_Done (the memory is simply reallocated). */ | |
159 | /* */ | |
160 | /* Use @FT_Bitmap_Done to finally remove the bitmap object. */ | |
161 | /* */ | |
162 | /* The `library' argument is taken to have access to FreeType's */ | |
163 | /* memory handling functions. */ | |
164 | /* */ | |
165 | FT_EXPORT( FT_Error ) | |
166 | FT_Bitmap_Convert( FT_Library library, | |
167 | const FT_Bitmap *source, | |
168 | FT_Bitmap *target, | |
169 | FT_Int alignment ); | |
170 | ||
171 | ||
172 | /*************************************************************************/ | |
173 | /* */ | |
174 | /* <Function> */ | |
175 | /* FT_GlyphSlot_Own_Bitmap */ | |
176 | /* */ | |
177 | /* <Description> */ | |
178 | /* Make sure that a glyph slot owns `slot->bitmap'. */ | |
179 | /* */ | |
180 | /* <Input> */ | |
181 | /* slot :: The glyph slot. */ | |
182 | /* */ | |
183 | /* <Return> */ | |
184 | /* FreeType error code. 0~means success. */ | |
185 | /* */ | |
186 | /* <Note> */ | |
187 | /* This function is to be used in combination with */ | |
188 | /* @FT_Bitmap_Embolden. */ | |
189 | /* */ | |
190 | FT_EXPORT( FT_Error ) | |
191 | FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); | |
192 | ||
193 | ||
194 | /*************************************************************************/ | |
195 | /* */ | |
196 | /* <Function> */ | |
197 | /* FT_Bitmap_Done */ | |
198 | /* */ | |
199 | /* <Description> */ | |
200 | /* Destroy a bitmap object created with @FT_Bitmap_New. */ | |
201 | /* */ | |
202 | /* <Input> */ | |
203 | /* library :: A handle to a library object. */ | |
204 | /* */ | |
205 | /* bitmap :: The bitmap object to be freed. */ | |
206 | /* */ | |
207 | /* <Return> */ | |
208 | /* FreeType error code. 0~means success. */ | |
209 | /* */ | |
210 | /* <Note> */ | |
211 | /* The `library' argument is taken to have access to FreeType's */ | |
212 | /* memory handling functions. */ | |
213 | /* */ | |
214 | FT_EXPORT( FT_Error ) | |
215 | FT_Bitmap_Done( FT_Library library, | |
216 | FT_Bitmap *bitmap ); | |
217 | ||
218 | ||
219 | /* */ | |
220 | ||
221 | ||
222 | FT_END_HEADER | |
223 | ||
224 | #endif /* __FTBITMAP_H__ */ | |
225 | ||
226 | ||
227 | /* END */ |