Provided by: libxft-dev_2.3.3-0ubuntu1_amd64 bug

NAME

        Xft - X FreeType interface library

DESCRIPTION

       Xft  is  a  simple  library designed to interface the FreeType rasterizer with the X Rendering Extension.
       This manual page barely scratches the surface of this library.

HEADER FILE

       #include <X11/Xft/Xft.h>

CONSTANTS

       XFT_MAJOR
              is the major version number of Xft.

       XFT_MINOR
              is the minor version number of Xft.

       XFT_REVISION
              is the revision number of Xft.

       XFT_VERSION
              is XFT_MAJOR times 10000 (ten thousand), plus XFT_MINOR times 100, plus XFT_REVISION.

       XftVersion
              is an alias for XFT_VERSION.

       The following example illustrates how Xft's version constants might be used:
           #if (XFT_VERSION >= 20107)
           (void) puts("Version 2.1.7 or later of the Xft library is in"
                       " use.");
           #else
           (void) printf("Insufficient version of Xft (%d.%d.%d) installed;
                         " need at least version 2.1.7.\n", XFT_MAJOR,
                         XFT_MINOR,
                         XFT_REVISION);
           #endif

DATA TYPES

       XftFont
              typedef struct _XftFont {
                  int         ascent;
                  int         descent;
                  int         height;
                  int         max_advance_width;
                  FcCharSet   *charset;
                  FcPattern   *pattern;
              } XftFont;
              An XftFont is the primary data structure of interest to programmers using Xft; it contains general
              font  metrics  and  pointers to the Fontconfig character set and pattern associated with the font.
              The FcCharSet and FcPattern data types are defined by the Fontconfig library.

              XftFonts  are  populated  with  any  of   XftFontOpen(),   XftFontOpenName(),   XftFontOpenXlfd(),
              XftFontOpenInfo(),  or  XftFontOpenPattern().   XftFontCopy()  is  used to duplicate XftFonts, and
              XftFontClose() is used  to  mark  an  XftFont  as  unused.   XftFonts  are  internally  allocated,
              reference-counted,  and  freed by Xft; the programmer does not ordinarily need to allocate or free
              storage for them.

              XftDrawGlyphs(),  the  XftDrawString*()  family,  XftDrawCharSpec(),  and  XftDrawGlyphSpec()  use
              XftFonts  to render text to an XftDraw object, which may correspond to either a core X drawable or
              an X Rendering Extension drawable.

              XftGlyphExtents() and the XftTextExtents*() family are used  to  determine  the  extents  (maximum
              dimensions) of an XftFont.

              An   XftFont's  glyph  or  character  coverage  can  be  determined  with  XftFontCheckGlyph()  or
              XftCharExists().  XftCharIndex() returns the XftFont-specific character index corresponding  to  a
              given Unicode codepoint.

              XftGlyphRender(),  XftGlyphSpecRender(),  XftCharSpecRender(), and the XftTextRender*() family use
              XftFonts to draw into X  Rendering  Extension  Picture  structures.   Note:  XftDrawGlyphs(),  the
              XftDrawString*()  family,  XftDrawCharSpec(),  and XftDrawGlyphSpec() provide a means of rendering
              fonts that is independent of the availability of the X Rendering Extension on the X server.

       XftFontInfo
              is an opaque object that stores information about a font.  XftFontInfo structures are created with
              XftFontInfoCreate(),  freed  with  XftFontInfoDestroy(),  and  compared  with  XftFontInfoEqual().
              XftFontInfo objects are internally allocated and freed by Xft; the programmer does not  ordinarily
              need to allocate or free storage for them.

              Each  XftFontInfo  structure in use is associated with a unique identifier, which can be retrieved
              with  XftFontInfoHash().   An  XftFont  can   be   opened   based   on   XftFontInfo   data   with
              XftFontOpenInfo().

       XftColor
              typedef struct _XftColor {
                  unsigned long   pixel;
                  XRenderColor    color;
              } XftColor;
              An  XftColor  object  permits  text  and  other items to be rendered in a particular color (or the
              closest approximation offered by the X visual in use).  The XRenderColor data type is  defined  by
              the X Render Extension library.

              XftColorAllocName()  and  XftColorAllocValue()  request  a  color allocation from the X server (if
              necessary) and initialize the members of XftColor.  XftColorFree() instructs the X server to  free
              the color currently allocated for an XftColor.

              One  an  XftColor has been initialized, XftDrawSrcPicture(), XftDrawGlyphs(), the XftDrawString*()
              family, XftDrawCharSpec(), XftDrawCharFontSpec(), XftDrawGlyphSpec(), XftDrawGlyphFontSpec(),  and
              XftDrawRect() may be used to draw various objects using it.

       XftDraw
              is  an opaque object which holds information used to render to an X drawable using either the core
              protocol or the X Rendering extension.

              XftDraw objects are created with any of XftDrawCreate()  (which  associates  an  XftDraw  with  an
              existing   X   drawable),  XftDrawCreateBitmap(),  or  XftDrawCreateAlpha(),  and  destroyed  with
              XftDrawDestroy().  The X drawable associated with an XftDraw can be changed with  XftDrawChange().
              XftDraws  are  internally  allocated  and freed by Xft; the programmer does not ordinarily need to
              allocate or free storage for them.

              The X Display, Drawable, Colormap, and Visual of an XftDraw can be queried with  XftDrawDisplay(),
              XftDrawDrawable(),   XftDrawColormap(),   and  XftDrawVisual(),  respectively.   The  X  Rendering
              Extension Picture associated with an XftDraw is returned by XftDrawPicture().

       XftCharSpec
              typedef struct _XftCharSpec {
                  FcChar32    ucs4;
                  short       x;
                  short       y;
              } XftCharSpec;

              The FcChar32 data type is defined by the Fontconfig library.

       XftCharFontSpec
              typedef struct _XftCharFontSpec {
                  XftFont     *font;
                  FcChar32    ucs4;
                  short       x;
                  short       y;
              } XftCharFontSpec;

              The FcChar32 data type is defined by the Fontconfig library.

       XftGlyphSpec
              typedef struct _XftGlyphSpec {
                  FT_UInt     glyph;
                  short       x;
                  short       y;
              } XftGlyphSpec;

              The FT_UInt data type is defined by the FreeType library.

       XftGlyphFontSpec
              typedef struct _XftGlyphFontSpec {
                  XftFont     *font;
                  FT_UInt     glyph;
                  short       x;
                  short       y;
              } XftGlyphFontSpec;

              The FT_UInt data type is defined by the FreeType library.

FUNCTIONS

   Opening and Matching Fonts
       XftFont *
       XftFontOpen (Display *dpy,
                    int     screen,
                    ...);
       XftFontOpen takes a list of pattern element triples of the form field, type,  value  (terminated  with  a
       NULL), matches that pattern against the available fonts, and opens the matching font, sizing it correctly
       for screen number screen on display dpy.  The Display data type is defined by the X11  library.   Returns
       NULL if no match is found.

       Example:
           font = XftFontOpen (dpy, screen,
                               XFT_FAMILY, XftTypeString, "charter",
                               XFT_SIZE, XftTypeDouble, 12.0,
                               NULL);
       This  opens  the  “charter”  font at 12 points.  The point size is automatically converted to the correct
       pixel size based on the resolution of the monitor.

       XftFont *
       XftFontOpenName (Display       *dpy,
                        int           screen,
                        unsigned char *name);
       XftFontOpenName behaves as XftFontOpen does, except that it takes a Fontconfig pattern string  (which  is
       passed to the Fontconfig library's FcNameParse() function).

       XftFont *
       XftFontOpenXlfd (Display       *dpy,
                        int           screen,
                        unsigned char *xlfd)
       XftFontOpenXlfd  behaves  as XftFontOpen does, except that it takes a string containing an X Logical Font
       Description (XLFD).

       FcPattern *
       XftFontMatch (Display   *dpy,
                     int       screen,
                     FcPattern *pattern,
                     FcResult  *result);
       Also used internally by the XftFontOpen* functions, XftFontMatch can also be used directly  to  determine
       the  Fontconfig  font  pattern  resulting from an Xft font open request.  The FcPattern and FcResult data
       types are defined by the Fontconfig library.

   Determining the Pixel Extents of a Text String
       void
       XftTextExtents8 (Display    *dpy,
                        XftFont    *font,
                        FcChar8    *string,
                        int        len,
                        XGlyphInfo *extents);
       XftTextExtents8 computes the pixel extents on display dpy  of  no  more  than  len  glyphs  of  a  string
       consisting  of eight-bit characters when drawn with font, storing them in extents.  The FcChar8 data type
       is defined by the Fontconfig library, and the  XGlyphInfo  data  type  is  defined  by  the  X  Rendering
       Extension library.

       void
       XftTextExtents16 (Display    *dpy,
                         XftFont    *font,
                         FcChar16   *string,
                         int        len,
                         XGlyphInfo *extents);
       XftTextExtents16  computes  the  pixel  extents  on  display  dpy  of no more than len glyphs of a string
       consisting of sixteen-bit characters when drawn with font, storing them in extents.   The  FcChar16  data
       type  is  defined  by  the Fontconfig library, and the XGlyphInfo data type is defined by the X Rendering
       Extension library.

       void
       XftTextExtents32 (Display    *dpy,
                         XftFont    *font,
                         FcChar32   *string,
                         int        len,
                         XGlyphInfo *extents);
       XftTextExtents32 computes the pixel extents on display dpy of  no  more  than  len  glyphs  of  a  string
       consisting of thirty-two-bit characters when drawn with font, storing them in extents.  The FcChar32 data
       type is defined by the Fontconfig library, and the XGlyphInfo data type is defined  by  the  X  Rendering
       Extension library.

       void
       XftTextExtentsUtf8 (Display    *dpy,
                           XftFont    *font,
                           FcChar8    *string,
                           int        len,
                           XGlyphInfo *extents);
       XftTextExtentsUtf8 computes the pixel extents on display dpy of no more than len bytes of a UTF-8 encoded
       string when drawn with font, storing them in extents.  The XGlyphInfo data  type  is  defined  by  the  X
       Rendering Extension library.

       void
       XftTextExtentsUtf16 (Display    *dpy,
                            XftFont    *font,
                            FcChar8    *string,
                            FcEndian   endian,
                            int        len,
                            XGlyphInfo *extents);
       XftTextExtentsUtf16 computes the pixel extents on display dpy of no more than len bytes of a UTF-16LE- or
       UTF-16BE-encoded string when drawn with font, storing them in extents.  The endianness of string must  be
       specified  in  endian.   The  FcEndian data type is defined by the Fontconfig library, and the XGlyphInfo
       data type is defined by the X Rendering Extension library.

       void
       XftGlyphExtents (Display    *dpy,
                        XftFont    *font,
                        FT_UInt    *glyphs,
                        int        nglyphs,
                        XGlyphInfo *extents);
       Also used internally by the XftTextExtents* functions, XftGlyphExtents  computes  the  pixel  extents  on
       display  dpy  of  no more than nglyphs in the array glyphs drawn with font, storing them in extents.  The
       FT_UInt data type is defined by the FreeType library, and the XGlyphInfo data type is defined  by  the  X
       Rendering Extension library.

   Drawing Strings (and Other Things)
       XftDraw *
       XftDrawCreate (Display  *dpy,
                      Drawable drawable,
                      Visual   *visual,
                      Colormap colormap);
       XftDrawCreate  creates  a  structure  that  can be used to render text and rectangles using the specified
       drawable, visual, and colormap on display.  The Drawable, Visual, and Colormap data types are defined  by
       the X11 library.

       XftDraw *
       XftDrawCreateBitmap (Display *dpy,
                            Pixmap  bitmap);
       XftDrawCreateBitmap behaves as XftDrawCreate, except it uses an X pixmap of color depth 1 instead of an X
       drawable.  The Pixmap data type is defined by the X11 library.

       XftDraw *
       XftDrawCreateAlpha (Display *dpy,
                           Pixmap  pixmap,
                           int     depth);
       XftDrawCreateAlpha behaves as XftDrawCreate, except it uses an X pixmap of color depth depth  instead  of
       an X drawable.  The Pixmap data type is defined by the X11 library.

       void
       XftDrawChange (XftDraw  *draw,
                      Drawable drawable);
       XftDrawChange  changes  the  X drawable association of the existing Xft draw object draw from its current
       value to drawable.

       Display *
       XftDrawDisplay (XftDraw *draw);
       XftDrawDisplay returns a pointer to the display associated with the Xft draw object draw.

       Drawable
       XftDrawDrawable (XftDraw *draw);
       XftDrawDrawable returns the X drawable associated with the Xft draw object draw.

       Colormap
       XftDrawColormap (XftDraw *draw);
       XftDrawColormap returns the colormap associatied with the Xft draw object draw.

       Visual *
       XftDrawVisual (XftDraw *draw);
       XftDrawVisual returns a pointer to the visual associated with the Xft draw object draw.

       Picture
       XftDrawPicture (XftDraw *draw);
       XftDrawPicture returns the picture associated with the Xft draw object draw.  If the the  X  server  does
       not support the X Rendering Extension, 0 is returned.

       Picture
       XftDrawSrcPicture (XftDraw *draw,
                          XftColor *color);
       This  function  is  never  called  if  the  X  server doesn't support the X Rendering Extension; instead,
       XftGlyphCore is used.

       void
       XftDrawDestroy (XftDraw *draw);
       XftDrawDestroy destroys draw (created by one of the XftCreate functions) and frees the  memory  that  was
       allocated for it.

       void
       XftDrawString8 (XftDraw         *d,
                       XftColor        *color,
                       XftFont         *font,
                       int             x,
                       int             y,
                       unsigned char   *string,
                       int             len);
       XftDrawString8  draws no more than len glyphs of string to Xft drawable d using font in color at position
       x, y.

       void
       XftDrawRect (XftDraw        *d,
                    XftColor       *color,
                    int            x,
                    int            y,
                    unsigned int   width,
                    unsigned int   height);
       XftDrawRect draws a solid rectangle of the specified color, width, and height at position  x,  y  to  Xft
       drawable d.

COMPATIBILITY

       As  of  version  2,  Xft  has  become  relatively  stable  and  is  expected  to retain source and binary
       compatibility in future releases.

       Xft does provide a compatibility interface to its previous major version, Xft 1.x, described below.

   Xft 1.x Compatibility Header File
       #include <X11/Xft/XftCompat.h>

   Xft 1.x Compatibility Data Types
       XftPattern
              holds a set of names with associated value lists; each name  refers  to  a  property  of  a  font.
              XftPatterns  are used as inputs to the matching code as well as holding information about specific
              fonts.

       XftFontSet
              contains a list of XftPatterns.  Internally, Xft uses this data structure to hold sets  of  fonts.
              Externally, Xft returns the results of listing fonts in this format.

       XftObjectSet
              holds  a set of names and is used to specify which fields from fonts are placed in the the list of
              returned patterns when listing fonts.

AUTHOR

       Keith Packard

SEE ALSO

       Fontconfig Developers Reference
       FreeType API Reference
       Xlib - C Language Interface