ttfRenderTextBlended function ttf

Pointer<SdlSurface> ttfRenderTextBlended(
  1. Pointer<TtfFont> font,
  2. String? text,
  3. int length,
  4. SdlColor fg,
)

Render UTF-8 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or NULL if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderText_Blended_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You can render at other quality levels with TTF_RenderText_Solid, TTF_RenderText_Shaded, and TTF_RenderText_LCD.

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

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

\since This function is available since SDL_ttf 3.0.0.

\sa TTF_RenderText_Blended_Wrapped \sa TTF_RenderText_LCD \sa TTF_RenderText_Shaded \sa TTF_RenderText_Solid

extern SDL_DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended(TTF_Font *font, const char *text, size_t length, SDL_Color fg)

Implementation

Pointer<SdlSurface> ttfRenderTextBlended(
  Pointer<TtfFont> font,
  String? text,
  int length,
  SdlColor fg,
) {
  final ttfRenderTextBlendedLookupFunction = _libTtf
      .lookupFunction<
        Pointer<SdlSurface> Function(
          Pointer<TtfFont> font,
          Pointer<Utf8> text,
          Uint32 length,
          SdlColor fg,
        ),
        Pointer<SdlSurface> Function(
          Pointer<TtfFont> font,
          Pointer<Utf8> text,
          int length,
          SdlColor fg,
        )
      >('TTF_RenderText_Blended');
  final textPointer = text != null ? text.toNativeUtf8() : nullptr;
  final result = ttfRenderTextBlendedLookupFunction(
    font,
    textPointer,
    length,
    fg,
  );
  calloc.free(textPointer);
  return result;
}