---
name: "XmbTextExtents"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XmbTextExtents"
---

# XmbTextExtents(3)

compute text extents

## NAME

XmbTextExtents, XwcTextExtents, Xutf8TextExtents - compute text extents

## SYNTAX

int XmbTextExtents(XFontSet *font\_set*, \_Xconst char \**string*, int *num\_bytes*, XRectangle \**overall\_ink\_return*, XRectangle \**overall\_logical\_return*);

int XwcTextExtents(XFontSet *font\_set*, \_Xconst wchar\_t \**string*, int *num\_wchars*, XRectangle \**overall\_ink\_return*, XRectangle \**overall\_logical\_return*);

int Xutf8TextExtents(XFontSet *font\_set*, \_Xconst char \**string*, int *num\_bytes*, XRectangle \**overall\_ink\_return*, XRectangle \**overall\_logical\_return*);

## ARGUMENTS

- *font\_set*

  Specifies the font set.

- *num\_bytes*

  Specifies the number of bytes in the string argument.

- *num\_wchars*

  Specifies the number of characters in the string argument.

- *overall\_ink\_return*

  Returns the overall ink dimensions.

- *overall\_logical\_return*

  Returns the overall logical dimensions.

- *string*

  Specifies the character string.

## DESCRIPTION

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 extension introduced by The XFree86 Project, Inc., in their 4.0.2 release. Its presence is indicated by the macro **X\_HAVE\_UTF8\_STRING**.

## SEE ALSO

[**XmbTextEscapement**(3)](/XmbTextEscapement/3.md), [**XmbTextPerCharExtents**(3)](/XmbTextPerCharExtents/3.md) *Xlib - C Language X Interface*
