sdlSetError function

bool sdlSetError(
  1. String? fmt,
  2. Pointer<NativeType> arg1
)

Set the SDL error message for the current thread.

Calling this function will replace any previous error message that was set.

This function always returns false, since SDL frequently uses false to signify a failing result, leading to this idiom:

if (error_code) {
return SDL_SetError("This operation has failed: %d", error_code);
}

\param fmt a printf()-style message format string. \param ... additional parameters matching % tokens in the fmt string, if any. \returns false.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.1.3.

\sa SDL_ClearError \sa SDL_GetError \sa SDL_SetErrorV

extern SDL_DECLSPEC bool SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1)

Implementation

bool sdlSetError(String? fmt, Pointer<NativeType> arg1) {
  final sdlSetErrorLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(Pointer<Utf8> fmt, Pointer<NativeType> arg1),
      int Function(
          Pointer<Utf8> fmt, Pointer<NativeType> arg1)>('SDL_SetError');
  final fmtPointer = fmt != null ? fmt.toNativeUtf8() : nullptr;
  final result = sdlSetErrorLookupFunction(fmtPointer, arg1) == 1;
  calloc.free(fmtPointer);
  return result;
}