src


Log

Author Commit Date CI Message
Alex Szpakowski 28fe9f0c 2014-10-28T01:34:40 Switched to the core versions of OpenGL ES framebuffer object and renderbuffer functions. Both the extension (OES) and the core versions work, but the core versions are more correct for GLES2+ and they're less verbose.
Alex Szpakowski d89620a8 2014-10-24T04:06:45 Removed the codepath that gets compiled if IPHONE_TOUCH_EFFICIENT_DANGEROUS is not defined. The "dangerous" codepath relies on the fact that UITouch objects are persistent for the entire touch sequence, which is always guaranteed by Apple.
Alex Szpakowski a0481bb1 2014-10-24T03:56:34 Completely removed custom splash screen code. iOS 8 introduced yet another official way to do launch images (via a Storyboard), and the custom splash screen code was broken on newer devices and caused bugs for all devices anyway.
Alex Szpakowski ba565622 2014-09-14T17:04:54 Enabling highdpi mode on an iPhone 6 Plus should now create a 1080x1920 OpenGL view, rather than 1242x2208 (414x736@3x.)
Alex Szpakowski 3071128d 2014-09-10T18:10:37 Merged default into iOS-improvements
Sam Lantinga bf8ac8e7 2014-09-10T14:05:27 DSCAPS_GL was added for DirectFB 1.6
Sam Lantinga 0e65e623 2014-09-10T08:59:19 Report the correct desktop video mode on the iMX6
mastermind 50cc4efe 2014-09-10T08:54:01 Freescale i.MX6 video driver --- CMakeLists.txt | 2 + cmake/sdlchecks.cmake | 20 +++ configure | 51 +++++++ configure.in | 28 ++++ include/SDL_config.h.cmake | 1 + include/SDL_config.h.in | 1 + src/video/SDL_sysvideo.h | 3 + src/video/SDL_video.c | 3 + src/video/mx6/SDL_mx6events.c | 45 ++++++ src/video/mx6/SDL_mx6events_c.h | 31 +++++ src/video/mx6/SDL_mx6opengles.c | 211 ++++++++++++++++++++++++++++ src/video/mx6/SDL_mx6opengles.h | 68 +++++++++ src/video/mx6/SDL_mx6video.c | 301 ++++++++++++++++++++++++++++++++++++++++ src/video/mx6/SDL_mx6video.h | 78 +++++++++++ 14 files changed, 843 insertions(+) create mode 100644 src/video/mx6/SDL_mx6events.c create mode 100644 src/video/mx6/SDL_mx6events_c.h create mode 100644 src/video/mx6/SDL_mx6opengles.c create mode 100644 src/video/mx6/SDL_mx6opengles.h create mode 100644 src/video/mx6/SDL_mx6video.c create mode 100644 src/video/mx6/SDL_mx6video.h
Ryan C. Gordon bcaae0b5 2014-09-08T01:36:22 Deal with various .bmp file format variants in SDL_LoadBMP_RW(). This helps when modern versions of The Gimp (and lots of other things) produces a 32-bit bitmap with an alpha channel, or anything with "BI_BITFIELDS" format, since that data is now embedded in the bitmap info header instead of directly following it and we would accidentally skip over embedded versions of it. Fixes Bugzilla #2714.
J?rgen Tjern? 782d590b 2014-09-02T14:14:23 Fix non-power-of-two shaped windows. This fixes a bug where SDL_SetWindowShape would render artifacts if the image was not a power of two image, due to rounding of width / 2.
Sam Lantinga 7242e814 2014-09-02T06:55:47 Updated version to 2.0.4
Ryan C. Gordon 724d24d9 2014-08-31T11:21:10 Mac: Don't add the same joystick twice if IOKit reports a duplicate device. Fixes Bugzilla #2704.
Sam Lantinga 66a88c6c 2014-08-25T10:55:54 Fixed memory leak getting the X11 window title
Sam Lantinga 05cff792 2014-08-24T00:02:12 Fixed bug 2699 - possible memory leak in GL_RenderReadPixels Benoit Pierre If glReadPixels returns an error, than the temporary buffer is not deallocated
Sam Lantinga 9d54a900 2014-08-23T19:06:54 May have fixed the Linux build again
Sam Lantinga fe4bc5ab 2014-08-23T11:00:16 Fixed Linux build
Sam Lantinga 059579e4 2014-08-23T10:47:50 Fixed bug 2696 - Mac: fix display mode refresh rate calculation Alex Szpakowski SDL's Cocoa backend uses the CGDisplayMode API to get refresh rate information about a display mode, but CGDisplayModeGetRefreshRate will return 0 on most non-CRT monitors. The only way I know of to get correct refresh rate information in OS X is via the CoreVideo DisplayLink API. I have attached a patch which tries to use the CVDisplayLinkGetNominalOutputVideoRefreshPeriod function if CGDisplayModeGetRefreshRate fails, which fixes display mode refresh rate information on the monitors I tested. The CVDisplayLink API requires linking with the CoreVideo framework, and the patch updates the various build files to do so.
Ryan C. Gordon a79ed6ce 2014-08-21T23:22:46 Fix declaration-after-statement errors in ibus code.
Ryan C. Gordon 5e1f1589 2014-08-21T23:15:17 Adjusted code style slightly for SDL_ibus.c
Alex Szpakowski b1a0bd10 2014-08-20T17:20:22 Merged default into iOS-improvements
Sam Lantinga 38b49c30 2014-08-19T21:59:56 Changed the name of the IME hint to match the naming convention in SDL
Alex Baines 90bc642f 2014-08-19T23:31:50 Add a SDL_IM_INTERNAL_EDITING event to make IMs like iBus render editing text in its own UI instead of sending TEXTEDITING events. This is useful for applications that handle TEXTINPUT events but not TEXTEDITING events.
Alex Baines f4ddacf4 2014-08-19T23:17:28 Improvements to the IBus related code: + Handle HidePreeditText IBus signal. + Use SDL_GetKeyboardFocus instead of SDL_GetFocusWindow. + Move the X11 IBus SetFocus calls to the X11_DispatchFocus functions. + Simplify the IBus ifdefs when handling X11 KeyEvents. + Remove inotify watch when SDL_IBus_Quit is called.
Alex Baines 6f84f37c 2014-08-19T22:28:53 Take the window border size into account when positioning the IBus candidate list.
Sam Lantinga bbab3855 2014-08-18T18:16:45 SDL - fix fullscreen desktop windows not restoring to fullscreen state if focus changes happen due to programtic window changes (and not user alt-tabbing)
Sam Lantinga 877666e2 2014-08-18T11:28:16 Fixed UV texture coordinate scale when using GL_ARB_texture_non_power_of_two
Sam Lantinga d1cc47b3 2014-08-17T15:07:00 Fixed 2680 - OSX: Replace NSAutoreleasePool with @autoreleasepool Tim McDaniel This patch replaces all use of NSAutoreleasePool with the Apple recommended @autoreleasepool. @autoreleasepool is supposedly more efficient, and since it is scope based it can't be accidentally not released.
Sam Lantinga 5e501804 2014-08-17T14:57:52 Fixed bug 2655 - OSX: Window position and global mouse coord spaces are different Tim McDaniel On OSX, with revision 8729, the coordinate space for window position and the coordinate space for global mouse position don't match. For a non-fullscreen window, the window position is global relative to the bottom of the menubar. The global mouse position is relative to the top of the screen. This affects Cocoa_WarpMouse and potentially other things as well. Further, the coordinate system for window position is now affected by what screen it is on. For example, if I have two equal size screens oriented side by side such that the tops of the screens are equal in global space, with the menubar on one screen, and a window straddles the two screens, the window's y position makes no sense. The window's y position depends on what screen "most" of the window is on. So if I move the window horizontally just a bit, the y position of my window is now different by the size of the menubar, even though the window was not moved vertically. I'd like to reiterate that this was a fairly fundamental change (and a breaking change for us). If SDL OSX is to really support multi-display configurations, this is especially problematic. If the real concern is preventing windows from going under the menubar, then perhaps a solution involving something like overriding [NSWindow constrainFrameRect] would be less problematic than redefining the global window coord space for the main display.
Sam Lantinga de3d381c 2014-08-17T14:44:53 Fixed bug 2685 - SDL_RenderReadPixels() doesn't work with offscreen targets Andreas Falkenhahn SDL_RenderReadPixels() doesn't seem to work when trying to read pixels from a texture that has been created using SDL_TEXTUREACCESS_TARGET and has been selected as the render target using SDL_SetRenderTarget(). I am attaching a small program that demonstrates the issue. I get the following result here: READ PIXEL RETURN: 0 --- COLOR CHECK: ff000000 But it should be: READ PIXEL RETURN: 0 --- COLOR CHECK: ffff0000 Tested with SDL 2.0.3 on Windows 7.
Sam Lantinga 2e3c778e 2014-08-17T14:34:41 Fixed bug where the render target is updated instead of the default output when the window is resized.
Sam Lantinga 1ea86978 2014-08-17T13:11:55 Removed SDL_round() because the license wasn't compatible with zlib
Sam Lantinga 529ed53b 2014-08-16T23:30:44 Fixed bug 2681 - dereference a NULL pointer dst_fmt in SDL_CreateTextureFromSurface function Nitz In SDL_CreateTextureFromSurface: SDL_PixelFormat *dst_fmt; /* Set up a destination surface for the texture update */ dst_fmt = SDL_AllocFormat(format); temp = SDL_ConvertSurface(surface, dst_fmt, 0); Here is need of NULL check for dst_fmt because there are chances of NULL return from SDL_AllocFormat(format);
Sam Lantinga 8272ed18 2014-08-16T23:25:02 Fixed bug 2687 - SDL_BlitScaled does not handle clipping correctly Patch from Benoit Pierre: video: fix clipping handling in SDL_UpperBlitScaled - honor destination clipping rectangle - update both destination and source rectangles when clipping source rectangle to source surface and destination rectangle to destination clip rectangle - don't change scaling factors when clipping N.B.: - when no scaling is involved (source and destination width/height are the same), SDL_UpperBlit is used (so SDL_BlitScaled behaves like SDL_BlitSurface) - the final destination rectangle after all clipping is performed is saved back to dstrect (like for SDL_UpperBlit)
Sam Lantinga 4e7db78e 2014-08-16T23:23:15 Added SDL_round(), contributed by Benoit Pierre - thanks!
Sam Lantinga d673d8c3 2014-08-16T23:17:47 Fixed bugs 2677 and 2625, made it possible to lock render targets in D3D
Ryan C. Gordon e2bbc17d 2014-08-16T16:49:00 Haptic: Fix clamping bugs on Windows, by using the Darwin haptics code. Thanks, Elias! Partially fixes Bugzilla #2686.
Ryan C. Gordon 57db2790 2014-08-16T16:47:42 Haptic: Fix the saturation and deadband parameters' available range. There was a misconception that Linux's saturation and deadband parameters - on which the corresponding SDL parameters were based - use only half of the possible range. Thanks, Elias! Partially fixes Bugzilla #2686.
Ryan C. Gordon a2622ce6 2014-08-16T16:42:55 Haptic: Explicitly avoid floating point arithmetic if it's not needed. Thanks, Elias! Partially fixes Bugzilla #2686.
Ryan C. Gordon 1db581b4 2014-08-16T16:41:25 Haptic: DInput's POLAR direction actually matches Linux's direction. Thanks, Elias! Partially fixes Bugzilla #2686.
Ryan C. Gordon 3e27013b 2014-08-16T16:40:01 Haptic: Don't interpret a direction of polar 35999 as "unsupported type". (or linux-direction 0xFFFF) Thanks, Elias! Partially fixes Bugzilla #2686.
Sam Lantinga c6a2382c 2014-08-14T21:31:50 Take advantage of GL_ARB_texture_non_power_of_two when it's available
Philipp Wiesemann 2c1faa40 2014-08-12T23:37:12 Fixed warnings about unused local variables.
Sam Lantinga 05d87800 2014-08-11T17:25:53 Implemented SDL_GetPrefPath() on Android - it returns the path used by SDL_AndroidGetInternalStoragePath()
Sam Lantinga 4fe43f40 2014-08-11T17:24:54 Added an entry for the new Steam controller XInput emulation mode
Philipp Wiesemann a9d4a6b8 2014-08-11T23:18:35 Fixed typo in source comment.
David Ludwig ff5caa17 2014-08-10T22:21:21 WinRT build fix for ARM platforms The _xgetbv intrinsic was being used in ARM builds of SDL/WinRT, which was leading to linker errors. This commit limits _xgetbv use to the platforms on which it is available, x86 and x64.
Alex Szpakowski deceab25 2014-08-08T15:14:09 Added iOS-specific functions to get the window view's current OpenGL Renderbuffer and Framebuffer objects, so they can be more easily rebound when necessary.
Alex Szpakowski 2dac6bf5 2014-08-07T00:44:16 Fixed opengl context share groups on iOS.
Sam Lantinga 6fef39d6 2014-08-06T11:34:54 Added NV12 and NV21 texture support for OpenGL and OpenGL ES 2.0 renderers
Alex Szpakowski 02b06c66 2014-08-06T13:50:50 Merged default into iOS-improvements
Sam Lantinga 6299daec 2014-08-06T00:28:02 The OpenGL context returned by the UIKit backend is now an actual OpenGL context instead of the OpenGL view we created. This allows you to use the returned context in functions like CVOpenGLESTextureCacheCreate()
Alex Szpakowski f5543f93 2014-08-06T03:24:16 Updated the iOS backend code to use Objective-C's automatic reference counting (ARC).
Alex Szpakowski 36289977 2014-08-06T00:45:11 Minor code update for less verbosity
Alex Szpakowski 20965831 2014-08-04T15:30:53 Merged branch default into iOS-improvements
Alfred Reynolds 87b8c8d1 2014-07-31T12:46:23 SDL - when raising the window under OSX also force the app to activate. This fixes a fullscreen window on a separate space not coming front when raisewindow is called.
Alex Szpakowski bde54b7f 2014-07-31T03:14:10 Merged 'default' into branch 'iOS-improvements'
Alfred Reynolds 75529476 2014-07-30T17:45:52 SDL - fix re-entrancy into SDL_UpdateFullscreenMode under OSX. During HideWindow we get a RESTORED event which then turns fullscreen back on causing a hang in Cocoa_SetWindowFullscreenSpace waiting for the fullscreen transition to finish.
Ryan C. Gordon c0f9a57f 2014-07-30T14:12:54 Fixed comment typo.
Ryan C. Gordon c5b21ea6 2014-07-30T11:11:48 SDL_GetQueuedAudioSize() shouldn't grab lock when not set up for queueing.
Ryan C. Gordon e5d49c20 2014-07-30T11:08:31 Added a GetPendingBytes method to the audio backend. This will (eventually) make SDL_GetQueuedAudioSize() more accurate, and thus reduce latency. Right now this isn't implemented anywhere, so we assume data fed to the audio callback is consumed by the hardware and immediately played to completion.
Ryan C. Gordon db1dd756 2014-07-30T09:54:01 XAudio2: Use XAUDIO2_VOICE_NOSAMPLESPLAYED when possible. For versions of XAudio2 with an IXAudio2SourceVoice::GetState() that offers a flags parameter, we can use XAUDIO2_VOICE_NOSAMPLESPLAYED, since we don't need this information in our current calls. According to MSDN, this makes the the call about 3x faster.
Alex Szpakowski caad673f 2014-07-29T00:36:12 Added missing autorelease pool blocks in UIKit backend code. Fixes memory leak issues, especially in SDL_video.
Alex Szpakowski 31257842 2014-07-29T00:05:48 Added support for SDL_SetWindowBordered on iOS. Worked around a bug with rotating the device on iOS 8.
Sam Lantinga a0b68e81 2014-07-27T17:44:10 Fixed bug 2537 - _allmul in SDL_lib.c is not working properly
Sam Lantinga 5c6c8691 2014-07-27T17:43:36 Fixed uninitialized variable in some cases
Ryan C. Gordon 2230df55 2014-07-27T19:52:52 Remove dependency on C runtime from Windows SDLmain.
Sam Lantinga dfc7535f 2014-07-26T16:52:26 Fixed bug 2657 - Memory leak in GL_CreateTexture function Nitz In GL_CreateTexture function: if (GL_CheckError("glGenTexures()", renderer) < 0) { SDL_free(data); return -1; } Here only data is getting free but data->pixels getting leak. So have to free data->pixels before free data.
Alex Szpakowski 0e5df605 2014-07-24T22:35:25 Fixed SDL_SetWindowFullscreen on iOS causing the window's reported dimensions and supported orientations to go out of sync with what they should be, if the device orientation was different from the screen orientation when the function call was made.
Alex Szpakowski 05afbfdf 2014-07-23T22:35:14 Integrated Phil Hassey's patch to fix SDL_IsScreenKeyboardShown on iOS (https://bugzilla.libsdl.org/show_bug.cgi?id=2660)
Alex Szpakowski 029e0193 2014-07-23T21:55:42 Fixed SDL_SetWindowFullscreen on iOS for the last time, hopefully. Fixed iOS version checking code.
Alex Szpakowski ef0490a7 2014-07-23T03:05:31 More cleanup of the iOS Objective-C code.
Alex Szpakowski 6d552cae 2014-07-23T01:33:59 90% of iOS users on the App Store run at least iOS 7, so it doesn't make sense to support building using an SDK that doesn't support iOS 7. The minimum supported runtime version is still iOS 5.1.
Alex Szpakowski 967549c9 2014-07-23T01:28:24 Updated the iOS Objective-C code to use NSDictionary/NSArray/NSNumber literals and subscripting, for improved code clarity. This requires at least Xcode 4.5 and the iOS 6 SDK to build, but it doesn't change the minimum supported runtime version (iOS 5.1). Less than 2% of iOS users are running iOS 5, so I hope developers aren't trying to build SDL using an SDK which doesn't support iOS 6/7...
Ryan C. Gordon 987c3355 2014-07-22T23:12:21 Clarifying hard-to-understand piece of code.
Ryan C. Gordon f30e120a 2014-07-22T21:41:49 Added audio device buffer queueing API.
Alex Szpakowski 078ca9f0 2014-07-22T20:06:13 Cleaned up iOS OpenGL ES context creation code and added sRGB context support on iOS 7+
Alex Szpakowski cf2958a8 2014-07-22T16:48:35 Fixed SDL_SetWindowFullscreen on iOS to properly update the view's frame.
Alex Szpakowski e02e3452 2014-07-21T02:46:53 The default implementation of [view layoutSubviews] actually does something in iOS 6+, so we should call [super layoutSubviews] when overriding it.
Brandon Schaefer 75dacdb9 2014-07-18T14:10:45 Dont redeclare DBusMessage* msg;
Alex Szpakowski e234575d 2014-07-17T22:55:59 Disabled the custom iOS splashscreen code - it interferes with the normal rotation and orientation behaviour of SDL windows.
Alex Szpakowski d2e445d7 2014-07-17T18:05:12 Properly send a window resize event in all cases when viewDidLayoutSubviews is triggered.
Alex Szpakowski b55be6e7 2014-07-16T21:06:15 Fixed SDL_HINT_ORIENTATIONS to properly allow disabling custom orientations if the hint is set with no valid orientations.
Alex Szpakowski b21544c1 2014-07-16T20:05:00 The iOS 7 transparent status bar now uses white text rather than black.
Alex Szpakowski b4d15ece 2014-07-16T16:12:20 Fixed SDL_SetWindowFullscreen not properly updating the status bar visibility in iOS 7+
Alex Szpakowski c81ce5a0 2014-07-15T02:04:08 Minor fix for if SDL_JoystickInit is called more than once without a matching SDL_JoystickQuit.
Alex Szpakowski 1506b3b8 2014-07-15T02:01:43 iOS now respects SDL_HINT_ACCELEROMETER_AS_JOYSTICK.
Alex Szpakowski 3672409c 2014-07-14T22:35:48 Changed the way retina resolutions are handled in iOS. Previously, SDL would always expose display modes and window dimensions in terms of pixels, and would add an extra 'fake' display mode on retina screens which would contain the non-retina resolution. Calling SDL_CreateWindow with the dimensions of that fake display mode would not work. Now, SDL only exposes display modes and window dimensions in terms of points rather than pixels. If the SDL_WINDOW_ALLOW_HIGHDPI flag is passed into SDL_CreateWindow, then any OpenGL contexts created from that window will be sized in pixels rather than points (retrievable with SDL_GL_GetDrawableSize.) Window dimensions and mouse coordinates are still in terms of points rather than pixels even with that flag. This matches the behavior of SDL in OS X more closely, and lets users choose whether to make use of retina displays and lets them handle it properly.
Alex Szpakowski 734b5233 2014-07-14T16:50:25 Misc. iOS code improvements. - Use @autoreleasepool instead of NSAutoReleasePool. - Code style fixups.
Sam Lantinga 96b613ea 2014-07-13T09:04:55 Fixed bug 2640 - Unable to SDL_SetRenderTarget to original surface for software renderer without a window Damian Kaczmarek Basically this bug is probably not a common use case. My goal is to allow rendering totally without a window, for example to a screenshot and I need to rely on SDL_SetRenderTarget to properly work for a purely software renderer created by SDL_CreateSoftwareRenderer.
Sam Lantinga fd1da994 2014-07-12T16:21:56 Fixed bug 2639 - SDL_BLENDMODE_BLEND not working properly for software renderer, thanks to Melker Narikka
Sam Lantinga d1ca658c 2014-07-12T13:05:41 Fixed bug 2638 - (Signed) Can't create signed apps in Android Pablo Mayobre When generating a signed app with SDL 2.0.3 an issue comes up, watching at the Error Log points out that the issue lies in the src/main/android/SDL_android_main.c where the process name is defined as "SDL_app", this name turns into an erroneous name so it should be changed to "app_process"
Sam Lantinga 454c4a01 2014-07-11T22:15:34 Fixed Visual Studio 2010 build
Sam Lantinga 6a1011ae 2014-07-11T22:14:14 Fixed build for arm platforms
Sam Lantinga eb1c6044 2014-07-11T22:02:50 Fixed bug in AVX detection and added AVX2 detection
Ryan C. Gordon f7461cdc 2014-07-09T00:09:57 The Gimp puts out a different bogus color mask for 32-bit .bmp files. :)
Ryan C. Gordon a91f1a1a 2014-07-09T00:01:34 Make SDL_LoadBMP() work with 32-bit bitmaps from ImageMagick.
Sam Lantinga 19d878d7 2014-07-08T00:42:14 Skip JUNK chunks in wave files
Sam Lantinga d23d9c88 2014-07-07T23:26:34 Fixed bug 2421 - SDL_RenderCopyEx off by one when rotating by 90 and -90 chasesan When using SDL_RenderCopyEx, I get a problem on some platforms where the output is offset by +/-1 on other platforms and not on others. I tried it with a center of both 0,0 (and offsetting by width/height) and NULL (for centered). The rotation involved is 90, and/or -90 rotation. The rotation was a constant, no arithmetic was involved when inputting it into SDL_RenderCopyEx. This occurred with 32x32, 24x24, and 16x16 texture sizes. I apologize that I don't have more precise information, as I received the information as a bug report myself. But I have tracked the problem down to here. My program requires pixel perfect alignment on several different platforms, so this is something of a showstopper for me. -- Sylvain It appears the RenderCopyEx is done as expected, this is the red rectangle which is not correctly positionned ! So, here's patch with a 0.5 float increment, like for opengles2, for DrawLines, and also Draw Points.
Sam Lantinga 8077bf3d 2014-07-07T21:27:42 Fixed bug 2618 - incomplete pthread-based lock support should be removed binarycrusader Since changeset 358696c354a8, SDL 2.0 has been broken on Solaris when compiling with the Solaris Studio compiler (which uses the pthread implementation of SDL_AtomicLock). Notably, it gets stuck at the MemoryBarrierRelease in SDL_GetErrBuf: 6585 # 218 6586 if (!tls_errbuf && !tls_being_created) { 6587 SDL_AtomicLock_REAL ( & tls_lock ); 6588 if (!tls_errbuf) { 6589 SDL_TLSID slot; 6590 tls_being_created = SDL_TRUE; 6591 slot = SDL_TLSCreate_REAL ( ); 6592 tls_being_created = SDL_FALSE; 6593 { SDL_SpinLock _tmp = 0 ; SDL_AtomicLock_REAL ( & _tmp ) ; SDL_AtomicUnlock_REAL ( & _tmp ) ; }; ^^^ loops forever above 6594 tls_errbuf = slot; 6595 } 6596 SDL_AtomicUnlock_REAL ( & tls_lock ); 6597 } Running: testthread (process id 28926) ^Cdbx: warning: Interrupt ignored but forwarded to child. signal INT (Interrupt) in __nanosleep at 0xfe52a875 0xfe52a875: __nanosleep+0x0015: jae __nanosleep+0x23 [ 0xfe52a883, .+0xe ] Current function is SDL_Delay_REAL 204 was_error = nanosleep(&tv, &elapsed); (dbx) where [1] __nanosleep(0xfeffe848, 0xfeffe850, 0xfe75a5ac, 0xfe5169d8), at 0xfe52a875 [2] nanosleep(0xfeffe848, 0xfeffe850), at 0xfe516a3b =>[3] SDL_Delay_REAL(ms = 0), line 204 in "SDL_systimer.c" [4] SDL_AtomicLock_REAL(lock = 0xfeffe88c), line 104 in "SDL_spinlock.c" [5] SDL_GetErrBuf(), line 225 in "SDL_thread.c" [6] SDL_ClearError_REAL(), line 216 in "SDL_error.c" [7] SDL_InitSubSystem_REAL(flags = 0), line 116 in "SDL.c" [8] SDL_Init_REAL(flags = 0), line 244 in "SDL.c" [9] SDL_Init(a = 0), line 89 in "SDL_dynapi_procs.h" [10] main(argc = 1, argv = 0xfeffe948), line 65 in "testthread.c" As far as I can tell, this is because pthread_spin_trylock() always returns EBUSY for this particular lock; since it works in other places, I'm suspicious. Different Solaris Studio compiler versions seem to make no difference. I've verified this is broken on Linux as well if SDL_spinlock.c is modified to use the pthread implementation. This appears to be because pthread_spin_init() and pthread_spin_destroy() are not used with the locks as required.
Sam Lantinga 0c8e3376 2014-07-07T21:21:05 Fixed bug 2628 - invalidate surface->map in SDL_SurfacePalette() Wei Mingzhi surface->map should be invalidated in SDL_SetSurfacePalette(), otherwise the palette would not be effective when blitting to another non-8bit surface which we previously blitted to.