ttfInsertTextString function ttf

bool ttfInsertTextString(
  1. Pointer<TtfText> text,
  2. int offset,
  3. String? string,
  4. int length,
)

Insert UTF-8 text into a text object.

This function may cause the internal text representation to be rebuilt.

\param text the TTF_Text to modify. \param offset the offset, in bytes, from the beginning of the string if >= 0, the offset from the end of the string if < 0. Note that this does not do UTF-8 validation, so you should only insert at UTF-8 sequence boundaries. \param string the UTF-8 text to insert. \param length the length of the text, in bytes, or 0 for null terminated text. \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 text.

\since This function is available since SDL_ttf 3.0.0.

\sa TTF_AppendTextString \sa TTF_DeleteTextString \sa TTF_SetTextString

extern SDL_DECLSPEC bool SDLCALL TTF_InsertTextString(TTF_Text *text, int offset, const char *string, size_t length)

Implementation

bool ttfInsertTextString(
  Pointer<TtfText> text,
  int offset,
  String? string,
  int length,
) {
  final ttfInsertTextStringLookupFunction = _libTtf
      .lookupFunction<
        Uint8 Function(
          Pointer<TtfText> text,
          Int32 offset,
          Pointer<Utf8> string,
          Uint32 length,
        ),
        int Function(
          Pointer<TtfText> text,
          int offset,
          Pointer<Utf8> string,
          int length,
        )
      >('TTF_InsertTextString');
  final stringPointer = string != null ? string.toNativeUtf8() : nullptr;
  final result =
      ttfInsertTextStringLookupFunction(text, offset, stringPointer, length) ==
      1;
  calloc.free(stringPointer);
  return result;
}