Table of Contents


Xft - X FreeType interface library


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.


XftFont contains general font metrics and a pointer to either the core XFontStruct data or a structure holding FreeType and X Render Extension data.

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

XftColor contains a pixel value and the ARGB values associated with it.


XftFont *
XftFontOpen (Display *dpy, int screen, ...);
XftFontOpen takes a list of pattern elements of the form (field, type, value) terminated with a 0, matches that pattern against the available fonts and opens the matching font.

   font = XftFontOpen (dpy, scr,
            XFT_FAMILY, XftTypeString, "charter",
            XFT_SIZE, XftTypeDouble, 12.0);

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.

XftTextExtents8 (Display    *dpy,
         XftFont    *font,
         FcChar8      *string, 
         int        len,
         XGlyphInfo    *extents);
XftTextExtents8 computes the pixel extents of "string" when drawn with "font".

XftDraw *
XftDrawCreate (Display   *dpy,
           Drawable  drawable,
           Visual    *visual,
           Colormap  colormap);
XtDrawCreate creates a structure that can be used to render text and rectangles to the screen.

XftDrawString8 (XftDraw        *d,
        XftColor    *color,
        XftFont        *font,
        int        x, 
        int        y,
        FcChar8        *string,
        int        len);
XftDrawString8 draws "string" using "font" in "color" at "x, y".

XftDrawRect (XftDraw        *d,
         XftColor        *color,
         int        x, 
         int        y,
         unsigned int   width,
         unsigned int   height);
XftDrawRect fills a solid rectangle in the specified color.

XftColorAllocName (Display  *dpy,
           Visual   *visual,
           Colormap cmap,
           char        *name,
           XftColor *result);
XftColorAllocName allocates a XftColor structure. It asks the X server to allocate a pixel and return the associated RGB values wich are used to construct an XRenderColor . This requires a round trip (bad).

XftColorAllocValue (Display        *dpy,
            Visual        *visual,
            Colormap        cmap,
            XRenderColor    *color,
            XftColor        *result);
For TrueColor visuals, XftColorAllocValue computes the nearest supported ARGB value and the associated pixel value and stores them in the result. No round trip is required. For non-TrueColor visuals, XftColorAllocValue asks the X server to allocate the specified color and stores the resulting pixel and ARGB values into result.

XftColorFree (Display    *dpy,
          Visual    *visual,
          Colormap    cmap,
          XftColor    *color);
XftColorFree frees a color when it is no longer in use.


The Xft version 2 library uses fontconfig(3) for its configuration. The XftConfig files are not used anymore.


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

See Also



Keith Packard, member of the XFree86 Project, Inc.

Table of Contents