]> git.wh0rd.org - fontconfig.git/blobdiff - doc/fontconfig-devel.sgml
Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files
[fontconfig.git] / doc / fontconfig-devel.sgml
index 1528fbc77c2297d7cc89a5d7d17992b146e74a6b..bce8d68cef2688362aa56a520f13415704175606 100644 (file)
@@ -1,13 +1,16 @@
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
 <!ENTITY fcatomic SYSTEM "fcatomic.sgml">
 <!ENTITY fcblanks SYSTEM "fcblanks.sgml">
+<!ENTITY fccache SYSTEM "fccache.sgml">
 <!ENTITY fccharset SYSTEM "fccharset.sgml">
 <!ENTITY fcconfig SYSTEM "fcconfig.sgml">
 <!ENTITY fcconstant SYSTEM "fcconstant.sgml">
+<!ENTITY fcdircache SYSTEM "fcdircache.sgml">
 <!ENTITY fcfile SYSTEM "fcfile.sgml">
 <!ENTITY fcfontset SYSTEM "fcfontset.sgml">
 <!ENTITY fcfreetype SYSTEM "fcfreetype.sgml">
 <!ENTITY fcinit SYSTEM "fcinit.sgml">
+<!ENTITY fclangset SYSTEM "fclangset.sgml">
 <!ENTITY fcmatrix SYSTEM "fcmatrix.sgml">
 <!ENTITY fcobjectset SYSTEM "fcobjectset.sgml">
 <!ENTITY fcobjecttype SYSTEM "fcobjecttype.sgml">
 <!ENTITY fcstring SYSTEM "fcstring.sgml">
 <!ENTITY fcstrset SYSTEM "fcstrset.sgml">
 <!ENTITY fcvalue SYSTEM "fcvalue.sgml">
+<!ENTITY version SYSTEM "version.sgml">
 ]>
 <!--
-    $Id$
+    fontconfig/doc/local-fontconfig-devel.sgml
    
-    Copyright © 2003 Keith Packard
+    Copyright Â© 2003 Keith Packard
    
     Permission to use, copy, modify, distribute, and sell this software and its
     documentation for any purpose is hereby granted without fee, provided that
     representations about the suitability of this software for any purpose.  It
     is provided "as is" without express or implied warranty.
    
-    KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+    THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-    EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+    EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
     TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     PERFORMANCE OF THIS SOFTWARE.
 -->
 <article>
-       <title>Fontconfig Developers Reference</title>
+       <title>Fontconfig Developers Reference, Version &version; </title>
        <artheader>
                <author>
                        <firstname>Keith</firstname>
                </author>
                <authorinitials>KRP</authorinitials>
                <productname>Fontconfig</productname>
-               <productnumber>2.1.91</productnumber>
+               <productnumber>&version;</productnumber>
                <LegalNotice>
                        <simpara>               
-Copyright © 2002 Keith Packard
+Copyright Â© 2002 Keith Packard
                        </simpara><simpara>
 Permission to use, copy, modify, distribute, and sell this software and its
 documentation for any purpose is hereby granted without fee, provided that
@@ -66,9 +70,9 @@ specific, written prior permission.  Keith Packard makes no
 representations about the suitability of this software for any purpose.  It
 is provided "as is" without express or implied warranty.
                        </simpara><simpara>
-KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
@@ -76,14 +80,6 @@ PERFORMANCE OF THIS SOFTWARE.
                        </simpara>
                </LegalNotice>
        </artheader>
-<!--
-<refsynopsisdiv>
-  <synopsis>
-  #include &lt;fontconfig/fontconfig.h&gt;
-  #include &lt;fontconfig/fcfreetype.h&gt;
-  </synopsis>
-</refsynopsisdiv>
--->
 <sect1><title>DESCRIPTION</title>
   <para>
 Fontconfig is a library designed to provide system-wide font configuration,
@@ -134,25 +130,36 @@ convenience for the applications rendering mechanism.
     <programlisting>
                  Property Definitions
 
-    Property    CPP Symbol      Type    Description
+    Property       CPP Symbol           Type    Description
     ----------------------------------------------------
-    family         FC_FAMILY            String  Font family name
+    family         FC_FAMILY            String  Font family names
+    familylang     FC_FAMILYLANG        String  Language cooresponding to
+                                                each family name
     style          FC_STYLE             String  Font style. Overrides weight
                                                 and slant
+    stylelang      FC_STYLELANG         String  Language cooresponding to
+                                                each style name
+    fullname       FC_FULLNAME          String  Font face full name where
+                                                different from family and
+                                                family + style
+    fullnamelang   FC_FULLNAMELANG      String  Language cooresponding to
+                                                each fullname
     slant          FC_SLANT             Int     Italic, oblique or roman
     weight         FC_WEIGHT            Int     Light, medium, demibold,
                                                 bold or black
     size           FC_SIZE              Double  Point size
+    width          FC_WIDTH             Int     Condensed, normal or expanded
     aspect         FC_ASPECT            Double  Stretches glyphs horizontally
                                                 before hinting
     pixelsize      FC_PIXEL_SIZE        Double  Pixel size
-    spacing        FC_SPACING           Int     Proportional, monospace or
-                                                charcell
+    spacing        FC_SPACING           Int     Proportional, dual-width,
+                                                monospace or charcell
     foundry        FC_FOUNDRY           String  Font foundry name
     antialias      FC_ANTIALIAS         Bool    Whether glyphs can be
                                                 antialiased
     hinting        FC_HINTING           Bool    Whether the rasterizer should
                                                 use hinting
+    hintstyle      FC_HINT_STYLE        Int     Automatic hinting style
     verticallayout FC_VERTICAL_LAYOUT   Bool    Use vertical layout
     autohint       FC_AUTOHINT          Bool    Use autohinter instead of
                                                 normal hinter
@@ -170,12 +177,18 @@ convenience for the applications rendering mechanism.
     dpi            FC_DPI               Double  Target dots per inch
     rgba           FC_RGBA              Int     unknown, rgb, bgr, vrgb,
                                                 vbgr, none - subpixel geometry
+    lcdfilter      FC_LCD_FILTER        Int     Type of LCD filter
     minspace       FC_MINSPACE          Bool    Eliminate leading from line
                                                 spacing
     charset        FC_CHARSET           CharSet Unicode chars encoded by
                                                 the font
-    lang           FC_LANG              String  List of RFC-3066-style
+    lang           FC_LANG              LangSet Set of RFC-3066-style
                                                 languages this font supports
+    fontversion    FC_FONTVERSION       Int     Version number of the font
+    capability     FC_CAPABILITY        String  List of layout capabilities in
+                                                the font
+    embolden       FC_EMBOLDEN          Bool    Rasterizer should
+                                                synthetically embolden the font
     </programlisting>
   </sect2>
 </sect1>
@@ -208,6 +221,26 @@ An FcCharSet is an abstract type that holds the set of encoded unicode chars
 in a font.  Operations to build and compare these sets are provided.
     </para>
   </sect2>
+  <sect2><title>FcLangSet</title>
+    <para>
+An FcLangSet is an abstract type that holds the set of languages supported
+by a font.  Operations to build and compare these sets are provided. These
+are computed for a font based on orthographic information built into the
+fontconfig library. Fontconfig has orthographies for all of the ISO 639-1
+languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If
+you have orthographic information for any of these languages, please submit
+them.
+    </para>
+  </sect2>
+  <sect2><title>FcLangResult</title>
+    <para>
+An FcLangResult is an enumeration used to return the results of comparing
+two language strings or FcLangSet objects. FcLangEqual means the
+objects match language and territory. FcLangDifferentTerritory means
+the objects match in language but differ in territory.
+FcLangDifferentLang means the objects differ in language.
+    </para>
+  </sect2>
   <sect2><title>FcType</title>
     <para>
 Tags the kind of data stored in an FcValue.
@@ -227,6 +260,8 @@ types.  The 'type' tag indicates which member is valid.
                         double d;
                         const FcMatrix *m;
                         const FcCharSet *c;
+                       void *f;
+                       const FcLangSet *l;
                 } u;
         } FcValue;
     </programlisting>
@@ -238,10 +273,12 @@ types.  The 'type' tag indicates which member is valid.
         FcTypeVoid      (none)          (none)
         FcTypeInteger   i               int
         FcTypeDouble    d               double
-        FcTypeString    s               char *
+        FcTypeString    s               FcChar8 *
         FcTypeBool      b               b
         FcTypeMatrix    m               FcMatrix *
         FcTypeCharSet   c               FcCharSet *
+       FcTypeFTFace    f               void * (FT_Face)
+       FcTypeLangSet   l               FcLangSet *
     </programlisting>
     </para>
   </sect2>
@@ -363,6 +400,7 @@ Used as a return type for functions manipulating FcPattern objects.
         FcResultTypeMismatch    Object exists, but the type doesn't match
         FcResultNoId            Object exists, but has fewer values
                                 than specified
+        FcResultOutOfMemory     Malloc failed
     </programlisting>
     </para>
   </sect2>
@@ -372,6 +410,15 @@ Used for locking access to config files.  Provides a safe way to update
 configuration files.
     </para>
   </sect2>
+  <sect2><title>FcCache</title>
+    <para>
+Holds information about the fonts contained in a single directory. Normal
+applications need not worry about this as caches for font access are
+automatically managed by the library. Applications dealing with cache
+management may want to use some of these objects in their work, however the
+included 'fc-cache' program generally suffices for all of that.
+    </para>
+  </sect2>
 </sect1>
 <sect1><title>FUNCTIONS</title>
   <para>
@@ -434,6 +481,16 @@ return it's argument, and that CharSet may remain unmodifiable.
     </para>
     &fccharset;
   </sect2>
+  <sect2><title>FcLangSet</title>
+    <para>
+An FcLangSet is a set of language names (each of which include language and
+an optional territory). They are used when selecting fonts to indicate which
+languages the fonts need to support. Each font is marked, using language
+orthography information built into fontconfig, with the set of supported
+languages.
+    </para>
+    &fclangset;
+  </sect2>
   <sect2><title>FcMatrix</title>
     <para>
 FcMatrix structures hold an affine transformation in matrix form.
@@ -483,7 +540,17 @@ consistent and complete version of the config file is always available.
     <para>
 These routines work with font files and directories, including font
 directory cache files.
+    </para>
     &fcfile;
+    &fcdircache;
+  </sect2>
+  <sect2><title>FcCache routines</title>
+    <para>
+These routines work with font directory caches, accessing their contents in
+limited ways. It is not expected that normal applications will need to use
+these functions.
+    </para>
+    &fccache;
   </sect2>
   <sect2><title>FcStrSet and FcStrList</title>
     <para>