ReactOS  0.4.14-dev-608-gd495a4f
ftbdf.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* ftbdf.h */
4 /* */
5 /* FreeType API for accessing BDF-specific strings (specification). */
6 /* */
7 /* Copyright 2002-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 FTBDF_H_
20 #define FTBDF_H_
21 
22 #include <ft2build.h>
23 #include FT_FREETYPE_H
24 
25 #ifdef FREETYPE_H
26 #error "freetype.h of FreeType 1 has been loaded!"
27 #error "Please fix the directory search order for header files"
28 #error "so that freetype.h of FreeType 2 is found first."
29 #endif
30 
31 
33 
34 
35  /*************************************************************************/
36  /* */
37  /* <Section> */
38  /* bdf_fonts */
39  /* */
40  /* <Title> */
41  /* BDF and PCF Files */
42  /* */
43  /* <Abstract> */
44  /* BDF and PCF specific API. */
45  /* */
46  /* <Description> */
47  /* This section contains the declaration of functions specific to BDF */
48  /* and PCF fonts. */
49  /* */
50  /*************************************************************************/
51 
52 
53  /**********************************************************************
54  *
55  * @enum:
56  * BDF_PropertyType
57  *
58  * @description:
59  * A list of BDF property types.
60  *
61  * @values:
62  * BDF_PROPERTY_TYPE_NONE ::
63  * Value~0 is used to indicate a missing property.
64  *
65  * BDF_PROPERTY_TYPE_ATOM ::
66  * Property is a string atom.
67  *
68  * BDF_PROPERTY_TYPE_INTEGER ::
69  * Property is a 32-bit signed integer.
70  *
71  * BDF_PROPERTY_TYPE_CARDINAL ::
72  * Property is a 32-bit unsigned integer.
73  */
74  typedef enum BDF_PropertyType_
75  {
80 
82 
83 
84  /**********************************************************************
85  *
86  * @type:
87  * BDF_Property
88  *
89  * @description:
90  * A handle to a @BDF_PropertyRec structure to model a given
91  * BDF/PCF property.
92  */
93  typedef struct BDF_PropertyRec_* BDF_Property;
94 
95 
96  /**********************************************************************
97  *
98  * @struct:
99  * BDF_PropertyRec
100  *
101  * @description:
102  * This structure models a given BDF/PCF property.
103  *
104  * @fields:
105  * type ::
106  * The property type.
107  *
108  * u.atom ::
109  * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be
110  * NULL, indicating an empty string.
111  *
112  * u.integer ::
113  * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER.
114  *
115  * u.cardinal ::
116  * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL.
117  */
118  typedef struct BDF_PropertyRec_
119  {
121  union {
122  const char* atom;
123  FT_Int32 integer;
124  FT_UInt32 cardinal;
125 
126  } u;
127 
128  } BDF_PropertyRec;
129 
130 
131  /**********************************************************************
132  *
133  * @function:
134  * FT_Get_BDF_Charset_ID
135  *
136  * @description:
137  * Retrieve a BDF font character set identity, according to
138  * the BDF specification.
139  *
140  * @input:
141  * face ::
142  * A handle to the input face.
143  *
144  * @output:
145  * acharset_encoding ::
146  * Charset encoding, as a C~string, owned by the face.
147  *
148  * acharset_registry ::
149  * Charset registry, as a C~string, owned by the face.
150  *
151  * @return:
152  * FreeType error code. 0~means success.
153  *
154  * @note:
155  * This function only works with BDF faces, returning an error otherwise.
156  */
159  const char* *acharset_encoding,
160  const char* *acharset_registry );
161 
162 
163  /**********************************************************************
164  *
165  * @function:
166  * FT_Get_BDF_Property
167  *
168  * @description:
169  * Retrieve a BDF property from a BDF or PCF font file.
170  *
171  * @input:
172  * face :: A handle to the input face.
173  *
174  * name :: The property name.
175  *
176  * @output:
177  * aproperty :: The property.
178  *
179  * @return:
180  * FreeType error code. 0~means success.
181  *
182  * @note:
183  * This function works with BDF _and_ PCF fonts. It returns an error
184  * otherwise. It also returns an error if the property is not in the
185  * font.
186  *
187  * A `property' is a either key-value pair within the STARTPROPERTIES
188  * ... ENDPROPERTIES block of a BDF font or a key-value pair from the
189  * `info->props' array within a `FontRec' structure of a PCF font.
190  *
191  * Integer properties are always stored as `signed' within PCF fonts;
192  * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value
193  * for BDF fonts only.
194  *
195  * In case of error, `aproperty->type' is always set to
196  * @BDF_PROPERTY_TYPE_NONE.
197  */
200  const char* prop_name,
201  BDF_PropertyRec *aproperty );
202 
203  /* */
204 
206 
207 #endif /* FTBDF_H_ */
208 
209 
210 /* END */
int FT_Error
Definition: fttypes.h:300
struct BDF_PropertyRec_ BDF_PropertyRec
BDF_PropertyType type
Definition: ftbdf.h:120
#define FT_END_HEADER
Definition: ftheader.h:54
union BDF_PropertyRec_::@3860 u
struct BDF_PropertyRec_ * BDF_Property
Definition: ftbdf.h:93
FT_BEGIN_HEADER enum BDF_PropertyType_ BDF_PropertyType
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
const char * atom
Definition: ftbdf.h:122
FT_UInt32 cardinal
Definition: ftbdf.h:124
FT_Int32 integer
Definition: ftbdf.h:123
#define FT_EXPORT(x)
Definition: ftconfig.h:461
FT_Get_BDF_Charset_ID(FT_Face face, const char **acharset_encoding, const char **acharset_registry)
Definition: ftbdf.c:29
BDF_PropertyType_
Definition: ftbdf.h:74
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
FT_Get_BDF_Property(FT_Face face, const char *prop_name, BDF_PropertyRec *aproperty)
Definition: ftbdf.c:63