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.
Example:
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.
void 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.
void 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".
void XftDrawRect (XftDraw *d, XftColor *color, int x, int y, unsigned int width, unsigned int height);XftDrawRect fills a solid rectangle in the specified color.
Bool 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).
Bool 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.
void XftColorFree (Display *dpy, Visual *visual, Colormap cmap, XftColor *color);XftColorFree frees a color when it is no longer in use.