]>
Commit | Line | Data |
---|---|---|
22671e25 | 1 | <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ |
39381776 KP |
2 | <!ENTITY fcatomic SYSTEM "fcatomic.sgml"> |
3 | <!ENTITY fcblanks SYSTEM "fcblanks.sgml"> | |
dc7b6f1d | 4 | <!ENTITY fccache SYSTEM "fccache.sgml"> |
22671e25 | 5 | <!ENTITY fccharset SYSTEM "fccharset.sgml"> |
39381776 KP |
6 | <!ENTITY fcconfig SYSTEM "fcconfig.sgml"> |
7 | <!ENTITY fcconstant SYSTEM "fcconstant.sgml"> | |
dc7b6f1d | 8 | <!ENTITY fcdircache SYSTEM "fcdircache.sgml"> |
39381776 | 9 | <!ENTITY fcfile SYSTEM "fcfile.sgml"> |
bfc2dc3a | 10 | <!ENTITY fcfontset SYSTEM "fcfontset.sgml"> |
caeea376 | 11 | <!ENTITY fcformat SYSTEM "fcformat.sgml"> |
39381776 KP |
12 | <!ENTITY fcfreetype SYSTEM "fcfreetype.sgml"> |
13 | <!ENTITY fcinit SYSTEM "fcinit.sgml"> | |
dc7b6f1d | 14 | <!ENTITY fclangset SYSTEM "fclangset.sgml"> |
39381776 | 15 | <!ENTITY fcmatrix SYSTEM "fcmatrix.sgml"> |
bfc2dc3a KP |
16 | <!ENTITY fcobjectset SYSTEM "fcobjectset.sgml"> |
17 | <!ENTITY fcobjecttype SYSTEM "fcobjecttype.sgml"> | |
39381776 KP |
18 | <!ENTITY fcpattern SYSTEM "fcpattern.sgml"> |
19 | <!ENTITY fcstring SYSTEM "fcstring.sgml"> | |
20 | <!ENTITY fcstrset SYSTEM "fcstrset.sgml"> | |
21 | <!ENTITY fcvalue SYSTEM "fcvalue.sgml"> | |
fddb839b | 22 | <!ENTITY version SYSTEM "version.sgml"> |
22671e25 | 23 | ]> |
584ac89a | 24 | <!-- |
e690fbb2 | 25 | fontconfig/doc/local-fontconfig-devel.sgml |
584ac89a | 26 | |
46b51147 | 27 | Copyright © 2003 Keith Packard |
584ac89a KP |
28 | |
29 | Permission to use, copy, modify, distribute, and sell this software and its | |
30 | documentation for any purpose is hereby granted without fee, provided that | |
31 | the above copyright notice appear in all copies and that both that | |
32 | copyright notice and this permission notice appear in supporting | |
5aaf466d | 33 | documentation, and that the name of the author(s) not be used in |
584ac89a | 34 | advertising or publicity pertaining to distribution of the software without |
5aaf466d | 35 | specific, written prior permission. The authors make no |
584ac89a KP |
36 | representations about the suitability of this software for any purpose. It |
37 | is provided "as is" without express or implied warranty. | |
38 | ||
3074a73b | 39 | THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, |
584ac89a | 40 | INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO |
3074a73b | 41 | EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR |
584ac89a KP |
42 | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, |
43 | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | |
44 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
45 | PERFORMANCE OF THIS SOFTWARE. | |
46 | --> | |
47 | <article> | |
fddb839b | 48 | <title>Fontconfig Developers Reference, Version &version; </title> |
22671e25 KP |
49 | <artheader> |
50 | <author> | |
51 | <firstname>Keith</firstname> | |
52 | <surname>Packard</surname> | |
53 | <affiliation><orgname> | |
54 | HP Cambridge Research Lab | |
55 | </orgname></affiliation> | |
56 | </author> | |
57 | <authorinitials>KRP</authorinitials> | |
58 | <productname>Fontconfig</productname> | |
fddb839b | 59 | <productnumber>&version;</productnumber> |
22671e25 KP |
60 | <LegalNotice> |
61 | <simpara> | |
46b51147 | 62 | Copyright © 2002 Keith Packard |
22671e25 KP |
63 | </simpara><simpara> |
64 | Permission to use, copy, modify, distribute, and sell this software and its | |
65 | documentation for any purpose is hereby granted without fee, provided that | |
66 | the above copyright notice appear in all copies and that both that | |
67 | copyright notice and this permission notice appear in supporting | |
5aaf466d | 68 | documentation, and that the name of the author(s) not be used in |
22671e25 | 69 | advertising or publicity pertaining to distribution of the software without |
5aaf466d | 70 | specific, written prior permission. The authors make no |
22671e25 KP |
71 | representations about the suitability of this software for any purpose. It |
72 | is provided "as is" without express or implied warranty. | |
73 | </simpara><simpara> | |
3074a73b | 74 | THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, |
22671e25 | 75 | INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO |
3074a73b | 76 | EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR |
22671e25 KP |
77 | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, |
78 | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | |
79 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
80 | PERFORMANCE OF THIS SOFTWARE. | |
81 | </simpara> | |
82 | </LegalNotice> | |
83 | </artheader> | |
584ac89a KP |
84 | <sect1><title>DESCRIPTION</title> |
85 | <para> | |
86 | Fontconfig is a library designed to provide system-wide font configuration, | |
87 | customization and application access. | |
88 | </para> | |
89 | </sect1> | |
90 | <sect1><title>FUNCTIONAL OVERVIEW</title> | |
91 | <para> | |
92 | Fontconfig contains two essential modules, the configuration module which | |
93 | builds an internal configuration from XML files and the matching module | |
94 | which accepts font patterns and returns the nearest matching font. | |
95 | </para> | |
96 | <sect2><title>FONT CONFIGURATION</title> | |
97 | <para> | |
98 | The configuration module consists of the FcConfig datatype, libexpat and | |
7baa20c7 | 99 | FcConfigParse which walks over an XML tree and amends a configuration with |
584ac89a KP |
100 | data found within. From an external perspective, configuration of the |
101 | library consists of generating a valid XML tree and feeding that to | |
102 | FcConfigParse. The only other mechanism provided to applications for | |
103 | changing the running configuration is to add fonts and directories to the | |
104 | list of application-provided font files. | |
105 | </para><para> | |
106 | The intent is to make font configurations relatively static, and shared by | |
107 | as many applications as possible. It is hoped that this will lead to more | |
108 | stable font selection when passing names from one application to another. | |
109 | XML was chosen as a configuration file format because it provides a format | |
110 | which is easy for external agents to edit while retaining the correct | |
111 | structure and syntax. | |
112 | </para><para> | |
113 | Font configuration is separate from font matching; applications needing to | |
114 | do their own matching can access the available fonts from the library and | |
115 | perform private matching. The intent is to permit applications to pick and | |
116 | choose appropriate functionality from the library instead of forcing them to | |
117 | choose between this library and a private configuration mechanism. The hope | |
118 | is that this will ensure that configuration of fonts for all applications | |
119 | can be centralized in one place. Centralizing font configuration will | |
120 | simplify and regularize font installation and customization. | |
121 | </para> | |
122 | </sect2> | |
123 | <sect2> | |
124 | <title>FONT PROPERTIES</title> | |
125 | <para> | |
126 | While font patterns may contain essentially any properties, there are some | |
127 | well known properties with associated types. Fontconfig uses some of these | |
128 | properties for font matching and font completion. Others are provided as a | |
7baa20c7 | 129 | convenience for the application's rendering mechanism. |
584ac89a | 130 | </para> |
22671e25 KP |
131 | <programlisting> |
132 | Property Definitions | |
133 | ||
7baa20c7 | 134 | Property C Preprocessor Symbol Type Description |
22671e25 | 135 | ---------------------------------------------------- |
7baa20c7 BH |
136 | family FC_FAMILY String Font family names |
137 | familylang FC_FAMILYLANG String Language corresponding to | |
138 | each family name | |
139 | style FC_STYLE String Font style. Overrides weight | |
140 | and slant | |
141 | stylelang FC_STYLELANG String Language corresponding to | |
142 | each style name | |
143 | fullname FC_FULLNAME String Font face full name where | |
144 | different from family and | |
145 | family + style | |
146 | fullnamelang FC_FULLNAMELANG String Language corresponding to | |
147 | each fullname | |
148 | slant FC_SLANT Int Italic, oblique or roman | |
149 | weight FC_WEIGHT Int Light, medium, demibold, | |
150 | bold or black | |
151 | size FC_SIZE Double Point size | |
152 | width FC_WIDTH Int Condensed, normal or expanded | |
153 | aspect FC_ASPECT Double Stretches glyphs horizontally | |
154 | before hinting | |
155 | pixelsize FC_PIXEL_SIZE Double Pixel size | |
156 | spacing FC_SPACING Int Proportional, dual-width, | |
157 | monospace or charcell | |
158 | foundry FC_FOUNDRY String Font foundry name | |
159 | antialias FC_ANTIALIAS Bool Whether glyphs can be | |
160 | antialiased | |
161 | hinting FC_HINTING Bool Whether the rasterizer should | |
162 | use hinting | |
163 | hintstyle FC_HINT_STYLE Int Automatic hinting style | |
164 | verticallayout FC_VERTICAL_LAYOUT Bool Use vertical layout | |
165 | autohint FC_AUTOHINT Bool Use autohinter instead of | |
166 | normal hinter | |
167 | globaladvance FC_GLOBAL_ADVANCE Bool Use font global advance data | |
168 | file FC_FILE String The filename holding the font | |
169 | index FC_INDEX Int The index of the font within | |
170 | the file | |
171 | ftface FC_FT_FACE FT_Face Use the specified FreeType | |
172 | face object | |
173 | rasterizer FC_RASTERIZER String Which rasterizer is in use | |
174 | outline FC_OUTLINE Bool Whether the glyphs are outlines | |
175 | scalable FC_SCALABLE Bool Whether glyphs can be scaled | |
176 | scale FC_SCALE Double Scale factor for point->pixel | |
177 | conversions | |
178 | dpi FC_DPI Double Target dots per inch | |
179 | rgba FC_RGBA Int unknown, rgb, bgr, vrgb, | |
180 | vbgr, none - subpixel geometry | |
181 | lcdfilter FC_LCD_FILTER Int Type of LCD filter | |
182 | minspace FC_MINSPACE Bool Eliminate leading from line | |
183 | spacing | |
184 | charset FC_CHARSET CharSet Unicode chars encoded by | |
185 | the font | |
186 | lang FC_LANG LangSet Set of RFC-3066-style | |
187 | languages this font supports | |
188 | fontversion FC_FONTVERSION Int Version number of the font | |
189 | capability FC_CAPABILITY String List of layout capabilities in | |
190 | the font | |
191 | embolden FC_EMBOLDEN Bool Rasterizer should | |
192 | synthetically embolden the font | |
22671e25 | 193 | </programlisting> |
584ac89a | 194 | </sect2> |
22dc6fc6 | 195 | </sect1> |
39381776 | 196 | <sect1><title>Datatypes</title> |
584ac89a | 197 | <para> |
7baa20c7 | 198 | Fontconfig uses abstract data types to hide internal implementation details |
584ac89a KP |
199 | for most data structures. A few structures are exposed where appropriate. |
200 | </para> | |
39381776 | 201 | <sect2><title>FcChar8, FcChar16, FcChar32, FcBool</title> |
22671e25 | 202 | <para> |
7baa20c7 | 203 | These are primitive data types; the FcChar* types hold precisely the number |
584ac89a | 204 | of bits stated (if supported by the C implementation). FcBool holds |
7baa20c7 | 205 | one of two C preprocessor symbols: FcFalse or FcTrue. |
22671e25 | 206 | </para> |
39381776 KP |
207 | </sect2> |
208 | <sect2><title>FcMatrix</title> | |
584ac89a KP |
209 | <para> |
210 | An FcMatrix holds an affine transformation, usually used to reshape glyphs. | |
211 | A small set of matrix operations are provided to manipulate these. | |
212 | <programlisting> | |
22671e25 KP |
213 | typedef struct _FcMatrix { |
214 | double xx, xy, yx, yy; | |
215 | } FcMatrix; | |
584ac89a KP |
216 | </programlisting> |
217 | </para> | |
39381776 KP |
218 | </sect2> |
219 | <sect2><title>FcCharSet</title> | |
584ac89a | 220 | <para> |
7baa20c7 | 221 | An FcCharSet is an abstract type that holds the set of encoded Unicode chars |
584ac89a KP |
222 | in a font. Operations to build and compare these sets are provided. |
223 | </para> | |
39381776 | 224 | </sect2> |
a190678e KP |
225 | <sect2><title>FcLangSet</title> |
226 | <para> | |
227 | An FcLangSet is an abstract type that holds the set of languages supported | |
228 | by a font. Operations to build and compare these sets are provided. These | |
229 | are computed for a font based on orthographic information built into the | |
230 | fontconfig library. Fontconfig has orthographies for all of the ISO 639-1 | |
231 | languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If | |
232 | you have orthographic information for any of these languages, please submit | |
233 | them. | |
234 | </para> | |
235 | </sect2> | |
236 | <sect2><title>FcLangResult</title> | |
237 | <para> | |
238 | An FcLangResult is an enumeration used to return the results of comparing | |
239 | two language strings or FcLangSet objects. FcLangEqual means the | |
240 | objects match language and territory. FcLangDifferentTerritory means | |
241 | the objects match in language but differ in territory. | |
242 | FcLangDifferentLang means the objects differ in language. | |
243 | </para> | |
244 | </sect2> | |
39381776 | 245 | <sect2><title>FcType</title> |
584ac89a KP |
246 | <para> |
247 | Tags the kind of data stored in an FcValue. | |
22dc6fc6 | 248 | </para> |
39381776 KP |
249 | </sect2> |
250 | <sect2><title>FcValue</title> | |
584ac89a KP |
251 | <para> |
252 | An FcValue object holds a single value with one of a number of different | |
253 | types. The 'type' tag indicates which member is valid. | |
254 | <programlisting> | |
22671e25 KP |
255 | typedef struct _FcValue { |
256 | FcType type; | |
257 | union { | |
258 | const FcChar8 *s; | |
259 | int i; | |
260 | FcBool b; | |
261 | double d; | |
262 | const FcMatrix *m; | |
263 | const FcCharSet *c; | |
a190678e KP |
264 | void *f; |
265 | const FcLangSet *l; | |
22671e25 KP |
266 | } u; |
267 | } FcValue; | |
268 | </programlisting> | |
269 | <programlisting> | |
270 | FcValue Members | |
271 | ||
272 | Type Union member Datatype | |
273 | -------------------------------- | |
274 | FcTypeVoid (none) (none) | |
275 | FcTypeInteger i int | |
276 | FcTypeDouble d double | |
f2772d6b | 277 | FcTypeString s FcChar8 * |
22671e25 KP |
278 | FcTypeBool b b |
279 | FcTypeMatrix m FcMatrix * | |
280 | FcTypeCharSet c FcCharSet * | |
a190678e KP |
281 | FcTypeFTFace f void * (FT_Face) |
282 | FcTypeLangSet l FcLangSet * | |
584ac89a | 283 | </programlisting> |
22dc6fc6 | 284 | </para> |
39381776 KP |
285 | </sect2> |
286 | <sect2><title>FcPattern</title> | |
584ac89a KP |
287 | <para> |
288 | holds a set of names with associated value lists; each name refers to a | |
289 | property of a font. FcPatterns are used as inputs to the matching code as | |
290 | well as holding information about specific fonts. Each property can hold | |
291 | one or more values; conventionally all of the same type, although the | |
292 | interface doesn't demand that. | |
22dc6fc6 | 293 | </para> |
39381776 KP |
294 | </sect2> |
295 | <sect2><title>FcFontSet</title> | |
584ac89a KP |
296 | <para> |
297 | <programlisting> | |
22671e25 KP |
298 | typedef struct _FcFontSet { |
299 | int nfont; | |
300 | int sfont; | |
301 | FcPattern **fonts; | |
302 | } FcFontSet; | |
584ac89a KP |
303 | </programlisting> |
304 | An FcFontSet contains a list of FcPatterns. Internally fontconfig uses this | |
305 | data structure to hold sets of fonts. Externally, fontconfig returns the | |
306 | results of listing fonts in this format. 'nfont' holds the number of | |
307 | patterns in the 'fonts' array; 'sfont' is used to indicate the size of that | |
308 | array. | |
309 | </para> | |
39381776 KP |
310 | </sect2> |
311 | <sect2><title>FcStrSet, FcStrList</title> | |
584ac89a KP |
312 | <para> |
313 | FcStrSet holds a list of strings that can be appended to and enumerated. | |
314 | Its unique characteristic is that the enumeration works even while strings | |
315 | are appended during enumeration. FcStrList is used during enumeration to | |
316 | safely and correctly walk the list of strings even while that list is edited | |
317 | in the middle of enumeration. | |
318 | </para> | |
39381776 KP |
319 | </sect2> |
320 | <sect2><title>FcObjectSet</title> | |
584ac89a KP |
321 | <para> |
322 | <programlisting> | |
22671e25 KP |
323 | typedef struct _FcObjectSet { |
324 | int nobject; | |
325 | int sobject; | |
326 | const char **objects; | |
327 | } FcObjectSet; | |
584ac89a KP |
328 | </programlisting> |
329 | holds a set of names and is used to specify which fields from fonts are | |
330 | placed in the the list of returned patterns when listing fonts. | |
331 | </para> | |
39381776 KP |
332 | </sect2> |
333 | <sect2><title>FcObjectType</title> | |
584ac89a KP |
334 | <para> |
335 | <programlisting> | |
22671e25 KP |
336 | typedef struct _FcObjectType { |
337 | const char *object; | |
338 | FcType type; | |
339 | } FcObjectType; | |
584ac89a KP |
340 | </programlisting> |
341 | marks the type of a pattern element generated when parsing font names. | |
342 | Applications can add new object types so that font names may contain the new | |
343 | elements. | |
344 | </para> | |
39381776 KP |
345 | </sect2> |
346 | <sect2><title>FcConstant</title> | |
584ac89a KP |
347 | <para> |
348 | <programlisting> | |
22671e25 KP |
349 | typedef struct _FcConstant { |
350 | const FcChar8 *name; | |
351 | const char *object; | |
352 | int value; | |
353 | } FcConstant; | |
584ac89a KP |
354 | </programlisting> |
355 | Provides for symbolic constants for new pattern elements. When 'name' is | |
356 | seen in a font name, an 'object' element is created with value 'value'. | |
357 | </para> | |
39381776 KP |
358 | </sect2> |
359 | <sect2><title>FcBlanks</title> | |
584ac89a KP |
360 | <para> |
361 | holds a list of Unicode chars which are expected to be blank; unexpectedly | |
362 | blank chars are assumed to be invalid and are elided from the charset | |
363 | associated with the font. | |
364 | </para> | |
39381776 KP |
365 | </sect2> |
366 | <sect2><title>FcFileCache</title> | |
584ac89a KP |
367 | <para> |
368 | holds the per-user cache information for use while loading the font | |
369 | database. This is built automatically for the current configuration when | |
370 | that is loaded. Applications must always pass '0' when one is requested. | |
371 | </para> | |
39381776 KP |
372 | </sect2> |
373 | <sect2><title>FcConfig</title> | |
584ac89a KP |
374 | <para> |
375 | holds a complete configuration of the library; there is one default | |
376 | configuration, other can be constructed from XML data structures. All | |
377 | public entry points that need global data can take an optional FcConfig* | |
378 | argument; passing 0 uses the default configuration. FcConfig objects hold two | |
379 | sets of fonts, the first contains those specified by the configuration, the | |
380 | second set holds those added by the application at run-time. Interfaces | |
7baa20c7 | 381 | that need to reference a particular set use one of the FcSetName enumerated |
584ac89a KP |
382 | values. |
383 | </para> | |
39381776 KP |
384 | </sect2> |
385 | <sect2><title>FcSetName</title> | |
584ac89a KP |
386 | <para> |
387 | Specifies one of the two sets of fonts available in a configuration; | |
388 | FcSetSystem for those fonts specified in the configuration and | |
389 | FcSetApplication which holds fonts provided by the application. | |
390 | </para> | |
39381776 KP |
391 | </sect2> |
392 | <sect2><title>FcResult</title> | |
584ac89a KP |
393 | <para> |
394 | Used as a return type for functions manipulating FcPattern objects. | |
22671e25 KP |
395 | <programlisting> |
396 | FcResult Values | |
397 | Result Code Meaning | |
398 | ----------------------------------------------------------- | |
399 | FcResultMatch Object exists with the specified ID | |
400 | FcResultNoMatch Object doesn't exist at all | |
401 | FcResultTypeMismatch Object exists, but the type doesn't match | |
402 | FcResultNoId Object exists, but has fewer values | |
403 | than specified | |
7baa20c7 | 404 | FcResultOutOfMemory malloc failed |
22671e25 | 405 | </programlisting> |
584ac89a | 406 | </para> |
39381776 KP |
407 | </sect2> |
408 | <sect2><title>FcAtomic</title> | |
584ac89a | 409 | <para> |
7baa20c7 | 410 | Used for locking access to configuration files. Provides a safe way to update |
584ac89a KP |
411 | configuration files. |
412 | </para> | |
39381776 | 413 | </sect2> |
dc7b6f1d KP |
414 | <sect2><title>FcCache</title> |
415 | <para> | |
416 | Holds information about the fonts contained in a single directory. Normal | |
417 | applications need not worry about this as caches for font access are | |
418 | automatically managed by the library. Applications dealing with cache | |
419 | management may want to use some of these objects in their work, however the | |
420 | included 'fc-cache' program generally suffices for all of that. | |
421 | </para> | |
422 | </sect2> | |
584ac89a KP |
423 | </sect1> |
424 | <sect1><title>FUNCTIONS</title> | |
425 | <para> | |
7baa20c7 | 426 | These are grouped by functionality, often using the main data type being |
39381776 | 427 | manipulated. |
584ac89a | 428 | </para> |
39381776 | 429 | <sect2><title>Initialization</title> |
584ac89a | 430 | <para> |
39381776 | 431 | These functions provide some control over how the library is initialized. |
584ac89a | 432 | </para> |
39381776 | 433 | &fcinit; |
584ac89a KP |
434 | </sect2> |
435 | <sect2><title>FcPattern</title> | |
436 | <para> | |
437 | An FcPattern is an opaque type that holds both patterns to match against the | |
438 | available fonts, as well as the information about each font. | |
439 | </para> | |
22671e25 | 440 | &fcpattern; |
caeea376 | 441 | &fcformat; |
584ac89a KP |
442 | </sect2> |
443 | <sect2><title>FcFontSet</title> | |
444 | <para> | |
445 | An FcFontSet simply holds a list of patterns; these are used to return the | |
446 | results of listing available fonts. | |
447 | </para> | |
bfc2dc3a KP |
448 | &fcfontset; |
449 | </sect2> | |
584ac89a KP |
450 | <sect2><title>FcObjectSet</title> |
451 | <para> | |
452 | An FcObjectSet holds a list of pattern property names; it is used to | |
7baa20c7 | 453 | indicate which properties are to be returned in the patterns from |
584ac89a KP |
454 | FcFontList. |
455 | </para> | |
bfc2dc3a KP |
456 | &fcobjectset; |
457 | </sect2> | |
39381776 KP |
458 | <sect2><title>FreeType specific functions</title> |
459 | <para> | |
460 | While the fontconfig library doesn't insist that FreeType be used as the | |
461 | rasterization mechanism for fonts, it does provide some convenience | |
462 | functions. | |
463 | </para> | |
464 | &fcfreetype; | |
465 | </sect2> | |
466 | <sect2><title>FcValue</title> | |
467 | <para> | |
468 | FcValue is a structure containing a type tag and a union of all possible | |
469 | datatypes. The tag is an enum of type | |
470 | <emphasis>FcType</emphasis> | |
471 | and is intended to provide a measure of run-time | |
472 | typechecking, although that depends on careful programming. | |
473 | </para> | |
474 | &fcvalue; | |
475 | </sect2> | |
476 | <sect2><title>FcCharSet</title> | |
477 | <para> | |
7baa20c7 | 478 | An FcCharSet is a boolean array indicating a set of Unicode chars. Those |
39381776 KP |
479 | associated with a font are marked constant and cannot be edited. |
480 | FcCharSets may be reference counted internally to reduce memory consumption; | |
481 | this may be visible to applications as the result of FcCharSetCopy may | |
482 | return it's argument, and that CharSet may remain unmodifiable. | |
483 | </para> | |
484 | &fccharset; | |
485 | </sect2> | |
dc7b6f1d KP |
486 | <sect2><title>FcLangSet</title> |
487 | <para> | |
488 | An FcLangSet is a set of language names (each of which include language and | |
489 | an optional territory). They are used when selecting fonts to indicate which | |
490 | languages the fonts need to support. Each font is marked, using language | |
491 | orthography information built into fontconfig, with the set of supported | |
492 | languages. | |
493 | </para> | |
494 | &fclangset; | |
495 | </sect2> | |
39381776 KP |
496 | <sect2><title>FcMatrix</title> |
497 | <para> | |
498 | FcMatrix structures hold an affine transformation in matrix form. | |
499 | </para> | |
500 | &fcmatrix; | |
501 | </sect2> | |
502 | <sect2><title>FcConfig</title> | |
503 | <para> | |
504 | An FcConfig object holds the internal representation of a configuration. | |
505 | There is a default configuration which applications may use by passing 0 to | |
506 | any function using the data within an FcConfig. | |
507 | </para> | |
508 | &fcconfig; | |
509 | </sect2> | |
584ac89a KP |
510 | <sect2><title>FcObjectType</title> |
511 | <para> | |
7baa20c7 | 512 | Provides for application-specified font name object types so that new |
584ac89a KP |
513 | pattern elements can be generated from font names. |
514 | </para> | |
bfc2dc3a KP |
515 | &fcobjecttype; |
516 | </sect2> | |
584ac89a KP |
517 | <sect2><title>FcConstant</title> |
518 | <para> | |
519 | Provides for application-specified symbolic constants for font names. | |
520 | </para> | |
bfc2dc3a KP |
521 | &fcconstant; |
522 | </sect2> | |
584ac89a KP |
523 | <sect2><title>FcBlanks</title> |
524 | <para> | |
525 | An FcBlanks object holds a list of Unicode chars which are expected to | |
526 | be blank when drawn. When scanning new fonts, any glyphs which are | |
527 | empty and not in this list will be assumed to be broken and not placed in | |
528 | the FcCharSet associated with the font. This provides a significantly more | |
529 | accurate CharSet for applications. | |
530 | </para> | |
bfc2dc3a KP |
531 | &fcblanks; |
532 | </sect2> | |
584ac89a KP |
533 | <sect2><title>FcAtomic</title> |
534 | <para> | |
7baa20c7 BH |
535 | These functions provide a safe way to update configuration files, allowing ongoing |
536 | reading of the old configuration file while locked for writing and ensuring that a | |
537 | consistent and complete version of the configuration file is always available. | |
584ac89a | 538 | </para> |
39381776 KP |
539 | &fcatomic; |
540 | </sect2> | |
584ac89a | 541 | <sect2><title>File and Directory routines</title> |
39381776 KP |
542 | <para> |
543 | These routines work with font files and directories, including font | |
544 | directory cache files. | |
8c87b429 | 545 | </para> |
39381776 | 546 | &fcfile; |
dc7b6f1d KP |
547 | &fcdircache; |
548 | </sect2> | |
549 | <sect2><title>FcCache routines</title> | |
550 | <para> | |
551 | These routines work with font directory caches, accessing their contents in | |
552 | limited ways. It is not expected that normal applications will need to use | |
553 | these functions. | |
554 | </para> | |
555 | &fccache; | |
39381776 | 556 | </sect2> |
584ac89a KP |
557 | <sect2><title>FcStrSet and FcStrList</title> |
558 | <para> | |
559 | A data structure for enumerating strings, used to list directories while | |
560 | scanning the configuration as directories are added while scanning. | |
561 | </para> | |
39381776 KP |
562 | &fcstrset; |
563 | </sect2> | |
584ac89a | 564 | <sect2><title>String utilities</title> |
39381776 KP |
565 | <para> |
566 | Fontconfig manipulates many UTF-8 strings represented with the FcChar8 type. | |
567 | These functions are exposed to help applications deal with these UTF-8 | |
568 | strings in a locale-insensitive manner. | |
569 | </para> | |
570 | &fcstring; | |
571 | </sect2> | |
584ac89a KP |
572 | </sect1> |
573 | </article> |