bilgincoskun / brogue-android-port

Brogue Android Port
GNU Affero General Public License v3.0
63 stars 3 forks source link

Blank screen after loosing focus #6

Closed konwulsja closed 5 years ago

konwulsja commented 5 years ago

Basically, if I switch to browser and back to app, all I get is a blank screen. The app is "frozen".

I'm on a 1Gb RAM device, so that might be the reason, however I loose any progress in game and need to start over.

Best regards!

brogue-175-with-fixes-v0.9

bilgincoskun commented 5 years ago

What is your Android device and version? It seems it is a persistent problem with older versions. I tried several potential solutions, but only changing to software rendering solved the problem. The issue with this is software renderer is really slow compared to other options. Another option would be preventing device to sleep, but both are suboptimal.

konwulsja commented 5 years ago

Moto G3 (2015) Osprey, running LineageOS (Android 7.1.2)

After further investigation I've discovered, that if I switch back (after loosing focus) for the first time, the screen is blank. But if I switch back and forth again it is visible and I can progress in game. Any further switching is from then on unaffected and it works as intended.

However, if I run something resource intensive in the foreground, the game gets "killed" in the background, and I'm greeted with the start screen, loosing progress. Which is understandable considering the device has 1Gb RAM.

Turns out it's not much of an issue after all and can be easily avoided.

Edit: I do not loose the progress, my apologies. I can Continue the game, because it's saved in a file. Again I am sorry for rushing with conclusions.

bilgincoskun commented 5 years ago

Actually, I and at least one other user had the same issue: https://www.reddit.com/r/roguelikes/comments/d2xtno/new_android_brogue_port/ezxni6a/ So although there are workarounds in some devices/situations, it icertainly is an important bug. I doubt it's a memory problem since the memory usage is low (l mean very low). The problem stems from two things: 1- Android device may keep or discard textures during suspension, so they need to be recreated. 2- When I debugged the app I noticed for some reason SDL does not register input after resuming.(and that is the important part of the problem)