The
XmbTextExtents, XwcTextExtents and Xutf8TextExtents functions set
the components of the specified overall_ink_return and overall_logical_return
arguments to the overall bounding box of the string's image and a logical
bounding box for spacing purposes, respectively. They return the value returned
by XmbTextEscapement, XwcTextEscapement or Xutf8TextEscapement. These
metrics are relative to the drawing origin of the string, using the fonts
loaded for the specified font set.

If the overall_ink_return argument is
non-NULL, it is set to the bounding box of the string's character ink. The
overall_ink_return for a nondescending, horizontally drawn Latin character
is conventionally entirely above the baseline; that is, overall_ink_return.height
<= -overall_ink_return.y. The overall_ink_return for a nonkerned character
is entirely at, and to the right of, the origin; that is, overall_ink_return.x
>= 0. A character consisting of a single pixel at the origin would set overall_ink_return
fields y = 0, x = 0, width = 1, and height = 1.

If the overall_logical_return
argument is non-NULL, it is set to the bounding box that provides minimum
spacing to other graphical features for the string. Other graphical features,
for example, a border surrounding the text, should not intersect this rectangle.

When the XFontSet has missing charsets, metrics for each unavailable
character are taken from the default string returned by XCreateFontSet
so that the metrics represent the text as it will actually be drawn. The
behavior for an invalid codepoint is undefined.

The function Xutf8TextExtents
is an XFree86 extension introduced in XFree86 4.0.2. Its presence is indicated
by the macro X_HAVE_UTF8_STRING.