From c3125a6fbdd4836d719da9d3fc3fff13a4a90912 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 11 Apr 2013 21:27:04 -0400 Subject: [PATCH] Implemented SDL_CreateThread(). --- src/SDL12_compat.c | 17 ++++++++++++++++- src/SDL20_syms.h | 6 ++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/SDL12_compat.c b/src/SDL12_compat.c index dac613b81..c10c01287 100644 --- a/src/SDL12_compat.c +++ b/src/SDL12_compat.c @@ -36,7 +36,6 @@ //#include "render/SDL_yuv_sw_c.h" // !!! IMPLEMENT_ME SDL_ConvertSurface -// !!! IMPLEMENT_ME SDL_CreateThread // !!! IMPLEMENT_ME SDL_EventState // !!! IMPLEMENT_ME SDL_GL_GetAttribute // !!! IMPLEMENT_ME SDL_GL_Lock @@ -2806,6 +2805,22 @@ int SDL_CDStop(SDL12_CD *cdrom) { return CDUnsupported(); } int SDL_CDEject(SDL12_CD *cdrom) { return CDUnsupported(); } void SDL_CDClose(SDL12_CD *cdrom) {} + +#ifdef SDL_PASSED_BEGINTHREAD_ENDTHREAD +SDL_Thread * +SDL_CreateThread(int (SDLCALL *fn)(void *), void *data, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread) +{ + return SDL20_CreateThread(fn, NULL, data, pfnBeginThread, pfnEndThread); +} +#else +SDL_Thread * +SDL_CreateThread(int (SDLCALL *fn)(void *), void *data) +{ + return SDL20_CreateThread(fn, NULL, data); +} +#endif + + /* !!! FIXME: Removed from 2.0; do nothing. We can't even report failure. */ void SDL_KillThread(SDL_Thread *thread) {} diff --git a/src/SDL20_syms.h b/src/SDL20_syms.h index 0e061aa07..df2d40789 100644 --- a/src/SDL20_syms.h +++ b/src/SDL20_syms.h @@ -56,6 +56,12 @@ SDL20_SYM(void,SetCursor,(SDL_Cursor *a),(a),) SDL20_SYM(SDL_Cursor *,GetCursor,(void),(),return) SDL20_SYM(void,FreeCursor,(SDL_Cursor *a),(a),) +#ifdef SDL_PASSED_BEGINTHREAD_ENDTHREAD +SDL20_SYM(SDL_Thread *,CreateThread,(SDL_ThreadFunction a, const char *b, void *c, pfnSDL_CurrentBeginThread d, pfnSDL_CurrentEndThread e),(a,b,c,d,e),return) +#else +SDL20_SYM(SDL_Thread *,CreateThread,(SDL_ThreadFunction a, const char *b, void *c),(a,b,c),return) +#endif + SDL20_SYM_PASSTHROUGH(Uint32,GetThreadID,(SDL_Thread *a),(a),return) SDL20_SYM_PASSTHROUGH(Uint32,ThreadID,(void),(),return) SDL20_SYM_PASSTHROUGH(void,WaitThread,(SDL_Thread *a, int *b),(a,b),)