Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3918 | Serge | 1 | /***************************************************************************/ |
2 | /* */ |
||
3 | /* ftbitmap.h */ |
||
4 | /* */ |
||
5 | /* FreeType utility functions for bitmaps (specification). */ |
||
6 | /* */ |
||
7 | /* Copyright 2004-2006, 2008, 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 __FTBITMAP_H__ |
||
20 | #define __FTBITMAP_H__ |
||
21 | |||
22 | |||
23 | #include |
||
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 | /* |
||
39 | /* bitmap_handling */ |
||
40 | /* */ |
||
41 | /* |
||
42 | /* Bitmap Handling */ |
||
43 | /* */ |
||
44 | /* |
||
45 | /* Handling FT_Bitmap objects. */ |
||
46 | /* */ |
||
47 | /* |
||
48 | /* This section contains functions for converting FT_Bitmap objects. */ |
||
49 | /* */ |
||
50 | /*************************************************************************/ |
||
51 | |||
52 | |||
53 | /*************************************************************************/ |
||
54 | /* */ |
||
55 | /* |
||
56 | /* FT_Bitmap_New */ |
||
57 | /* */ |
||
58 | /* |
||
59 | /* Initialize a pointer to an @FT_Bitmap structure. */ |
||
60 | /* */ |
||
61 | /* |
||
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 | /* |
||
71 | /* FT_Bitmap_Copy */ |
||
72 | /* */ |
||
73 | /* |
||
74 | /* Copy a bitmap into another one. */ |
||
75 | /* */ |
||
76 | /* */ |
||
77 | /* library :: A handle to a library object. */ |
||
78 | /* */ |
||
79 | /* source :: A handle to the source bitmap. */ |
||
80 | /* */ |
||
81 | /* |
||
82 | /* target :: A handle to the target bitmap. */ |
||
83 | /* */ |
||
84 | /* |
||
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 | /* |
||
96 | /* FT_Bitmap_Embolden */ |
||
97 | /* */ |
||
98 | /* |
||
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 | /* */ |
||
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 | /* |
||
113 | /* bitmap :: A handle to the target bitmap. */ |
||
114 | /* */ |
||
115 | /* |
||
116 | /* FreeType error code. 0~means success. */ |
||
117 | /* */ |
||
118 | /* |
||
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 | /* |
||
135 | /* FT_Bitmap_Convert */ |
||
136 | /* */ |
||
137 | /* |
||
138 | /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ |
||
139 | /* to a bitmap object with depth 8bpp, making the number of used */ |
||
140 | /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */ |
||
141 | /* */ |
||
142 | /* */ |
||
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 | /* |
||
151 | /* target :: The target bitmap. */ |
||
152 | /* */ |
||
153 | /* |
||
154 | /* FreeType error code. 0~means success. */ |
||
155 | /* */ |
||
156 | /* |
||
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 | /* |
||
175 | /* FT_GlyphSlot_Own_Bitmap */ |
||
176 | /* */ |
||
177 | /* |
||
178 | /* Make sure that a glyph slot owns `slot->bitmap'. */ |
||
179 | /* */ |
||
180 | /* */ |
||
181 | /* slot :: The glyph slot. */ |
||
182 | /* */ |
||
183 | /* |
||
184 | /* FreeType error code. 0~means success. */ |
||
185 | /* */ |
||
186 | /* |
||
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 | /* |
||
197 | /* FT_Bitmap_Done */ |
||
198 | /* */ |
||
199 | /* |
||
200 | /* Destroy a bitmap object created with @FT_Bitmap_New. */ |
||
201 | /* */ |
||
202 | /* */ |
||
203 | /* library :: A handle to a library object. */ |
||
204 | /* */ |
||
205 | /* bitmap :: The bitmap object to be freed. */ |
||
206 | /* */ |
||
207 | /* |
||
208 | /* FreeType error code. 0~means success. */ |
||
209 | /* */ |
||
210 | /* |
||
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 */ |