Blame man/Xft.man

Packit b749da
.\"
Packit b749da
.\" Copyright © 2000 Keith Packard
Packit b749da
.\"
Packit b749da
.\" Permission to use, copy, modify, distribute, and sell this software and its
Packit b749da
.\" documentation for any purpose is hereby granted without fee, provided that
Packit b749da
.\" the above copyright notice appear in all copies and that both that
Packit b749da
.\" copyright notice and this permission notice appear in supporting
Packit b749da
.\" documentation, and that the name of Keith Packard not be used in
Packit b749da
.\" advertising or publicity pertaining to distribution of the software without
Packit b749da
.\" specific, written prior permission.  Keith Packard makes no
Packit b749da
.\" representations about the suitability of this software for any purpose.  It
Packit b749da
.\" is provided "as is" without express or implied warranty.
Packit b749da
.\"
Packit b749da
.\" KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
Packit b749da
.\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
Packit b749da
.\" EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
Packit b749da
.\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
Packit b749da
.\" DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
Packit b749da
.\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
Packit b749da
.\" PERFORMANCE OF THIS SOFTWARE.
Packit b749da
.\"
Packit b749da
.TH Xft __libmansuffix__ __vendorversion__
Packit b749da
.SH NAME
Packit b749da
 Xft \- X FreeType interface library
Packit b749da
.SH DESCRIPTION
Packit b749da
.B Xft
Packit b749da
is a simple library designed to interface the FreeType rasterizer with the X
Packit b749da
Rendering Extension.
Packit b749da
This manual page barely scratches the surface of this library.
Packit b749da
.SH "HEADER FILE"
Packit b749da
.B #include <X11/Xft/Xft.h>
Packit b749da
.SH CONSTANTS
Packit b749da
.TP
Packit b749da
.B XFT_MAJOR
Packit b749da
is the major version number of
Packit b749da
.BR Xft .
Packit b749da
.TP
Packit b749da
.B XFT_MINOR
Packit b749da
is the minor version number of
Packit b749da
.BR Xft .
Packit b749da
.TP
Packit b749da
.B XFT_REVISION
Packit b749da
is the revision number of
Packit b749da
.BR Xft .
Packit b749da
.TP
Packit b749da
.B XFT_VERSION
Packit b749da
is
Packit b749da
.B XFT_MAJOR
Packit b749da
times 10000 (ten thousand), plus
Packit b749da
.B XFT_MINOR
Packit b749da
times 100, plus
Packit b749da
.BR XFT_REVISION .
Packit b749da
.TP
Packit b749da
.B XftVersion
Packit b749da
is an alias for
Packit b749da
.BR XFT_VERSION .
Packit b749da
.PP
Packit b749da
The following example illustrates how
Packit b749da
.BR Xft 's
Packit b749da
version constants might be used:
Packit b749da
.nf
Packit b749da
    #if (XFT_VERSION >= 20107)
Packit b749da
    (void) puts("Version 2.1.7 or later of the Xft library is in"
Packit b749da
                " use.");
Packit b749da
    #else
Packit b749da
    (void) printf("Insufficient version of Xft (%d.%d.%d) installed;
Packit b749da
                  " need at least version 2.1.7.\(rsn", XFT_MAJOR,
Packit b749da
                  XFT_MINOR,
Packit b749da
                  XFT_REVISION);
Packit b749da
    #endif
Packit b749da
.fi
Packit b749da
.\" I don't understand what these are for.  -- BR, 2005-04-02
Packit b749da
.\" XFT_CORE                used in xftname.c
Packit b749da
.\" XFT_RENDER              used in xftdpy.c, xftfreetype.c, xftname.c
Packit b749da
.\" XFT_XLFD                used in xftname.c, xftxlfd.c
Packit b749da
.\" XFT_MAX_GLYPH_MEMORY    used in xftdpy.c, xftfreetype.c
Packit b749da
.\" XFT_MAX_UNREF_FONTS     used in xftdpy.c
Packit b749da
.\" XFT_NMISSING            used in xftcore.c, xftextent.c, xftglyphs.c,
Packit b749da
.\"                                 xftrender.c
Packit b749da
.SH "DATA TYPES"
Packit b749da
.TP
Packit b749da
.B XftFont
Packit b749da
.nf
Packit b749da
typedef struct _XftFont {
Packit b749da
    int         ascent;
Packit b749da
    int         descent;
Packit b749da
    int         height;
Packit b749da
    int         max_advance_width;
Packit b749da
    FcCharSet   *charset;
Packit b749da
    FcPattern   *pattern;
Packit b749da
} XftFont;
Packit b749da
.fi
Packit b749da
An
Packit b749da
.B XftFont
Packit b749da
is the primary data structure of interest to programmers using
Packit b749da
.BR Xft ;
Packit b749da
it contains general font metrics and pointers to the Fontconfig
Packit b749da
character set and pattern associated with the font.
Packit b749da
The
Packit b749da
.B FcCharSet
Packit b749da
and
Packit b749da
.B FcPattern
Packit b749da
data types are defined by the Fontconfig library.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
.BR XftFont s
Packit b749da
are populated with any of
Packit b749da
.BR XftFontOpen (),
Packit b749da
.BR XftFontOpenName (),
Packit b749da
.BR XftFontOpenXlfd (),
Packit b749da
.BR XftFontOpenInfo (),
Packit b749da
or
Packit b749da
.BR XftFontOpenPattern ().
Packit b749da
.BR XftFontCopy ()
Packit b749da
is used to duplicate
Packit b749da
.BR XftFont s,
Packit b749da
and
Packit b749da
.BR XftFontClose ()
Packit b749da
is used to mark an
Packit b749da
.B XftFont
Packit b749da
as unused.
Packit b749da
.BR XftFont s
Packit b749da
are internally allocated, reference-counted, and freed by
Packit b749da
.BR Xft ;
Packit b749da
the programmer does not ordinarily need to allocate or free storage
Packit b749da
for them.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
.BR XftDrawGlyphs (),
Packit b749da
the
Packit b749da
.BR XftDrawString *()
Packit b749da
family,
Packit b749da
.BR XftDrawCharSpec (),
Packit b749da
and
Packit b749da
.BR XftDrawGlyphSpec ()
Packit b749da
use
Packit b749da
.BR XftFont s
Packit b749da
to render text to an
Packit b749da
.B XftDraw
Packit b749da
object, which may correspond to either a core X drawable or an X
Packit b749da
Rendering Extension drawable.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
.BR XftGlyphExtents ()
Packit b749da
and the
Packit b749da
.BR XftTextExtents *()
Packit b749da
family are used to determine the extents (maximum dimensions) of an
Packit b749da
.BR XftFont .
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
An
Packit b749da
.BR XftFont 's
Packit b749da
glyph or character coverage can be determined with
Packit b749da
.BR XftFontCheckGlyph ()
Packit b749da
or
Packit b749da
.BR XftCharExists ().
Packit b749da
.BR XftCharIndex ()
Packit b749da
returns the
Packit b749da
.BR XftFont -specific
Packit b749da
character index corresponding to a given Unicode codepoint.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
.BR XftGlyphRender (),
Packit b749da
.BR XftGlyphSpecRender (),
Packit b749da
.BR XftCharSpecRender (),
Packit b749da
and the
Packit b749da
.BR XftTextRender *()
Packit b749da
family use
Packit b749da
.BR XftFont s
Packit b749da
to draw into X Rendering Extension
Packit b749da
.B Picture
Packit b749da
structures.
Packit b749da
.B Note:
Packit b749da
.BR XftDrawGlyphs (),
Packit b749da
the
Packit b749da
.BR XftDrawString *()
Packit b749da
family,
Packit b749da
.BR XftDrawCharSpec (),
Packit b749da
and
Packit b749da
.BR XftDrawGlyphSpec ()
Packit b749da
provide a means of rendering fonts that is independent of the
Packit b749da
availability of the X Rendering Extension on the X server.
Packit b749da
.\" I'm not sure what these are for; they're used internally, but why
Packit b749da
.\" would any external users want them?  -- BR, 2005-04-02
Packit b749da
.\" .BR XftLockFace()
Packit b749da
.\" .BR XftUnlockFace()
Packit b749da
.TP
Packit b749da
.B XftFontInfo
Packit b749da
is an opaque object that stores information about a font.
Packit b749da
.B XftFontInfo
Packit b749da
structures are created with
Packit b749da
.BR XftFontInfoCreate (),
Packit b749da
freed with
Packit b749da
.BR XftFontInfoDestroy (),
Packit b749da
and compared with
Packit b749da
.BR XftFontInfoEqual ().
Packit b749da
.B XftFontInfo
Packit b749da
objects are internally allocated and freed by
Packit b749da
.BR Xft ;
Packit b749da
the programmer does not ordinarily need to allocate or free storage
Packit b749da
for them.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
Each
Packit b749da
.B XftFontInfo
Packit b749da
structure in use is associated with a unique identifier, which can be
Packit b749da
retrieved with
Packit b749da
.BR XftFontInfoHash ().
Packit b749da
An
Packit b749da
.B XftFont
Packit b749da
can be opened based on
Packit b749da
.B XftFontInfo
Packit b749da
data with
Packit b749da
.BR XftFontOpenInfo ().
Packit b749da
.TP
Packit b749da
.B XftColor
Packit b749da
.nf
Packit b749da
typedef struct _XftColor {
Packit b749da
    unsigned long   pixel;
Packit b749da
    XRenderColor    color;
Packit b749da
} XftColor;
Packit b749da
.fi
Packit b749da
An
Packit b749da
.B XftColor
Packit b749da
object permits text and other items to be rendered in a particular
Packit b749da
color (or the closest approximation offered by the X visual in use).
Packit b749da
The
Packit b749da
.B XRenderColor
Packit b749da
data type is defined by the X Render Extension library.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
.BR XftColorAllocName ()
Packit b749da
and
Packit b749da
.BR XftColorAllocValue ()
Packit b749da
request a color allocation from the X server (if necessary) and
Packit b749da
initialize the members of
Packit b749da
.BR XftColor .
Packit b749da
.BR XftColorFree ()
Packit b749da
instructs the X server to free the color currently allocated for an
Packit b749da
.BR XftColor .
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
One an
Packit b749da
.B XftColor
Packit b749da
has been initialized,
Packit b749da
.BR XftDrawSrcPicture (),
Packit b749da
.BR XftDrawGlyphs (),
Packit b749da
the
Packit b749da
.BR XftDrawString *()
Packit b749da
family,
Packit b749da
.BR XftDrawCharSpec (),
Packit b749da
.BR XftDrawCharFontSpec (),
Packit b749da
.BR XftDrawGlyphSpec (),
Packit b749da
.BR XftDrawGlyphFontSpec (),
Packit b749da
and
Packit b749da
.BR XftDrawRect ()
Packit b749da
may be used to draw various objects using it.
Packit b749da
.TP
Packit b749da
.B XftDraw
Packit b749da
is an opaque object which holds information used to render to an X drawable
Packit b749da
using either the core protocol or the X Rendering extension.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
.B XftDraw
Packit b749da
objects are created with any of
Packit b749da
.BR XftDrawCreate ()
Packit b749da
(which associates an
Packit b749da
.B XftDraw
Packit b749da
with an existing X drawable),
Packit b749da
.BR XftDrawCreateBitmap (),
Packit b749da
or
Packit b749da
.BR XftDrawCreateAlpha (),
Packit b749da
and destroyed with
Packit b749da
.BR XftDrawDestroy ().
Packit b749da
The X drawable associated with an
Packit b749da
.B XftDraw
Packit b749da
can be changed with
Packit b749da
.BR XftDrawChange ().
Packit b749da
.BR XftDraw s
Packit b749da
are internally allocated and freed by
Packit b749da
.BR Xft ;
Packit b749da
the programmer does not ordinarily need to allocate or free storage
Packit b749da
for them.
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
The X
Packit b749da
.BR Display ,
Packit b749da
.BR Drawable ,
Packit b749da
.BR Colormap ,
Packit b749da
and
Packit b749da
.BR Visual
Packit b749da
of an
Packit b749da
.B XftDraw
Packit b749da
can be queried with
Packit b749da
.BR XftDrawDisplay (),
Packit b749da
.BR XftDrawDrawable (),
Packit b749da
.BR XftDrawColormap (),
Packit b749da
and
Packit b749da
.BR XftDrawVisual (),
Packit b749da
respectively.
Packit b749da
The X Rendering Extension
Packit b749da
.B Picture
Packit b749da
associated with an
Packit b749da
.B XftDraw
Packit b749da
is returned by
Packit b749da
.BR XftDrawPicture ().
Packit b749da
.\" XftDrawSrcPicture
Packit b749da
.\" XftDrawGlyphs
Packit b749da
.\" XftDrawString*
Packit b749da
.\" XftDrawCharSpec
Packit b749da
.\" XftDrawCharFontSpec
Packit b749da
.\" XftDrawGlyphSpec
Packit b749da
.\" XftDrawGlyphFontSpec
Packit b749da
.\" XftDrawRect
Packit b749da
.\" XftDrawSetClip
Packit b749da
.\" XftDrawSetClipRectangles
Packit b749da
.\" XftDrawSetSubwindowMode
Packit b749da
.TP
Packit b749da
.B XftCharSpec
Packit b749da
.nf
Packit b749da
typedef struct _XftCharSpec {
Packit b749da
    FcChar32    ucs4;
Packit b749da
    short       x;
Packit b749da
    short       y;
Packit b749da
} XftCharSpec;
Packit b749da
.fi
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
The
Packit b749da
.B FcChar32
Packit b749da
data type is defined by the Fontconfig library.
Packit b749da
.\" XftDrawCharSpec
Packit b749da
.\" XftCharSpecRender
Packit b749da
.TP
Packit b749da
.B XftCharFontSpec
Packit b749da
.nf
Packit b749da
typedef struct _XftCharFontSpec {
Packit b749da
    XftFont     *font;
Packit b749da
    FcChar32    ucs4;
Packit b749da
    short       x;
Packit b749da
    short       y;
Packit b749da
} XftCharFontSpec;
Packit b749da
.fi
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
The
Packit b749da
.B FcChar32
Packit b749da
data type is defined by the Fontconfig library.
Packit b749da
.\" XftDrawCharFontSpec
Packit b749da
.\" XftCharFontSpecRender
Packit b749da
.TP
Packit b749da
.B XftGlyphSpec
Packit b749da
.nf
Packit b749da
typedef struct _XftGlyphSpec {
Packit b749da
    FT_UInt     glyph;
Packit b749da
    short       x;
Packit b749da
    short       y;
Packit b749da
} XftGlyphSpec;
Packit b749da
.fi
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
The
Packit b749da
.B FT_UInt
Packit b749da
data type is defined by the FreeType library.
Packit b749da
.\" XftDrawGlyphSpec
Packit b749da
.\" XftGlyphSpecRender
Packit b749da
.TP
Packit b749da
.B XftGlyphFontSpec
Packit b749da
.nf
Packit b749da
typedef struct _XftGlyphFontSpec {
Packit b749da
    XftFont     *font;
Packit b749da
    FT_UInt     glyph;
Packit b749da
    short       x;
Packit b749da
    short       y;
Packit b749da
} XftGlyphFontSpec;
Packit b749da
.fi
Packit b749da
.TP
Packit b749da
.B ""
Packit b749da
The
Packit b749da
.B FT_UInt
Packit b749da
data type is defined by the FreeType library.
Packit b749da
.\" XftDrawGlyphFontSpec
Packit b749da
.\" XftGlyphFontSpecRender
Packit b749da
.SH FUNCTIONS
Packit b749da
.SS "Opening and Matching Fonts"
Packit b749da
.nf
Packit b749da
\fBXftFont *\fR
Packit b749da
\fBXftFontOpen (Display *\fIdpy\fB,\fR
Packit b749da
\fB             int     \fIscreen\fB,\fR
Packit b749da
\fB             ...);\fR\fR
Packit b749da
.fi
Packit b749da
.B XftFontOpen
Packit b749da
takes a list of pattern element triples of the form
Packit b749da
.IR field , " type" , " value"
Packit b749da
(terminated with a NULL), matches that pattern against the available fonts,
Packit b749da
and opens the matching font, sizing it correctly for screen number
Packit b749da
.I screen
Packit b749da
on display
Packit b749da
.IR dpy .
Packit b749da
The
Packit b749da
.B Display
Packit b749da
data type is defined by the X11 library.
Packit b749da
Returns NULL if no match is found.
Packit b749da
.PP
Packit b749da
Example:
Packit b749da
.nf
Packit b749da
    font = XftFontOpen (dpy, screen,
Packit b749da
                        XFT_FAMILY, XftTypeString, "charter",
Packit b749da
                        XFT_SIZE, XftTypeDouble, 12.0,
Packit b749da
                        NULL);
Packit b749da
.fi
Packit b749da
This opens the \(lqcharter\(rq font at 12 points.
Packit b749da
The point size is automatically converted to the correct pixel size based
Packit b749da
on the resolution of the monitor.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBXftFont *\fR
Packit b749da
\fBXftFontOpenName (Display       *\fIdpy\fB,\fR
Packit b749da
\fB                 int           \fIscreen\fB,\fR
Packit b749da
\fB                 unsigned char *\fIname\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftFontOpenName
Packit b749da
behaves as
Packit b749da
.B XftFontOpen
Packit b749da
does, except that it takes a Fontconfig pattern string (which is passed to
Packit b749da
the Fontconfig library's
Packit b749da
.BR FcNameParse ()
Packit b749da
function).
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBXftFont *\fR
Packit b749da
\fBXftFontOpenXlfd (Display       *\fIdpy\fB,\fR
Packit b749da
\fB                 int           \fIscreen\fB,\fR
Packit b749da
\fB                 unsigned char *\fIxlfd\fB)\fR
Packit b749da
.fi
Packit b749da
.B XftFontOpenXlfd
Packit b749da
behaves as
Packit b749da
.B XftFontOpen
Packit b749da
does, except that it takes a string containing an X Logical Font
Packit b749da
Description (XLFD).
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBFcPattern *\fR
Packit b749da
\fBXftFontMatch (Display   *\fIdpy\fB,\fR
Packit b749da
\fB              int       \fIscreen\fB,\fR
Packit b749da
\fB              FcPattern *\fIpattern\fB,\fR
Packit b749da
\fB              FcResult  *\fIresult\fB);\fR
Packit b749da
.fi
Packit b749da
Also used internally by the
Packit b749da
.BR XftFontOpen *
Packit b749da
functions,
Packit b749da
.B XftFontMatch
Packit b749da
can also be used directly to determine the Fontconfig font pattern
Packit b749da
resulting from an Xft font open request.
Packit b749da
The
Packit b749da
.B FcPattern
Packit b749da
and
Packit b749da
.B FcResult
Packit b749da
data types are defined by the Fontconfig library.
Packit b749da
.SS "Determining the Pixel Extents of a Text String"
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftTextExtents8 (Display    *\fIdpy\fB,\fR
Packit b749da
\fB                 XftFont    *\fIfont\fB,\fR
Packit b749da
\fB                 FcChar8    *\fIstring\fB,\fR
Packit b749da
\fB                 int        \fIlen\fB,\fR
Packit b749da
\fB                 XGlyphInfo *\fIextents\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftTextExtents8
Packit b749da
computes the pixel extents on display
Packit b749da
.I dpy
Packit b749da
of no more than
Packit b749da
.I len
Packit b749da
glyphs of a
Packit b749da
.I string
Packit b749da
consisting of eight-bit characters when drawn with
Packit b749da
.IR font ,
Packit b749da
storing them in
Packit b749da
.IR extents .
Packit b749da
The
Packit b749da
.B FcChar8
Packit b749da
data type is defined by the Fontconfig library, and the
Packit b749da
.B XGlyphInfo
Packit b749da
data type is defined by the X Rendering Extension library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftTextExtents16 (Display    *\fIdpy\fB,\fR
Packit b749da
\fB                  XftFont    *\fIfont\fB,\fR
Packit b749da
\fB                  FcChar16   *\fIstring\fB,\fR
Packit b749da
\fB                  int        \fIlen\fB,\fR
Packit b749da
\fB                  XGlyphInfo *\fIextents\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftTextExtents16
Packit b749da
computes the pixel extents on display
Packit b749da
.I dpy
Packit b749da
of no more than
Packit b749da
.I len
Packit b749da
glyphs of a
Packit b749da
.I string
Packit b749da
consisting of sixteen-bit characters when drawn with
Packit b749da
.IR font ,
Packit b749da
storing them in
Packit b749da
.IR extents .
Packit b749da
The
Packit b749da
.B FcChar16
Packit b749da
data type is defined by the Fontconfig library, and the
Packit b749da
.B XGlyphInfo
Packit b749da
data type is defined by the X Rendering Extension library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftTextExtents32 (Display    *\fIdpy\fB,\fR
Packit b749da
\fB                  XftFont    *\fIfont\fB,\fR
Packit b749da
\fB                  FcChar32   *\fIstring\fB,\fR
Packit b749da
\fB                  int        \fIlen\fB,\fR
Packit b749da
\fB                  XGlyphInfo *\fIextents\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftTextExtents32
Packit b749da
computes the pixel extents on display
Packit b749da
.I dpy
Packit b749da
of no more than
Packit b749da
.I len
Packit b749da
glyphs of a
Packit b749da
.I string
Packit b749da
consisting of thirty-two-bit characters when drawn with
Packit b749da
.IR font ,
Packit b749da
storing them in
Packit b749da
.IR extents .
Packit b749da
The
Packit b749da
.B FcChar32
Packit b749da
data type is defined by the Fontconfig library, and the
Packit b749da
.B XGlyphInfo
Packit b749da
data type is defined by the X Rendering Extension library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftTextExtentsUtf8 (Display    *\fIdpy\fB,\fR
Packit b749da
\fB                    XftFont    *\fIfont\fB,\fR
Packit b749da
\fB                    FcChar8    *\fIstring\fB,\fR
Packit b749da
\fB                    int        \fIlen\fB,\fR
Packit b749da
\fB                    XGlyphInfo *\fIextents\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftTextExtentsUtf8
Packit b749da
computes the pixel extents on display
Packit b749da
.I dpy
Packit b749da
of no more than
Packit b749da
.I len
Packit b749da
bytes of a UTF-8 encoded
Packit b749da
.I string
Packit b749da
when drawn with
Packit b749da
.IR font ,
Packit b749da
storing them in
Packit b749da
.IR extents .
Packit b749da
The
Packit b749da
.B XGlyphInfo
Packit b749da
data type is defined by the X Rendering Extension library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftTextExtentsUtf16 (Display    *\fIdpy\fB,\fR
Packit b749da
\fB                     XftFont    *\fIfont\fB,\fR
Packit b749da
\fB                     FcChar8    *\fIstring\fB,\fR
Packit b749da
\fB                     FcEndian   \fIendian\fB,\fR
Packit b749da
\fB                     int        \fIlen\fB,\fR
Packit b749da
\fB                     XGlyphInfo *\fIextents\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftTextExtentsUtf16
Packit b749da
computes the pixel extents on display
Packit b749da
.I dpy
Packit b749da
of no more than
Packit b749da
.I len
Packit b749da
bytes of a UTF-16LE- or UTF-16BE-encoded
Packit b749da
.I string
Packit b749da
when drawn with
Packit b749da
.IR font ,
Packit b749da
storing them in
Packit b749da
.IR extents .
Packit b749da
The endianness of
Packit b749da
.I string
Packit b749da
must be specified in
Packit b749da
.IR endian .
Packit b749da
The
Packit b749da
.B FcEndian
Packit b749da
data type is defined by the Fontconfig library, and the
Packit b749da
.B XGlyphInfo
Packit b749da
data type is defined by the X Rendering Extension library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftGlyphExtents (Display    *\fIdpy\fB,\fR
Packit b749da
\fB                 XftFont    *\fIfont\fB,\fR
Packit b749da
\fB                 FT_UInt    *\fIglyphs\fB,\fR
Packit b749da
\fB                 int        \fInglyphs\fB,\fR
Packit b749da
\fB                 XGlyphInfo *\fIextents\fB);\fR
Packit b749da
.fi
Packit b749da
Also used internally by the
Packit b749da
.BR XftTextExtents *
Packit b749da
functions,
Packit b749da
.B XftGlyphExtents
Packit b749da
computes the pixel extents on display
Packit b749da
.I dpy
Packit b749da
of no more than
Packit b749da
.I nglyphs
Packit b749da
in the array
Packit b749da
.I glyphs
Packit b749da
drawn with
Packit b749da
.IR font ,
Packit b749da
storing them in
Packit b749da
.IR extents .
Packit b749da
The
Packit b749da
.B FT_UInt
Packit b749da
data type is defined by the FreeType library, and the
Packit b749da
.B XGlyphInfo
Packit b749da
data type is defined by the X Rendering Extension library.
Packit b749da
.SS "Drawing Strings (and Other Things)"
Packit b749da
.nf
Packit b749da
\fBXftDraw *\fR
Packit b749da
\fBXftDrawCreate (Display  *\fIdpy\fB,\fR
Packit b749da
\fB               Drawable \fIdrawable\fB,\fR
Packit b749da
\fB               Visual   *\fIvisual\fB,\fR
Packit b749da
\fB               Colormap \fIcolormap\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawCreate
Packit b749da
creates a structure that can be used to render text and rectangles using
Packit b749da
the specified
Packit b749da
.IR drawable ,
Packit b749da
.IR visual ,
Packit b749da
and
Packit b749da
.I colormap
Packit b749da
on
Packit b749da
.IR display .
Packit b749da
The
Packit b749da
.BR Drawable ,
Packit b749da
.BR Visual ,
Packit b749da
and
Packit b749da
.B Colormap
Packit b749da
data types are defined by the X11 library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBXftDraw *\fR
Packit b749da
\fBXftDrawCreateBitmap (Display *\fIdpy\fB,\fR
Packit b749da
\fB                     Pixmap  \fIbitmap\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawCreateBitmap
Packit b749da
behaves as
Packit b749da
.BR XftDrawCreate ,
Packit b749da
except it uses an X pixmap of color depth 1 instead of an X drawable.
Packit b749da
The
Packit b749da
.B Pixmap
Packit b749da
data type is defined by the X11 library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBXftDraw *\fR
Packit b749da
\fBXftDrawCreateAlpha (Display *\fIdpy\fB,\fR
Packit b749da
\fB                    Pixmap  \fIpixmap\fB,\fR
Packit b749da
\fB                    int     \fIdepth\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawCreateAlpha
Packit b749da
behaves as
Packit b749da
.BR XftDrawCreate ,
Packit b749da
except it uses an X pixmap of color depth
Packit b749da
.I depth
Packit b749da
instead of an X drawable.
Packit b749da
The
Packit b749da
.B Pixmap
Packit b749da
data type is defined by the X11 library.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftDrawChange (XftDraw  *\fIdraw\fB,\fR
Packit b749da
\fB               Drawable \fIdrawable\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawChange
Packit b749da
changes the X drawable association of the existing Xft draw object
Packit b749da
.I draw
Packit b749da
from its current value to
Packit b749da
.IR drawable .
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBDisplay *\fR
Packit b749da
\fBXftDrawDisplay (XftDraw *\fIdraw\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawDisplay
Packit b749da
returns a pointer to the display associated with the Xft draw object
Packit b749da
.IR draw .
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBDrawable\fR
Packit b749da
\fBXftDrawDrawable (XftDraw *\fIdraw\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawDrawable
Packit b749da
returns the X drawable associated with the Xft draw object
Packit b749da
.IR draw .
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBColormap\fR
Packit b749da
\fBXftDrawColormap (XftDraw *\fIdraw\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawColormap
Packit b749da
returns the colormap associatied with the Xft draw object
Packit b749da
.IR draw .
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBVisual *\fR
Packit b749da
\fBXftDrawVisual (XftDraw *\fIdraw\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawVisual
Packit b749da
returns a pointer to the visual associated with the Xft draw object
Packit b749da
.IR draw .
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBPicture\fR
Packit b749da
\fBXftDrawPicture (XftDraw *\fIdraw\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawPicture
Packit b749da
returns the picture associated with the Xft draw object
Packit b749da
.IR draw .
Packit b749da
If the the X server does not support the X Rendering Extension, 0 is
Packit b749da
returned.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBPicture\fR
Packit b749da
\fBXftDrawSrcPicture (XftDraw *\fIdraw\fB,\fR
Packit b749da
\fB                   XftColor *\fIcolor\fB);\fR
Packit b749da
.fi
Packit b749da
.\" Unfortunately, I'm not quite sure what this does.  I think it is the gizmo
Packit b749da
.\" that is used to create an Xrender Picture object so that glyphs can be
Packit b749da
.\" drawn in the XftDraw object
Packit b749da
.\" .I draw
Packit b749da
.\" using the specified
Packit b749da
.\" .IR color .
Packit b749da
.\" -- BR, 2005-04-02
Packit b749da
This function is never called if the X server doesn't support the X
Packit b749da
Rendering Extension; instead,
Packit b749da
.B XftGlyphCore
Packit b749da
is used.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftDrawDestroy (XftDraw *\fIdraw\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawDestroy
Packit b749da
destroys
Packit b749da
.I draw
Packit b749da
(created by one of the
Packit b749da
.B XftCreate
Packit b749da
functions) and frees the memory that was allocated for it.
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftDrawString8 (XftDraw         *\fId\fB,\fR
Packit b749da
\fB                XftColor        *\fIcolor\fB,\fR
Packit b749da
\fB                XftFont         *\fIfont\fB,\fR
Packit b749da
\fB                int             \fIx\fB,\fR
Packit b749da
\fB                int             \fIy\fB,\fR
Packit b749da
\fB                unsigned char   *\fIstring\fB,\fR
Packit b749da
\fB                int             \fIlen\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawString8
Packit b749da
draws no more than
Packit b749da
.I len
Packit b749da
glyphs of
Packit b749da
.I string
Packit b749da
to Xft drawable
Packit b749da
.I d
Packit b749da
using
Packit b749da
.I font
Packit b749da
in
Packit b749da
.I color
Packit b749da
at position
Packit b749da
.IR x , " y" .
Packit b749da
.PP
Packit b749da
.nf
Packit b749da
\fBvoid\fR
Packit b749da
\fBXftDrawRect (XftDraw        *\fId\fB,\fR
Packit b749da
\fB             XftColor       *\fIcolor\fB,\fR
Packit b749da
\fB             int            \fIx\fB,\fR
Packit b749da
\fB             int            \fIy\fB,\fR
Packit b749da
\fB             unsigned int   \fIwidth\fB,\fR
Packit b749da
\fB             unsigned int   \fIheight\fB);\fR
Packit b749da
.fi
Packit b749da
.B XftDrawRect
Packit b749da
draws a solid rectangle of the specified
Packit b749da
.IR color ,
Packit b749da
.IR width ,
Packit b749da
and
Packit b749da
.I height
Packit b749da
at position
Packit b749da
.IR x , " y"
Packit b749da
to Xft drawable
Packit b749da
.IR d .
Packit b749da
.SH COMPATIBILITY
Packit b749da
As of version 2,
Packit b749da
.B Xft
Packit b749da
has become relatively stable and is expected to retain source and binary
Packit b749da
compatibility in future releases.
Packit b749da
.PP
Packit b749da
.B Xft
Packit b749da
does provide a compatibility interface to its previous major version,
Packit b749da
Xft
Packit b749da
.RI 1. x ,
Packit b749da
described below.
Packit b749da
.SS "Xft 1.x Compatibility Header File"
Packit b749da
.B #include <X11/Xft/XftCompat.h>
Packit b749da
.\" .SS "Xft 1.x Compatibility Constants"
Packit b749da
.SS "Xft 1.x Compatibility Data Types"
Packit b749da
.TP
Packit b749da
.B XftPattern
Packit b749da
holds a set of names with associated value lists; each name refers to a
Packit b749da
property of a font.
Packit b749da
.BR XftPattern s
Packit b749da
are used as inputs to the matching code as well as holding information
Packit b749da
about specific fonts.
Packit b749da
.TP
Packit b749da
.B XftFontSet
Packit b749da
contains a list of
Packit b749da
.BR XftPattern s.
Packit b749da
Internally,
Packit b749da
.B Xft
Packit b749da
uses this data structure to hold sets of fonts.
Packit b749da
Externally,
Packit b749da
.B Xft
Packit b749da
returns the results of listing fonts in this format.
Packit b749da
.TP
Packit b749da
.B XftObjectSet
Packit b749da
holds a set of names and is used to specify which fields from fonts are
Packit b749da
placed in the the list of returned patterns when listing fonts.
Packit b749da
.\" .SS "Xft 1.x Compatibility Functions"
Packit b749da
.SH AUTHOR
Packit b749da
Keith Packard
Packit b749da
.SH "SEE ALSO"
Packit b749da
.I Fontconfig Developers Reference
Packit b749da
.br
Packit b749da
.I FreeType API Reference
Packit b749da
.br
Packit b749da
.I Xlib \- C Language Interface
Packit b749da
.\" Set Vim modeline; textwidth is 70 to account for the extra margin
Packit b749da
.\" padding that man (on Debian GNU/Linux) does for output to
Packit b749da
.\" terminals (7 spaces on the left, 2 on the right), so that we don't
Packit b749da
.\" go past 80 columns total, particularly in .nf/.fi regions.
Packit b749da
.\" vim:set ai et sts=4 sw=4 tw=70: