Mercurial > sdl-ios-xcode
diff src/SDL.c @ 1895:c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 10 Jul 2006 21:04:37 +0000 |
parents | dc6b59e925a2 |
children | 8f1ab2f7c722 |
line wrap: on
line diff
--- a/src/SDL.c Thu Jul 06 18:01:37 2006 +0000 +++ b/src/SDL.c Mon Jul 10 21:04:37 2006 +0000 @@ -35,23 +35,19 @@ /* Initialization/Cleanup routines */ #if !SDL_JOYSTICK_DISABLED -extern int SDL_JoystickInit(void); +extern int SDL_JoystickInit(void); extern void SDL_JoystickQuit(void); #endif #if !SDL_CDROM_DISABLED -extern int SDL_CDROMInit(void); +extern int SDL_CDROMInit(void); extern void SDL_CDROMQuit(void); #endif #if !SDL_TIMERS_DISABLED extern void SDL_StartTicks(void); -extern int SDL_TimerInit(void); +extern int SDL_TimerInit(void); extern void SDL_TimerQuit(void); #endif -/* The current SDL version */ -static SDL_version version = - { SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL }; - /* The initialized subsystems */ static Uint32 SDL_initialized = 0; static Uint32 ticks_started = 0; @@ -60,196 +56,205 @@ int surfaces_allocated = 0; #endif -int SDL_InitSubSystem(Uint32 flags) +int +SDL_InitSubSystem(Uint32 flags) { #if !SDL_VIDEO_DISABLED - /* Initialize the video/event subsystem */ - if ( (flags & SDL_INIT_VIDEO) && !(SDL_initialized & SDL_INIT_VIDEO) ) { - if ( SDL_VideoInit(SDL_getenv("SDL_VIDEODRIVER"), - (flags&SDL_INIT_EVENTTHREAD)) < 0 ) { - return(-1); - } - SDL_initialized |= SDL_INIT_VIDEO; - } + /* Initialize the video/event subsystem */ + if ((flags & SDL_INIT_VIDEO) && !(SDL_initialized & SDL_INIT_VIDEO)) { + if (SDL_VideoInit(SDL_getenv("SDL_VIDEODRIVER"), + (flags & SDL_INIT_EVENTTHREAD)) < 0) { + return (-1); + } + SDL_initialized |= SDL_INIT_VIDEO; + } #else - if ( flags & SDL_INIT_VIDEO ) { - SDL_SetError("SDL not built with video support"); - return(-1); - } + if (flags & SDL_INIT_VIDEO) { + SDL_SetError("SDL not built with video support"); + return (-1); + } #endif #if !SDL_AUDIO_DISABLED - /* Initialize the audio subsystem */ - if ( (flags & SDL_INIT_AUDIO) && !(SDL_initialized & SDL_INIT_AUDIO) ) { - if ( SDL_AudioInit(SDL_getenv("SDL_AUDIODRIVER")) < 0 ) { - return(-1); - } - SDL_initialized |= SDL_INIT_AUDIO; - } + /* Initialize the audio subsystem */ + if ((flags & SDL_INIT_AUDIO) && !(SDL_initialized & SDL_INIT_AUDIO)) { + if (SDL_AudioInit(SDL_getenv("SDL_AUDIODRIVER")) < 0) { + return (-1); + } + SDL_initialized |= SDL_INIT_AUDIO; + } #else - if ( flags & SDL_INIT_AUDIO ) { - SDL_SetError("SDL not built with audio support"); - return(-1); - } + if (flags & SDL_INIT_AUDIO) { + SDL_SetError("SDL not built with audio support"); + return (-1); + } #endif #if !SDL_TIMERS_DISABLED - /* Initialize the timer subsystem */ - if ( ! ticks_started ) { - SDL_StartTicks(); - ticks_started = 1; - } - if ( (flags & SDL_INIT_TIMER) && !(SDL_initialized & SDL_INIT_TIMER) ) { - if ( SDL_TimerInit() < 0 ) { - return(-1); - } - SDL_initialized |= SDL_INIT_TIMER; - } + /* Initialize the timer subsystem */ + if (!ticks_started) { + SDL_StartTicks(); + ticks_started = 1; + } + if ((flags & SDL_INIT_TIMER) && !(SDL_initialized & SDL_INIT_TIMER)) { + if (SDL_TimerInit() < 0) { + return (-1); + } + SDL_initialized |= SDL_INIT_TIMER; + } #else - if ( flags & SDL_INIT_TIMER ) { - SDL_SetError("SDL not built with timer support"); - return(-1); - } + if (flags & SDL_INIT_TIMER) { + SDL_SetError("SDL not built with timer support"); + return (-1); + } #endif #if !SDL_JOYSTICK_DISABLED - /* Initialize the joystick subsystem */ - if ( (flags & SDL_INIT_JOYSTICK) && - !(SDL_initialized & SDL_INIT_JOYSTICK) ) { - if ( SDL_JoystickInit() < 0 ) { - return(-1); - } - SDL_initialized |= SDL_INIT_JOYSTICK; - } + /* Initialize the joystick subsystem */ + if ((flags & SDL_INIT_JOYSTICK) && !(SDL_initialized & SDL_INIT_JOYSTICK)) { + if (SDL_JoystickInit() < 0) { + return (-1); + } + SDL_initialized |= SDL_INIT_JOYSTICK; + } #else - if ( flags & SDL_INIT_JOYSTICK ) { - SDL_SetError("SDL not built with joystick support"); - return(-1); - } + if (flags & SDL_INIT_JOYSTICK) { + SDL_SetError("SDL not built with joystick support"); + return (-1); + } #endif #if !SDL_CDROM_DISABLED - /* Initialize the CD-ROM subsystem */ - if ( (flags & SDL_INIT_CDROM) && !(SDL_initialized & SDL_INIT_CDROM) ) { - if ( SDL_CDROMInit() < 0 ) { - return(-1); - } - SDL_initialized |= SDL_INIT_CDROM; - } + /* Initialize the CD-ROM subsystem */ + if ((flags & SDL_INIT_CDROM) && !(SDL_initialized & SDL_INIT_CDROM)) { + if (SDL_CDROMInit() < 0) { + return (-1); + } + SDL_initialized |= SDL_INIT_CDROM; + } #else - if ( flags & SDL_INIT_CDROM ) { - SDL_SetError("SDL not built with cdrom support"); - return(-1); - } + if (flags & SDL_INIT_CDROM) { + SDL_SetError("SDL not built with cdrom support"); + return (-1); + } #endif - return(0); + return (0); } -int SDL_Init(Uint32 flags) +int +SDL_Init(Uint32 flags) { #if !SDL_THREADS_DISABLED && SDL_THREAD_PTH - if (!pth_init()) { - return -1; - } + if (!pth_init()) { + return -1; + } #endif - /* Clear the error message */ - SDL_ClearError(); + /* Clear the error message */ + SDL_ClearError(); - /* Initialize the desired subsystems */ - if ( SDL_InitSubSystem(flags) < 0 ) { - return(-1); - } + /* Initialize the desired subsystems */ + if (SDL_InitSubSystem(flags) < 0) { + return (-1); + } - /* Everything is initialized */ - if ( !(flags & SDL_INIT_NOPARACHUTE) ) { - SDL_InstallParachute(); - } - return(0); + /* Everything is initialized */ + if (!(flags & SDL_INIT_NOPARACHUTE)) { + SDL_InstallParachute(); + } + return (0); } -void SDL_QuitSubSystem(Uint32 flags) +void +SDL_QuitSubSystem(Uint32 flags) { - /* Shut down requested initialized subsystems */ + /* Shut down requested initialized subsystems */ #if !SDL_CDROM_DISABLED - if ( (flags & SDL_initialized & SDL_INIT_CDROM) ) { - SDL_CDROMQuit(); - SDL_initialized &= ~SDL_INIT_CDROM; - } + if ((flags & SDL_initialized & SDL_INIT_CDROM)) { + SDL_CDROMQuit(); + SDL_initialized &= ~SDL_INIT_CDROM; + } #endif #if !SDL_JOYSTICK_DISABLED - if ( (flags & SDL_initialized & SDL_INIT_JOYSTICK) ) { - SDL_JoystickQuit(); - SDL_initialized &= ~SDL_INIT_JOYSTICK; - } + if ((flags & SDL_initialized & SDL_INIT_JOYSTICK)) { + SDL_JoystickQuit(); + SDL_initialized &= ~SDL_INIT_JOYSTICK; + } #endif #if !SDL_TIMERS_DISABLED - if ( (flags & SDL_initialized & SDL_INIT_TIMER) ) { - SDL_TimerQuit(); - SDL_initialized &= ~SDL_INIT_TIMER; - } + if ((flags & SDL_initialized & SDL_INIT_TIMER)) { + SDL_TimerQuit(); + SDL_initialized &= ~SDL_INIT_TIMER; + } #endif #if !SDL_AUDIO_DISABLED - if ( (flags & SDL_initialized & SDL_INIT_AUDIO) ) { - SDL_AudioQuit(); - SDL_initialized &= ~SDL_INIT_AUDIO; - } + if ((flags & SDL_initialized & SDL_INIT_AUDIO)) { + SDL_AudioQuit(); + SDL_initialized &= ~SDL_INIT_AUDIO; + } #endif #if !SDL_VIDEO_DISABLED - if ( (flags & SDL_initialized & SDL_INIT_VIDEO) ) { - SDL_VideoQuit(); - SDL_initialized &= ~SDL_INIT_VIDEO; - } + if ((flags & SDL_initialized & SDL_INIT_VIDEO)) { + SDL_VideoQuit(); + SDL_initialized &= ~SDL_INIT_VIDEO; + } #endif } -Uint32 SDL_WasInit(Uint32 flags) +Uint32 +SDL_WasInit(Uint32 flags) { - if ( ! flags ) { - flags = SDL_INIT_EVERYTHING; - } - return (SDL_initialized&flags); + if (!flags) { + flags = SDL_INIT_EVERYTHING; + } + return (SDL_initialized & flags); } -void SDL_Quit(void) +void +SDL_Quit(void) { - /* Quit all subsystems */ + /* Quit all subsystems */ #ifdef DEBUG_BUILD - printf("[SDL_Quit] : Enter! Calling QuitSubSystem()\n"); fflush(stdout); + printf("[SDL_Quit] : Enter! Calling QuitSubSystem()\n"); + fflush(stdout); #endif - SDL_QuitSubSystem(SDL_INIT_EVERYTHING); + SDL_QuitSubSystem(SDL_INIT_EVERYTHING); #ifdef CHECK_LEAKS #ifdef DEBUG_BUILD - printf("[SDL_Quit] : CHECK_LEAKS\n"); fflush(stdout); + printf("[SDL_Quit] : CHECK_LEAKS\n"); + fflush(stdout); #endif - /* Print the number of surfaces not freed */ - if ( surfaces_allocated != 0 ) { - fprintf(stderr, "SDL Warning: %d SDL surfaces extant\n", - surfaces_allocated); - } + /* Print the number of surfaces not freed */ + if (surfaces_allocated != 0) { + fprintf(stderr, "SDL Warning: %d SDL surfaces extant\n", + surfaces_allocated); + } #endif #ifdef DEBUG_BUILD - printf("[SDL_Quit] : SDL_UninstallParachute()\n"); fflush(stdout); + printf("[SDL_Quit] : SDL_UninstallParachute()\n"); + fflush(stdout); #endif - /* Uninstall any parachute signal handlers */ - SDL_UninstallParachute(); + /* Uninstall any parachute signal handlers */ + SDL_UninstallParachute(); #if !SDL_THREADS_DISABLED && SDL_THREAD_PTH - pth_kill(); + pth_kill(); #endif #ifdef DEBUG_BUILD - printf("[SDL_Quit] : Returning!\n"); fflush(stdout); + printf("[SDL_Quit] : Returning!\n"); + fflush(stdout); #endif } -/* Return the library version number */ -const SDL_version * SDL_Linked_Version(void) +/* Get the library version number */ +void +SDL_GetVersion(SDL_version * ver) { - return(&version); + SDL_VERSION(ver); } #if defined(__OS2__) @@ -261,65 +266,63 @@ #include <os2.h> /* Exception handler to prevent the Audio thread hanging, making a zombie process! */ -ULONG _System SDL_Main_ExceptionHandler(PEXCEPTIONREPORTRECORD pERepRec, - PEXCEPTIONREGISTRATIONRECORD pERegRec, - PCONTEXTRECORD pCtxRec, - PVOID p) +ULONG _System +SDL_Main_ExceptionHandler(PEXCEPTIONREPORTRECORD pERepRec, + PEXCEPTIONREGISTRATIONRECORD pERegRec, + PCONTEXTRECORD pCtxRec, PVOID p) { - if (pERepRec->fHandlerFlags & EH_EXIT_UNWIND) - return XCPT_CONTINUE_SEARCH; - if (pERepRec->fHandlerFlags & EH_UNWINDING) - return XCPT_CONTINUE_SEARCH; - if (pERepRec->fHandlerFlags & EH_NESTED_CALL) - return XCPT_CONTINUE_SEARCH; + if (pERepRec->fHandlerFlags & EH_EXIT_UNWIND) + return XCPT_CONTINUE_SEARCH; + if (pERepRec->fHandlerFlags & EH_UNWINDING) + return XCPT_CONTINUE_SEARCH; + if (pERepRec->fHandlerFlags & EH_NESTED_CALL) + return XCPT_CONTINUE_SEARCH; - /* Do cleanup at every fatal exception! */ - if (((pERepRec->ExceptionNum & XCPT_SEVERITY_CODE) == XCPT_FATAL_EXCEPTION) && - (pERepRec->ExceptionNum != XCPT_BREAKPOINT) && - (pERepRec->ExceptionNum != XCPT_SINGLE_STEP) - ) - { - if (SDL_initialized & SDL_INIT_AUDIO) - { - /* This removes the zombie audio thread in case of emergency. */ + /* Do cleanup at every fatal exception! */ + if (((pERepRec->ExceptionNum & XCPT_SEVERITY_CODE) == + XCPT_FATAL_EXCEPTION) && (pERepRec->ExceptionNum != XCPT_BREAKPOINT) + && (pERepRec->ExceptionNum != XCPT_SINGLE_STEP)) { + if (SDL_initialized & SDL_INIT_AUDIO) { + /* This removes the zombie audio thread in case of emergency. */ #ifdef DEBUG_BUILD - printf("[SDL_Main_ExceptionHandler] : Calling SDL_CloseAudio()!\n"); + printf + ("[SDL_Main_ExceptionHandler] : Calling SDL_CloseAudio()!\n"); #endif - SDL_CloseAudio(); + SDL_CloseAudio(); + } } - } - return (XCPT_CONTINUE_SEARCH); + return (XCPT_CONTINUE_SEARCH); } -EXCEPTIONREGISTRATIONRECORD SDL_Main_xcpthand = {0, SDL_Main_ExceptionHandler}; +EXCEPTIONREGISTRATIONRECORD SDL_Main_xcpthand = + { 0, SDL_Main_ExceptionHandler }; /* The main DLL entry for DLL Initialization and Uninitialization: */ -unsigned _System LibMain(unsigned hmod, unsigned termination) +unsigned _System +LibMain(unsigned hmod, unsigned termination) { - if (termination) - { + if (termination) { #ifdef DEBUG_BUILD /* printf("[SDL DLL Unintialization] : Removing exception handler\n"); */ #endif - DosUnsetExceptionHandler(&SDL_Main_xcpthand); - return 1; - } else - { + DosUnsetExceptionHandler(&SDL_Main_xcpthand); + return 1; + } else { #ifdef DEBUG_BUILD - /* Make stdout and stderr unbuffered! */ - setbuf(stdout, NULL); - setbuf(stderr, NULL); + /* Make stdout and stderr unbuffered! */ + setbuf(stdout, NULL); + setbuf(stderr, NULL); #endif - /* Fire up exception handler */ + /* Fire up exception handler */ #ifdef DEBUG_BUILD /* printf("[SDL DLL Initialization] : Setting exception handler\n"); */ #endif - /* Set exception handler */ - DosSetExceptionHandler(&SDL_Main_xcpthand); + /* Set exception handler */ + DosSetExceptionHandler(&SDL_Main_xcpthand); - return 1; - } + return 1; + } } #endif /* __WATCOMC__ */ @@ -330,19 +333,21 @@ #define WIN32_LEAN_AND_MEAN #include <windows.h> -BOOL APIENTRY _DllMainCRTStartup( HANDLE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved ) +BOOL APIENTRY +_DllMainCRTStartup(HANDLE hModule, + DWORD ul_reason_for_call, LPVOID lpReserved) { - switch (ul_reason_for_call) { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; + switch (ul_reason_for_call) { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; } #endif /* building DLL with Watcom C */ #endif /* OS/2 elif __WIN32__ */ + +/* vi: set ts=4 sw=4 expandtab: */