Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 1 | /***************************************************************************/ |
2 | /* */ |
||
3 | /* ftsizes.h */ |
||
4 | /* */ |
||
5 | /* FreeType size objects management (specification). */ |
||
6 | /* */ |
||
7 | /* Copyright 1996-2001, 2003, 2004, 2006, 2009 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 |
||
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 | |||
42 | FT_BEGIN_HEADER |
||
43 | |||
44 | |||
45 | /*************************************************************************/ |
||
46 | /* */ |
||
47 | /* |
||
48 | /* sizes_management */ |
||
49 | /* */ |
||
50 | /* |
||
51 | /* Size Management */ |
||
52 | /* */ |
||
53 | /* |
||
54 | /* Managing multiple sizes per face. */ |
||
55 | /* */ |
||
56 | /* |
||
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 | /* |
||
80 | /* FT_New_Size */ |
||
81 | /* */ |
||
82 | /* |
||
83 | /* Create a new size object from a given face object. */ |
||
84 | /* */ |
||
85 | /* */ |
||
86 | /* face :: A handle to a parent face object. */ |
||
87 | /* */ |
||
88 | /* |
||
89 | /* asize :: A handle to a new size object. */ |
||
90 | /* */ |
||
91 | /* |
||
92 | /* FreeType error code. 0~means success. */ |
||
93 | /* */ |
||
94 | /* |
||
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 | /* */ |
||
99 | FT_EXPORT( FT_Error ) |
||
100 | FT_New_Size( FT_Face face, |
||
101 | FT_Size* size ); |
||
102 | |||
103 | |||
104 | /*************************************************************************/ |
||
105 | /* */ |
||
106 | /* |
||
107 | /* FT_Done_Size */ |
||
108 | /* */ |
||
109 | /* |
||
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 | /* */ |
||
115 | /* size :: A handle to a target size object. */ |
||
116 | /* */ |
||
117 | /* |
||
118 | /* FreeType error code. 0~means success. */ |
||
119 | /* */ |
||
120 | FT_EXPORT( FT_Error ) |
||
121 | FT_Done_Size( FT_Size size ); |
||
122 | |||
123 | |||
124 | /*************************************************************************/ |
||
125 | /* */ |
||
126 | /* |
||
127 | /* FT_Activate_Size */ |
||
128 | /* */ |
||
129 | /* |
||
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 which 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 | /* */ |
||
139 | /* size :: A handle to a target size object. */ |
||
140 | /* */ |
||
141 | /* |
||
142 | /* FreeType error code. 0~means success. */ |
||
143 | /* */ |
||
144 | /* |
||
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 | /* */ |
||
148 | FT_EXPORT( FT_Error ) |
||
149 | FT_Activate_Size( FT_Size size ); |
||
150 | |||
151 | /* */ |
||
152 | |||
153 | |||
154 | FT_END_HEADER |
||
155 | |||
156 | #endif /* __FTSIZES_H__ */ |
||
157 | |||
158 | |||
159 | /* END */ |