Xft(3)


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





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.