Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
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, 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 
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  /* */
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  /* */
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  /* */
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  /* */
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  /* */
216  FT_Bitmap *bitmap );
217 
218 
219  /* */
220 
221 
223 
224 #endif /* __FTBITMAP_H__ */
225 
226 
227 /* END */
int FT_Error
Definition: fttypes.h:296
FT_BEGIN_HEADER FT_Bitmap_New(FT_Bitmap *abitmap)
Definition: ftbitmap.c:34
FT_BEGIN_HEADER typedef signed long FT_Pos
Definition: ftimage.h:59
FT_Bitmap_Embolden(FT_Library library, FT_Bitmap *bitmap, FT_Pos xStrength, FT_Pos yStrength)
Definition: ftbitmap.c:216
#define FT_END_HEADER
Definition: ftheader.h:54
signed int FT_Int
Definition: fttypes.h:216
GLsizei GLsizei GLchar * source
FT_Bitmap_Done(FT_Library library, FT_Bitmap *bitmap)
Definition: ftbitmap.c:648
FT_Library library
Definition: cffdrivr.c:414
#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:377
FT_Bitmap_Copy(FT_Library library, const FT_Bitmap *source, FT_Bitmap *target)
Definition: ftbitmap.c:43
FT_GlyphSlot_Own_Bitmap(FT_GlyphSlot slot)
Definition: ftbitmap.c:623
GLenum target
#define FT_EXPORT(x)
Definition: ftconfig.h:269