ttfxMeasureString function ttf

({int measuredLength, int measuredWidth})? ttfxMeasureString(
  1. Pointer<TtfFont> font,
  2. String text,
  3. int maxWidth
)

Calculate how much of a UTF-8 string will fit in a given width.

This reports the number of characters that can be rendered before reaching max_width.

This does not need to render the string to do this calculation.

\param font the font to query. \param text text to calculate, in UTF-8 encoding. \param length the length of the text, in bytes, or 0 for null terminated text. \param max_width maximum width, in pixels, available for the string, or 0 for unbounded width. \param measured_width a pointer filled in with the width, in pixels, of the string that will fit, may be NULL. \param measured_length a pointer filled in with the length, in bytes, of the string that will fit, may be NULL. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety This function should be called on the thread that created the font.

\since This function is available since SDL_ttf 3.0.0.

extern SDL_DECLSPEC bool SDLCALL TTF_MeasureString(TTF_Font *font, const char *text, size_t length, int max_width, int *measured_width, size_t *measured_length)

See also:

Implementation

({int measuredLength, int measuredWidth})? ttfxMeasureString(
  Pointer<TtfFont> font,
  String text,
  int maxWidth,
) => ffi.using((arena) {
  final measuredWidthPointer = arena<Int32>();
  final measuredLengthPointer = arena<Size>();

  final success = ttfMeasureString(
    font,
    text,
    maxWidth,
    measuredWidthPointer,
    measuredLengthPointer,
  );

  if (!success) {
    return null;
  }

  return (
    measuredWidth: measuredWidthPointer.value,
    measuredLength: measuredLengthPointer.value,
  );
});