| Xft(3) | Library Functions Manual | Xft(3) | 
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
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.
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.
typedef struct _XftCharSpec {
    FcChar32    ucs4;
    short       x;
    short       y;
} XftCharSpec;
    
  
typedef struct _XftCharFontSpec {
    XftFont     *font;
    FcChar32    ucs4;
    short       x;
    short       y;
} XftCharFontSpec;
    
  
typedef struct _XftGlyphSpec {
    FT_UInt     glyph;
    short       x;
    short       y;
} XftGlyphSpec;
    
  
typedef struct _XftGlyphFontSpec {
    XftFont     *font;
    FT_UInt     glyph;
    short       x;
    short       y;
} XftGlyphFontSpec;
    
  
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.
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.
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.
Xft does provide a compatibility interface to its previous major version, Xft 1.x, described below.
| X Version 11 |