38#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__)
93#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__)
114#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
117 (
void *, unsigned, unsigned (__stdcall *func)(
void *),
118 void * ,
unsigned,
unsigned * );
121#ifndef SDL_beginthread
122#define SDL_beginthread _beginthreadex
125#define SDL_endthread _endthreadex
135 const char *name,
const size_t stacksize,
void *data,
140#if defined(SDL_CreateThread) && SDL_DYNAMIC_API
141#undef SDL_CreateThread
142#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
143#undef SDL_CreateThreadWithStackSize
144#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
146#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
147#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
150#elif defined(__OS2__)
155#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
160#ifndef SDL_beginthread
161#define SDL_beginthread _beginthread
164#define SDL_endthread _endthread
176#if defined(SDL_CreateThread) && SDL_DYNAMIC_API
177#undef SDL_CreateThread
178#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
179#undef SDL_CreateThreadWithStackSize
180#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
182#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
183#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
void * SDL_TLSGet(SDL_TLSID id)
void(__cdecl * pfnSDL_CurrentEndThread)(unsigned code)
void SDL_DetachThread(SDL_Thread *thread)
#define SDL_CreateThread(fn, name, data)
SDL_threadID SDL_GetThreadID(SDL_Thread *thread)
const char * SDL_GetThreadName(SDL_Thread *thread)
void(* SDL_TLSDestructorCallback)(void *)
SDL_TLSID SDL_TLSCreate(void)
#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data)
void SDL_TLSCleanup(void)
struct SDL_Thread SDL_Thread
int SDL_SetThreadPriority(SDL_ThreadPriority priority)
void SDL_WaitThread(SDL_Thread *thread, int *status)
unsigned long SDL_threadID
@ SDL_THREAD_PRIORITY_TIME_CRITICAL
@ SDL_THREAD_PRIORITY_LOW
@ SDL_THREAD_PRIORITY_HIGH
@ SDL_THREAD_PRIORITY_NORMAL
int(* SDL_ThreadFunction)(void *data)
uintptr_t(__cdecl * pfnSDL_CurrentBeginThread)(void *, unsigned, unsigned(__stdcall *func)(void *), void *, unsigned, unsigned *)
SDL_threadID SDL_ThreadID(void)
int SDL_TLSSet(SDL_TLSID id, const void *value, SDL_TLSDestructorCallback destructor)