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.