zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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, 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 #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  * FT_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.
110  *
111  * u.integer ::
112  * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER.
113  *
114  * u.cardinal ::
115  * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL.
116  */
117  typedef struct BDF_PropertyRec_
118  {
120  union {
121  const char* atom;
122  FT_Int32 integer;
123  FT_UInt32 cardinal;
124 
125  } u;
126 
127  } BDF_PropertyRec;
128 
129 
130  /**********************************************************************
131  *
132  * @function:
133  * FT_Get_BDF_Charset_ID
134  *
135  * @description:
136  * Retrieve a BDF font character set identity, according to
137  * the BDF specification.
138  *
139  * @input:
140  * face ::
141  * A handle to the input face.
142  *
143  * @output:
144  * acharset_encoding ::
145  * Charset encoding, as a C~string, owned by the face.
146  *
147  * acharset_registry ::
148  * Charset registry, as a C~string, owned by the face.
149  *
150  * @return:
151  * FreeType error code. 0~means success.
152  *
153  * @note:
154  * This function only works with BDF faces, returning an error otherwise.
155  */
158  const char* *acharset_encoding,
159  const char* *acharset_registry );
160 
161 
162  /**********************************************************************
163  *
164  * @function:
165  * FT_Get_BDF_Property
166  *
167  * @description:
168  * Retrieve a BDF property from a BDF or PCF font file.
169  *
170  * @input:
171  * face :: A handle to the input face.
172  *
173  * name :: The property name.
174  *
175  * @output:
176  * aproperty :: The property.
177  *
178  * @return:
179  * FreeType error code. 0~means success.
180  *
181  * @note:
182  * This function works with BDF _and_ PCF fonts. It returns an error
183  * otherwise. It also returns an error if the property is not in the
184  * font.
185  *
186  * A `property' is a either key-value pair within the STARTPROPERTIES
187  * ... ENDPROPERTIES block of a BDF font or a key-value pair from the
188  * `info->props' array within a `FontRec' structure of a PCF font.
189  *
190  * Integer properties are always stored as `signed' within PCF fonts;
191  * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value
192  * for BDF fonts only.
193  *
194  * In case of error, `aproperty->type' is always set to
195  * @BDF_PROPERTY_TYPE_NONE.
196  */
199  const char* prop_name,
200  BDF_PropertyRec *aproperty );
201 
202  /* */
203 
205 
206 #endif /* __FTBDF_H__ */
207 
208 
209 /* END */
int FT_Error
Definition: fttypes.h:296
struct BDF_PropertyRec_ BDF_PropertyRec
#define FT_END_HEADER
Definition: ftheader.h:54
struct BDF_PropertyRec_ * BDF_Property
Definition: ftbdf.h:93
union BDF_PropertyRec_::@18 u
FT_BEGIN_HEADER enum BDF_PropertyType_ BDF_PropertyType
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_Int32 integer
Definition: ftbdf.h:122
GLenum face
Definition: gl2ext.h:1490
const char * atom
Definition: ftbdf.h:121
BDF_PropertyType type
Definition: ftbdf.h:119
#define const
Definition: zconf.h:91
#define FT_EXPORT(x)
Definition: ftconfig.h:500
FT_Get_BDF_Charset_ID(FT_Face face, const char **acharset_encoding, const char **acharset_registry)
Definition: ftbdf.c:27
BDF_PropertyType_
Definition: ftbdf.h:74
FT_UInt32 cardinal
Definition: ftbdf.h:123
FT_Get_BDF_Property(FT_Face face, const char *prop_name, BDF_PropertyRec *aproperty)
Definition: ftbdf.c:62