sdlCreateThreadWithStackSize function

Pointer<SdlThread> sdlCreateThreadWithStackSize(
  1. Pointer<NativeFunction<SdlThreadFunction>> fn,
  2. String? name,
  3. int stacksize,
  4. Pointer<NativeType> data,
  5. Pointer<NativeFunction<PfnSdlCurrentBeginThread>> pfnBeginThread,
  6. Pointer<NativeFunction<PfnSdlCurrentEndThread>> pfnEndThread,
)
extern DECLSPEC SDL_Thread *SDLCALL SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread)

Implementation

Pointer<SdlThread> sdlCreateThreadWithStackSize(
    Pointer<NativeFunction<SdlThreadFunction>> fn,
    String? name,
    int stacksize,
    Pointer<NativeType> data,
    Pointer<NativeFunction<PfnSdlCurrentBeginThread>> pfnBeginThread,
    Pointer<NativeFunction<PfnSdlCurrentEndThread>> pfnEndThread) {
  final sdlCreateThreadWithStackSizeLookupFunction = libSdl2.lookupFunction<
          Pointer<SdlThread> Function(
              Pointer<NativeFunction<SdlThreadFunction>> fn,
              Pointer<Utf8> name,
              Uint32 stacksize,
              Pointer<NativeType> data,
              Pointer<NativeFunction<PfnSdlCurrentBeginThread>> pfnBeginThread,
              Pointer<NativeFunction<PfnSdlCurrentEndThread>> pfnEndThread),
          Pointer<SdlThread> Function(
              Pointer<NativeFunction<SdlThreadFunction>> fn,
              Pointer<Utf8> name,
              int stacksize,
              Pointer<NativeType> data,
              Pointer<NativeFunction<PfnSdlCurrentBeginThread>> pfnBeginThread,
              Pointer<NativeFunction<PfnSdlCurrentEndThread>> pfnEndThread)>(
      'SDL_CreateThreadWithStackSize');
  final namePointer = name != null ? name.toNativeUtf8() : nullptr;
  final result = sdlCreateThreadWithStackSizeLookupFunction(
      fn, namePointer, stacksize, data, pfnBeginThread, pfnEndThread);
  calloc.free(namePointer);
  return result;
}