ttfRenderUtf8Shaded function

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

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

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground 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_RenderUTF8_Shaded_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_RenderUTF8_Solid, TTF_RenderUTF8_Blended, and TTF_RenderUTF8_LCD.

\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 8-bit, palettized surface, or NULL if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUNICODE_Shaded

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

Implementation

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