ttfRenderTextBlended function
Render Latin1 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 almost certainly want TTF_RenderUTF8_Blended() unless you're sure you
have a 1-byte Latin1 encoding. US ASCII characters will work with either
function, but most other Unicode characters packed into a const char *
will need UTF-8.
You can render at other quality levels with TTF_RenderText_Solid, TTF_RenderText_Blended, and TTF_RenderText_LCD.
\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground 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.0.12.
\sa TTF_RenderUTF8_Shaded \sa TTF_RenderUNICODE_Shaded
extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended(TTF_Font *font, const char *text, SDL_Color fg)
Implementation
Pointer<SdlSurface> ttfRenderTextBlended(
Pointer<TtfFont> font, String? text, SdlColor fg) {
final ttfRenderTextBlendedLookupFunction = libSdl2Ttf.lookupFunction<
Pointer<SdlSurface> Function(
Pointer<TtfFont> font, Pointer<Utf8> text, SdlColor fg),
Pointer<SdlSurface> Function(Pointer<TtfFont> font, Pointer<Utf8> text,
SdlColor fg)>('TTF_RenderText_Blended');
final textPointer = text != null ? text.toNativeUtf8() : nullptr;
final result = ttfRenderTextBlendedLookupFunction(font, textPointer, fg);
calloc.free(textPointer);
return result;
}