mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
Simple Directmedia Layer
33ed20fafa
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. |
||
---|---|---|
acinclude | ||
android-project | ||
build-scripts | ||
cmake | ||
debian | ||
docs | ||
include | ||
premake | ||
src | ||
test | ||
VisualC | ||
VisualC-WinRT | ||
visualtest | ||
Xcode | ||
Xcode-iOS | ||
.hgignore | ||
Android.mk | ||
autogen.sh | ||
BUGS.txt | ||
cmake_uninstall.cmake.in | ||
CMakeLists.txt | ||
configure | ||
configure.in | ||
COPYING.txt | ||
CREDITS.txt | ||
INSTALL.txt | ||
Makefile.in | ||
Makefile.minimal | ||
Makefile.pandora | ||
Makefile.psp | ||
Makefile.wiz | ||
README-SDL.txt | ||
README.txt | ||
sdl2-config.in | ||
sdl2.m4 | ||
sdl2.pc.in | ||
SDL2.spec.in | ||
TODO.txt | ||
VisualC.html | ||
WhatsNew.txt |
Simple DirectMedia Layer (SDL) Version 2.0 --- http://www.libsdl.org/ Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games. More extensive documentation is available in the docs directory, starting with README.md Enjoy! Sam Lantinga (slouken@libsdl.org)