ReactOS  0.4.15-dev-2528-g5506091
ftbitmap.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* ftbitmap.h */
4 /* */
5 /* FreeType utility functions for bitmaps (specification). */
6 /* */
7 /* Copyright 2004-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 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 
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 handling @FT_Bitmap objects. */
49  /* Note that none of the functions changes the bitmap's `flow' (as */
50  /* indicated by the sign of the `pitch' field in `FT_Bitmap'). */
51  /* */
52  /*************************************************************************/
53 
54 
55  /*************************************************************************/
56  /* */
57  /* <Function> */
58  /* FT_Bitmap_Init */
59  /* */
60  /* <Description> */
61  /* Initialize a pointer to an @FT_Bitmap structure. */
62  /* */
63  /* <InOut> */
64  /* abitmap :: A pointer to the bitmap structure. */
65  /* */
66  /* <Note> */
67  /* A deprecated name for the same function is `FT_Bitmap_New'. */
68  /* */
69  FT_EXPORT( void )
70  FT_Bitmap_Init( FT_Bitmap *abitmap );
71 
72 
73  /* deprecated */
74  FT_EXPORT( void )
75  FT_Bitmap_New( FT_Bitmap *abitmap );
76 
77 
78  /*************************************************************************/
79  /* */
80  /* <Function> */
81  /* FT_Bitmap_Copy */
82  /* */
83  /* <Description> */
84  /* Copy a bitmap into another one. */
85  /* */
86  /* <Input> */
87  /* library :: A handle to a library object. */
88  /* */
89  /* source :: A handle to the source bitmap. */
90  /* */
91  /* <Output> */
92  /* target :: A handle to the target bitmap. */
93  /* */
94  /* <Return> */
95  /* FreeType error code. 0~means success. */
96  /* */
99  const FT_Bitmap *source,
100  FT_Bitmap *target );
101 
102 
103  /*************************************************************************/
104  /* */
105  /* <Function> */
106  /* FT_Bitmap_Embolden */
107  /* */
108  /* <Description> */
109  /* Embolden a bitmap. The new bitmap will be about `xStrength' */
110  /* pixels wider and `yStrength' pixels higher. The left and bottom */
111  /* borders are kept unchanged. */
112  /* */
113  /* <Input> */
114  /* library :: A handle to a library object. */
115  /* */
116  /* xStrength :: How strong the glyph is emboldened horizontally. */
117  /* Expressed in 26.6 pixel format. */
118  /* */
119  /* yStrength :: How strong the glyph is emboldened vertically. */
120  /* Expressed in 26.6 pixel format. */
121  /* */
122  /* <InOut> */
123  /* bitmap :: A handle to the target bitmap. */
124  /* */
125  /* <Return> */
126  /* FreeType error code. 0~means success. */
127  /* */
128  /* <Note> */
129  /* The current implementation restricts `xStrength' to be less than */
130  /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */
131  /* */
132  /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */
133  /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */
134  /* */
135  /* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */
136  /* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */
137  /* */
140  FT_Bitmap* bitmap,
141  FT_Pos xStrength,
142  FT_Pos yStrength );
143 
144 
145  /*************************************************************************/
146  /* */
147  /* <Function> */
148  /* FT_Bitmap_Convert */
149  /* */
150  /* <Description> */
151  /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */
152  /* to a bitmap object with depth 8bpp, making the number of used */
153  /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */
154  /* */
155  /* <Input> */
156  /* library :: A handle to a library object. */
157  /* */
158  /* source :: The source bitmap. */
159  /* */
160  /* alignment :: The pitch of the bitmap is a multiple of this */
161  /* parameter. Common values are 1, 2, or 4. */
162  /* */
163  /* <Output> */
164  /* target :: The target bitmap. */
165  /* */
166  /* <Return> */
167  /* FreeType error code. 0~means success. */
168  /* */
169  /* <Note> */
170  /* It is possible to call @FT_Bitmap_Convert multiple times without */
171  /* calling @FT_Bitmap_Done (the memory is simply reallocated). */
172  /* */
173  /* Use @FT_Bitmap_Done to finally remove the bitmap object. */
174  /* */
175  /* The `library' argument is taken to have access to FreeType's */
176  /* memory handling functions. */
177  /* */
180  const FT_Bitmap *source,
181  FT_Bitmap *target,
182  FT_Int alignment );
183 
184 
185  /*************************************************************************/
186  /* */
187  /* <Function> */
188  /* FT_GlyphSlot_Own_Bitmap */
189  /* */
190  /* <Description> */
191  /* Make sure that a glyph slot owns `slot->bitmap'. */
192  /* */
193  /* <Input> */
194  /* slot :: The glyph slot. */
195  /* */
196  /* <Return> */
197  /* FreeType error code. 0~means success. */
198  /* */
199  /* <Note> */
200  /* This function is to be used in combination with */
201  /* @FT_Bitmap_Embolden. */
202  /* */
205 
206 
207  /*************************************************************************/
208  /* */
209  /* <Function> */
210  /* FT_Bitmap_Done */
211  /* */
212  /* <Description> */
213  /* Destroy a bitmap object initialized with @FT_Bitmap_Init. */
214  /* */
215  /* <Input> */
216  /* library :: A handle to a library object. */
217  /* */
218  /* bitmap :: The bitmap object to be freed. */
219  /* */
220  /* <Return> */
221  /* FreeType error code. 0~means success. */
222  /* */
223  /* <Note> */
224  /* The `library' argument is taken to have access to FreeType's */
225  /* memory handling functions. */
226  /* */
229  FT_Bitmap *bitmap );
230 
231 
232  /* */
233 
234 
236 
237 #endif /* FTBITMAP_H_ */
238 
239 
240 /* END */
int FT_Error
Definition: fttypes.h:300
FT_BEGIN_HEADER typedef signed long FT_Pos
Definition: ftimage.h:58
FT_Bitmap_Embolden(FT_Library library, FT_Bitmap *bitmap, FT_Pos xStrength, FT_Pos yStrength)
Definition: ftbitmap.c:296
#define FT_END_HEADER
Definition: ftheader.h:54
signed int FT_Int
Definition: fttypes.h:220
FT_Bitmap_Done(FT_Library library, FT_Bitmap *bitmap)
Definition: ftbitmap.c:826
FT_Library library
Definition: cffdrivr.c:654
FT_BEGIN_HEADER FT_Bitmap_Init(FT_Bitmap *abitmap)
Definition: ftbitmap.c:34
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_Bitmap_Convert(FT_Library library, const FT_Bitmap *source, FT_Bitmap *target, FT_Int alignment)
Definition: ftbitmap.c:504
FT_Bitmap_Copy(FT_Library library, const FT_Bitmap *source, FT_Bitmap *target)
Definition: ftbitmap.c:54
FT_GlyphSlot_Own_Bitmap(FT_GlyphSlot slot)
Definition: ftbitmap.c:801
FT_Bitmap_New(FT_Bitmap *abitmap)
Definition: ftbitmap.c:44
Definition: uimain.c:88
Definition: vfat.h:184
#define FT_EXPORT(x)
Definition: ftconfig.h:461
GLenum target
Definition: glext.h:7315