ReactOS  0.4.15-dev-2528-g5506091
ftsizes.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* ftsizes.h */
4 /* */
5 /* FreeType size objects management (specification). */
6 /* */
7 /* Copyright 1996-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  /*************************************************************************/
20  /* */
21  /* Typical application would normally not need to use these functions. */
22  /* However, they have been placed in a public API for the rare cases */
23  /* where they are needed. */
24  /* */
25  /*************************************************************************/
26 
27 
28 #ifndef FTSIZES_H_
29 #define FTSIZES_H_
30 
31 
32 #include <ft2build.h>
33 #include FT_FREETYPE_H
34 
35 #ifdef FREETYPE_H
36 #error "freetype.h of FreeType 1 has been loaded!"
37 #error "Please fix the directory search order for header files"
38 #error "so that freetype.h of FreeType 2 is found first."
39 #endif
40 
41 
43 
44 
45  /*************************************************************************/
46  /* */
47  /* <Section> */
48  /* sizes_management */
49  /* */
50  /* <Title> */
51  /* Size Management */
52  /* */
53  /* <Abstract> */
54  /* Managing multiple sizes per face. */
55  /* */
56  /* <Description> */
57  /* When creating a new face object (e.g., with @FT_New_Face), an */
58  /* @FT_Size object is automatically created and used to store all */
59  /* pixel-size dependent information, available in the `face->size' */
60  /* field. */
61  /* */
62  /* It is however possible to create more sizes for a given face, */
63  /* mostly in order to manage several character pixel sizes of the */
64  /* same font family and style. See @FT_New_Size and @FT_Done_Size. */
65  /* */
66  /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */
67  /* modify the contents of the current `active' size; you thus need */
68  /* to use @FT_Activate_Size to change it. */
69  /* */
70  /* 99% of applications won't need the functions provided here, */
71  /* especially if they use the caching sub-system, so be cautious */
72  /* when using these. */
73  /* */
74  /*************************************************************************/
75 
76 
77  /*************************************************************************/
78  /* */
79  /* <Function> */
80  /* FT_New_Size */
81  /* */
82  /* <Description> */
83  /* Create a new size object from a given face object. */
84  /* */
85  /* <Input> */
86  /* face :: A handle to a parent face object. */
87  /* */
88  /* <Output> */
89  /* asize :: A handle to a new size object. */
90  /* */
91  /* <Return> */
92  /* FreeType error code. 0~means success. */
93  /* */
94  /* <Note> */
95  /* You need to call @FT_Activate_Size in order to select the new size */
96  /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */
97  /* @FT_Load_Glyph, @FT_Load_Char, etc. */
98  /* */
101  FT_Size* size );
102 
103 
104  /*************************************************************************/
105  /* */
106  /* <Function> */
107  /* FT_Done_Size */
108  /* */
109  /* <Description> */
110  /* Discard a given size object. Note that @FT_Done_Face */
111  /* automatically discards all size objects allocated with */
112  /* @FT_New_Size. */
113  /* */
114  /* <Input> */
115  /* size :: A handle to a target size object. */
116  /* */
117  /* <Return> */
118  /* FreeType error code. 0~means success. */
119  /* */
122 
123 
124  /*************************************************************************/
125  /* */
126  /* <Function> */
127  /* FT_Activate_Size */
128  /* */
129  /* <Description> */
130  /* Even though it is possible to create several size objects for a */
131  /* given face (see @FT_New_Size for details), functions like */
132  /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */
133  /* activated last to determine the `current character pixel size'. */
134  /* */
135  /* This function can be used to `activate' a previously created size */
136  /* object. */
137  /* */
138  /* <Input> */
139  /* size :: A handle to a target size object. */
140  /* */
141  /* <Return> */
142  /* FreeType error code. 0~means success. */
143  /* */
144  /* <Note> */
145  /* If `face' is the size's parent face object, this function changes */
146  /* the value of `face->size' to the input size handle. */
147  /* */
150 
151  /* */
152 
153 
155 
156 #endif /* FTSIZES_H_ */
157 
158 
159 /* END */
int FT_Error
Definition: fttypes.h:300
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
GLsizeiptr size
Definition: glext.h:5919
FT_Activate_Size(FT_Size size)
Definition: ftobjs.c:4230
FT_Done_Size(FT_Size size)
Definition: ftobjs.c:2827
#define FT_EXPORT(x)
Definition: ftconfig.h:461
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
FT_BEGIN_HEADER FT_New_Size(FT_Face face, FT_Size *size)
Definition: ftobjs.c:2762