1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
12 TITLE="FUNCTIONAL OVERVIEW"
16 HREF="x103.html"></HEAD
27 SUMMARY="Header navigation table"
46 ><<< Previous</A
60 >Next >>></A
76 >Fontconfig uses abstract data types to hide internal implementation details
77 for most data structures. A few structures are exposed where appropriate.
85 >FcChar8, FcChar16, FcChar32, FcBool</A
88 >These are primitive data types; the FcChar* types hold precisely the number
89 of bits stated (if supported by the C implementation). FcBool holds
90 one of two C preprocessor symbols: FcFalse or FcTrue.
102 >An FcMatrix holds an affine transformation, usually used to reshape glyphs.
103 A small set of matrix operations are provided to manipulate these.
111 CLASS="PROGRAMLISTING"
112 > typedef struct _FcMatrix {
113 double xx, xy, yx, yy;
131 >An FcCharSet is an abstract type that holds the set of encoded Unicode chars
132 in a font. Operations to build and compare these sets are provided.
144 >An FcLangSet is an abstract type that holds the set of languages supported
145 by a font. Operations to build and compare these sets are provided. These
146 are computed for a font based on orthographic information built into the
147 fontconfig library. Fontconfig has orthographies for all of the ISO 639-1
148 languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If
149 you have orthographic information for any of these languages, please submit
162 >An FcLangResult is an enumeration used to return the results of comparing
163 two language strings or FcLangSet objects. FcLangEqual means the
164 objects match language and territory. FcLangDifferentTerritory means
165 the objects match in language but differ in territory.
166 FcLangDifferentLang means the objects differ in language.
178 >Tags the kind of data stored in an FcValue.
190 >An FcValue object holds a single value with one of a number of different
191 types. The 'type' tag indicates which member is valid.
199 CLASS="PROGRAMLISTING"
200 > typedef struct _FcValue {
225 CLASS="PROGRAMLISTING"
228 Type Union member Datatype
229 --------------------------------
230 FcTypeVoid (none) (none)
232 FcTypeDouble d double
233 FcTypeString s FcChar8 *
235 FcTypeMatrix m FcMatrix *
236 FcTypeCharSet c FcCharSet *
237 FcTypeFTFace f void * (FT_Face)
238 FcTypeLangSet l FcLangSet *
255 >holds a set of names with associated value lists; each name refers to a
256 property of a font. FcPatterns are used as inputs to the matching code as
257 well as holding information about specific fonts. Each property can hold
258 one or more values; conventionally all of the same type, although the
259 interface doesn't demand that.
278 CLASS="PROGRAMLISTING"
279 > typedef struct _FcFontSet {
289 An FcFontSet contains a list of FcPatterns. Internally fontconfig uses this
290 data structure to hold sets of fonts. Externally, fontconfig returns the
291 results of listing fonts in this format. 'nfont' holds the number of
292 patterns in the 'fonts' array; 'sfont' is used to indicate the size of that
302 >FcStrSet, FcStrList</A
305 >FcStrSet holds a list of strings that can be appended to and enumerated.
306 Its unique characteristic is that the enumeration works even while strings
307 are appended during enumeration. FcStrList is used during enumeration to
308 safely and correctly walk the list of strings even while that list is edited
309 in the middle of enumeration.
328 CLASS="PROGRAMLISTING"
329 > typedef struct _FcObjectSet {
332 const char **objects;
339 holds a set of names and is used to specify which fields from fonts are
340 placed in the the list of returned patterns when listing fonts.
359 CLASS="PROGRAMLISTING"
360 > typedef struct _FcObjectType {
369 marks the type of a pattern element generated when parsing font names.
370 Applications can add new object types so that font names may contain the new
390 CLASS="PROGRAMLISTING"
391 > typedef struct _FcConstant {
401 Provides for symbolic constants for new pattern elements. When 'name' is
402 seen in a font name, an 'object' element is created with value 'value'.
414 >holds a list of Unicode chars which are expected to be blank; unexpectedly
415 blank chars are assumed to be invalid and are elided from the charset
416 associated with the font.
419 > FcBlanks is deprecated and should not be used in newly written code.
420 It is still accepted by some functions for compatibility with
421 older code but will be removed in the future.
433 >holds the per-user cache information for use while loading the font
434 database. This is built automatically for the current configuration when
435 that is loaded. Applications must always pass '0' when one is requested.
447 >holds a complete configuration of the library; there is one default
448 configuration, other can be constructed from XML data structures. All
449 public entry points that need global data can take an optional FcConfig*
450 argument; passing 0 uses the default configuration. FcConfig objects hold two
451 sets of fonts, the first contains those specified by the configuration, the
452 second set holds those added by the application at run-time. Interfaces
453 that need to reference a particular set use one of the FcSetName enumerated
466 >Specifies one of the two sets of fonts available in a configuration;
467 FcSetSystem for those fonts specified in the configuration and
468 FcSetApplication which holds fonts provided by the application.
480 >Used as a return type for functions manipulating FcPattern objects.
488 CLASS="PROGRAMLISTING"
491 -----------------------------------------------------------
492 FcResultMatch Object exists with the specified ID
493 FcResultNoMatch Object doesn't exist at all
494 FcResultTypeMismatch Object exists, but the type doesn't match
495 FcResultNoId Object exists, but has fewer values
497 FcResultOutOfMemory malloc failed
514 >Used for locking access to configuration files. Provides a safe way to update
527 >Holds information about the fonts contained in a single directory. Normal
528 applications need not worry about this as caches for font access are
529 automatically managed by the library. Applications dealing with cache
530 management may want to use some of these objects in their work, however the
531 included 'fc-cache' program generally suffices for all of that.
540 SUMMARY="Footer navigation table"
553 ><<< Previous</A
571 >Next >>></A
579 >FUNCTIONAL OVERVIEW</TD