ttfRenderUtf8LcdWrapped function

Pointer<SdlSurface> ttfRenderUtf8LcdWrapped(
  1. Pointer<TtfFont> font,
  2. String? text,
  3. SdlColor fg,
  4. SdlColor bg,
  5. int wrapLength,
)

Render word-wrapped UTF-8 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or NULL if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond wrapLength in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid_Wrapped, TTF_RenderUTF8_Shaded_Wrapped, and TTF_RenderUTF8_Blended_Wrapped.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or NULL if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUTF8_Solid_Wrapped \sa TTF_RenderUTF8_Shaded_Wrapped \sa TTF_RenderUTF8_Blended_Wrapped

extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_LCD_Wrapped(TTF_Font *font, const char *text, SDL_Color fg, SDL_Color bg, Uint32 wrapLength)

Implementation

Pointer<SdlSurface> ttfRenderUtf8LcdWrapped(Pointer<TtfFont> font, String? text,
    SdlColor fg, SdlColor bg, int wrapLength) {
  final ttfRenderUtf8LcdWrappedLookupFunction = libSdl2Ttf.lookupFunction<
      Pointer<SdlSurface> Function(Pointer<TtfFont> font, Pointer<Utf8> text,
          SdlColor fg, SdlColor bg, Uint32 wrapLength),
      Pointer<SdlSurface> Function(
          Pointer<TtfFont> font,
          Pointer<Utf8> text,
          SdlColor fg,
          SdlColor bg,
          int wrapLength)>('TTF_RenderUTF8_LCD_Wrapped');
  final textPointer = text != null ? text.toNativeUtf8() : nullptr;
  final result = ttfRenderUtf8LcdWrappedLookupFunction(
      font, textPointer, fg, bg, wrapLength);
  calloc.free(textPointer);
  return result;
}