view src/main/macos/exports/SDL.x @ 1544:ab1e4c41ab71

Fixed bug #33 Mike Frysinger wrote: > with libsdl-1.2.9, some games (like bomberclone) started > segfaulting in Gentoo [...snip...] > the last change in the last hunk: [...snip...] > if i change the statement to read: > (table[which].blit_features & GetBlitFeatures()) == GetBlitFeatures() > bomberclone no longer segfaults on my box Alex Volkov wrote: > The test "(table[which].blit_features & GetBlitFeatures()) == > table[which].blit_features)" is correct, and the previous > "(table[which].cpu_mmx == SDL_HasMMX())" was actually broken. I think there is potentially a slightly different cause of the above problem. During the introduction of the Altivec code, the blit_table struct field 'alpha' got changed from a straightforward enum to a bitmask, which makes perfect sense by itself. However, now the table driven blitter selection code in SDL_CalculateBlitN() can choose the wrong blitters when searching for a NO_ALPHA blitter because of the following code: int a_need = 0; ... (a_need & table[which].alpha) == a_need && When searching through the normal_blit_2[] table, a SET_ALPHA blitter (like Blit_RGB565_ARGB8888) can now be selected instead of a NO_ALPHA one, causing alpha channel bits to appear in a non-alpha destination surface. I suppose this could theoretically be an indirect cause of the segfault mentioned above. I *think* this can be fixed by changing to int a_need = NO_ALPHA;
author Sam Lantinga <slouken@libsdl.org>
date Wed, 15 Mar 2006 15:47:49 +0000
parents 84cecd0b64b4
children 0a53c90a37f9 1e191391e68d
line wrap: on
line source

	SDL_Init
	SDL_InitSubSystem
	SDL_QuitSubSystem
	SDL_WasInit
	SDL_Quit
	SDL_GetAppState
	SDL_AudioInit
	SDL_AudioQuit
	SDL_AudioDriverName
	SDL_OpenAudio
	SDL_GetAudioStatus
	SDL_PauseAudio
	SDL_LoadWAV_RW
	SDL_FreeWAV
	SDL_BuildAudioCVT
	SDL_ConvertAudio
	SDL_MixAudio
	SDL_LockAudio
	SDL_UnlockAudio
	SDL_CloseAudio
	SDL_CDNumDrives
	SDL_CDName
	SDL_CDOpen
	SDL_CDStatus
	SDL_CDPlayTracks
	SDL_CDPlay
	SDL_CDPause
	SDL_CDResume
	SDL_CDStop
	SDL_CDEject
	SDL_CDClose
	SDL_HasRDTSC
	SDL_HasMMX
	SDL_HasMMXExt
	SDL_Has3DNow
	SDL_Has3DNowExt
	SDL_HasSSE
	SDL_HasSSE2
	SDL_HasAltiVec
	SDL_SetError
	SDL_GetError
	SDL_ClearError
	SDL_Error
	SDL_PumpEvents
	SDL_PeepEvents
	SDL_PollEvent
	SDL_WaitEvent
	SDL_PushEvent
	SDL_SetEventFilter
	SDL_GetEventFilter
	SDL_EventState
	SDL_NumJoysticks
	SDL_JoystickName
	SDL_JoystickOpen
	SDL_JoystickOpened
	SDL_JoystickIndex
	SDL_JoystickNumAxes
	SDL_JoystickNumBalls
	SDL_JoystickNumHats
	SDL_JoystickNumButtons
	SDL_JoystickUpdate
	SDL_JoystickEventState
	SDL_JoystickGetAxis
	SDL_JoystickGetHat
	SDL_JoystickGetBall
	SDL_JoystickGetButton
	SDL_JoystickClose
	SDL_EnableUNICODE
	SDL_EnableKeyRepeat
	SDL_GetKeyRepeat
	SDL_GetKeyState
	SDL_GetModState
	SDL_SetModState
	SDL_GetKeyName
	SDL_LoadObject
	SDL_LoadFunction
	SDL_UnloadObject
	SDL_GetMouseState
	SDL_GetRelativeMouseState
	SDL_WarpMouse
	SDL_CreateCursor
	SDL_SetCursor
	SDL_GetCursor
	SDL_FreeCursor
	SDL_ShowCursor
	SDL_CreateMutex
	SDL_mutexP
	SDL_mutexV
	SDL_DestroyMutex
	SDL_CreateSemaphore
	SDL_DestroySemaphore
	SDL_SemWait
	SDL_SemTryWait
	SDL_SemWaitTimeout
	SDL_SemPost
	SDL_SemValue
	SDL_CreateCond
	SDL_DestroyCond
	SDL_CondSignal
	SDL_CondBroadcast
	SDL_CondWait
	SDL_CondWaitTimeout
	SDL_RWFromFile
	SDL_RWFromFP
	SDL_RWFromMem
	SDL_RWFromConstMem
	SDL_AllocRW
	SDL_FreeRW
	SDL_ReadLE16
	SDL_ReadBE16
	SDL_ReadLE32
	SDL_ReadBE32
	SDL_ReadLE64
	SDL_ReadBE64
	SDL_WriteLE16
	SDL_WriteBE16
	SDL_WriteLE32
	SDL_WriteBE32
	SDL_WriteLE64
	SDL_WriteBE64
	SDL_GetWMInfo
	SDL_CreateThread
	SDL_CreateThread
	SDL_ThreadID
	SDL_GetThreadID
	SDL_WaitThread
	SDL_KillThread
	SDL_GetTicks
	SDL_Delay
	SDL_SetTimer
	SDL_AddTimer
	SDL_RemoveTimer
	SDL_Linked_Version
	SDL_VideoInit
	SDL_VideoQuit
	SDL_VideoDriverName
	SDL_GetVideoSurface
	SDL_GetVideoInfo
	SDL_VideoModeOK
	SDL_ListModes
	SDL_SetVideoMode
	SDL_UpdateRects
	SDL_UpdateRect
	SDL_Flip
	SDL_SetGamma
	SDL_SetGammaRamp
	SDL_GetGammaRamp
	SDL_SetColors
	SDL_SetPalette
	SDL_MapRGB
	SDL_MapRGBA
	SDL_GetRGB
	SDL_GetRGBA
	SDL_CreateRGBSurface
	SDL_CreateRGBSurfaceFrom
	SDL_FreeSurface
	SDL_LockSurface
	SDL_UnlockSurface
	SDL_LoadBMP_RW
	SDL_SaveBMP_RW
	SDL_SetColorKey
	SDL_SetAlpha
	SDL_SetClipRect
	SDL_GetClipRect
	SDL_ConvertSurface
	SDL_UpperBlit
	SDL_LowerBlit
	SDL_FillRect
	SDL_DisplayFormat
	SDL_DisplayFormatAlpha
	SDL_CreateYUVOverlay
	SDL_LockYUVOverlay
	SDL_UnlockYUVOverlay
	SDL_DisplayYUVOverlay
	SDL_FreeYUVOverlay
	SDL_GL_LoadLibrary
	SDL_GL_GetProcAddress
	SDL_GL_SetAttribute
	SDL_GL_GetAttribute
	SDL_GL_SwapBuffers
	SDL_GL_UpdateRects
	SDL_GL_Lock
	SDL_GL_Unlock
	SDL_WM_SetCaption
	SDL_WM_GetCaption
	SDL_WM_SetIcon
	SDL_WM_IconifyWindow
	SDL_WM_ToggleFullScreen
	SDL_WM_GrabInput
	SDL_SoftStretch
	SDL_putenv
	SDL_getenv
	SDL_qsort
	SDL_revcpy
	SDL_strlcpy
	SDL_strlcat
	SDL_strdup
	SDL_strrev
	SDL_strupr
	SDL_strlwr
	SDL_ltoa
	SDL_ultoa
	SDL_strcasecmp
	SDL_strncasecmp
	SDL_snprintf
	SDL_vsnprintf
	SDL_iconv
	SDL_iconv_string
	SDL_InitQuickDraw