Tue, 16 Jun 2015 22:16:35 -0700 Fixed bug 2774 - Android: screen distorted in Landscape after background/foreground
Sam Lantinga <slouken@libsdl.org> [Tue, 16 Jun 2015 22:16:35 -0700] rev 9749
Fixed bug 2774 - Android: screen distorted in Landscape after background/foreground Sylvain With a Landscape application. Going to background with Home Key, then foreground. The screen is distorted. This has been reported by Samsung. It happens on S5 and Samsung Alpha, see the video attached. I have captured the following logcat: V/SDL (20549): onResume() V/SDL (20549): surfaceCreated() V/SDL (20549): surfaceChanged() V/SDL (20549): pixel format RGB_565 V/SDL (20549): Window size:1920x1080 I/SDL (20549): SDL_Android_Init() I/SDL (20549): SDL_Android_Init() finished! V/SDL (20549): SDL audio: opening device V/SDL (20549): SDL audio: wanted stereo 16-bit 22.05kHz, 256 frames buffer V/SDL (20549): SDL audio: got stereo 16-bit 22.05kHz, 1764 frames buffer V/SDL (20549): onWindowFocusChanged(): true V/SDL (20549): onWindowFocusChanged(): false V/SDL (20549): onPause() V/SDL (20549): nativePause() V/SDL (20549): surfaceDestroyed() Background / Foreground V/SDL (20549): onResume() V/SDL (20549): surfaceCreated() V/SDL (20549): surfaceChanged() V/SDL (20549): pixel format RGB_565 V/SDL (20549): Window size:1080x1920 V/SDL (20549): surfaceChanged() V/SDL (20549): pixel format RGB_565 V/SDL (20549): Window size:1920x1080 V/SDL (20549): onWindowFocusChanged(): true V/SDL (20549): nativeResume() This seems to be related to the fact that I have in "AndroidManifest.xml": android:configChanges="..." Because of the fields: "orientation" and also "screenSize". I have looked for another way to solve the issue. Discarding the "surfaceChanged" call, based on the "requestedOrientation" and the new Orientation. It seems to be better. On my failing test case, the first "surfaceChanged()" is discarded. Sometimes the "focusChanged()" might appear between the two "surfaceChanged()", while the surface is not yet ready. Thus, discarding also the "nativeResume()". So, for robustness, a call to "nativeResume()" is added at the end of "surfaceChanged()". Some update: 1/ First I tried, to discard the surface using the current orientation (rather than width / heigh). -> that solve the issue sometimes, but not always. 2/ Samsung Certification now accepts my application that were previously failing. 3/ I personally now owns a Samsung S5, and was able to solve the issue on my side. 4/ I now use the patch and get no complaints from my users. (but I admit, nobody seemed to be complaining before neither...). 5/ I have added a v2 because of a new smart-phone called "Black Berry Passport" that has a square screen of 1440x1440. This screen has a "status bar" so the resolution is in fact : 1440x1308. (as reported by "surfaceChanged"). Problem is: the portrait resolution is in fact a Landscape! So the "v1" patch is always discarding the "surface" of BlackBerry Passport. Which is terribly bad. Hence, I added the "v2" patch not to discard the surface when aspect ratio is < 1.20. (BB 1440/1308 is : 1.1009). Which seems fair.
Tue, 16 Jun 2015 20:28:21 +0200 Moved entry in WhatsNew.txt because it was already in 2.0.0 for Android and iOS.
Philipp Wiesemann <philipp.wiesemann@arcor.de> [Tue, 16 Jun 2015 20:28:21 +0200] rev 9748
Moved entry in WhatsNew.txt because it was already in 2.0.0 for Android and iOS.
Tue, 16 Jun 2015 20:27:01 +0200 Fixed comment in test program.
Philipp Wiesemann <philipp.wiesemann@arcor.de> [Tue, 16 Jun 2015 20:27:01 +0200] rev 9747
Fixed comment in test program.
Tue, 16 Jun 2015 20:25:53 +0200 Excluded SDL_egl.h from doxygen input.
Philipp Wiesemann <philipp.wiesemann@arcor.de> [Tue, 16 Jun 2015 20:25:53 +0200] rev 9746
Excluded SDL_egl.h from doxygen input.
Mon, 15 Jun 2015 23:44:08 -0700 Fixed bug 3015 - grab mouse inconsistent state
Sam Lantinga <slouken@libsdl.org> [Mon, 15 Jun 2015 23:44:08 -0700] rev 9745
Fixed bug 3015 - grab mouse inconsistent state Martin Gerhardy Not sure - but I think there might be a logic flaw in SDL_SetWindowGrab. The problem here is that this modifies the window flags and e.g. sets SDL_WINDOW_INPUT_GRABBED - but the _this->grabbed_window pointer is not yet set. Then in SDL_UpdateWindowGrab the _this->grabbed_window pointer is only set if the function pointer _this->SetWindowGrab is not NULL. But if this is NULL, the _this->grabbed_window pointer is never set, but every future call to any of the grab functions include an assert for: SDL_assert(!_this->grabbed_window || ((_this->grabbed_window->flags & SDL_WINDOW_INPUT_GRABBED) != 0)); That means the first call works, the second always fails and triggers the assert.
Mon, 15 Jun 2015 20:24:51 -0700 Implement repositioning the OS-rendered IME with SDL_SetTextInputRect on Windows.
Colby Klein <shakesoda@gmail.com> [Mon, 15 Jun 2015 20:24:51 -0700] rev 9744
Implement repositioning the OS-rendered IME with SDL_SetTextInputRect on Windows.
Tue, 16 Jun 2015 00:57:45 -0400 Haptic/Linux: Keep track of device numbers properly to track duplicates.
Ryan C. Gordon <icculus@icculus.org> [Tue, 16 Jun 2015 00:57:45 -0400] rev 9743
Haptic/Linux: Keep track of device numbers properly to track duplicates. Fixes Bugzilla #3014.
Sun, 14 Jun 2015 19:26:20 -0700 Fixed style
Sam Lantinga <slouken@libsdl.org> [Sun, 14 Jun 2015 19:26:20 -0700] rev 9742
Fixed style
Sun, 14 Jun 2015 19:25:12 -0700 Fixed bug 3012 - Android accelerometer joystick axis values overflow when values from Android are larger than gravity
Sam Lantinga <slouken@libsdl.org> [Sun, 14 Jun 2015 19:25:12 -0700] rev 9741
Fixed bug 3012 - Android accelerometer joystick axis values overflow when values from Android are larger than gravity Magnus Bjerke Vik This causes issues when for instance using the joystick API to make an Android phone rotate an object by rotating the phone. When the absolute value of an axis reported by android is larger than earth gravity, SDL will overflow the Sint16 value used for joystick axes, causing sporadic movements when close to the gravity. Just holding the phone so that e.g. Y points directly upwards will make it unstable, and even more if you just tap the phone gently from below (increasing the acceleration). More detailed: SDLActivity gets the accelerometer values in onSensorChanged and divides each axis by earth gravity. SDL_SYS_JoystickUpdate takes each of the axis values, multiplies them by 32767.0 (largest Sint16), and the casts them to Sint16. From this you can see that any value from Android that exceeds earth gravity will overflow the joystick axis. A fix is to clamp the values so that they won't overflow the Sint16.
Sun, 14 Jun 2015 19:21:13 -0700 Fixed bug 2953 - Crash due to a bad cleanup in the SDL_SYS_HapticQuit function
Sam Lantinga <slouken@libsdl.org> [Sun, 14 Jun 2015 19:21:13 -0700] rev 9740
Fixed bug 2953 - Crash due to a bad cleanup in the SDL_SYS_HapticQuit function Technically this is caused by the haptic devices not being closed at quit time, which we need to fix anyway, but this is a bandaid for now.
(0) -3000 -1000 -300 -100 -10 +10 +100 +300 tip