Mercurial > sdl-ios-xcode
diff src/SDL.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | dc6b59e925a2 |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/SDL.c Sun May 21 17:27:13 2006 +0000 +++ b/src/SDL.c Sun May 28 13:04:16 2006 +0000 @@ -35,23 +35,19 @@ /* Initialization/Cleanup routines */ #if !SDL_JOYSTICK_DISABLED -extern int SDL_JoystickInit(void); -extern void SDL_JoystickQuit(void); +extern int SDL_JoystickInit (void); +extern void SDL_JoystickQuit (void); #endif #if !SDL_CDROM_DISABLED -extern int SDL_CDROMInit(void); -extern void SDL_CDROMQuit(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 void SDL_TimerQuit(void); +extern void SDL_StartTicks (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,20 @@ #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: */