Splash screen transition not smooth

I have made an Android app that uses a splash screen I have set up with the guide supplied in the docs and everything works as promised. However I am unsatisfied that the “fade out” animation at the end of the splash screen is not smooth but is rather low fps. Using build 2013.1100. Haven’t tested iOS as I don’t have an iDevice. Can this low “fps” on the splash screen be fixed?

Note: My actual app runs at a buttery smooth 60 fps.

What are you using for a transition?

How big is the screen?  Moving around a bunch of 64x64 pixels is much different than trying to fade a multi-megabyte full screen retina sized image.

Hey Rob, I am not using a transition. In fact I do not know if the image is a Corona display object because my splash screen is using this guide. http://docs.coronalabs.com/guide/distribution/buildSettings/index.html#launch-images

I simply include “default-landscape.png” and Corona loads that up on my app while it loads internal Corona binaries, and only then transitions out of the splash, and enters my main.lua file. 

I have no clue how Corona handles the image, but it is relatively modest at 1000*600 pixels. This should not be the reason for the choppy performance because I have similarly sized images in my core gameplay which is at 60 fps as I said before. I have no knowledge of OpenGL, but perhaps the “launch image” is not an opengl object this making it hard to get smooth performance?

Edit: I see that the  1000*600 is not one of the “recommended” sizes. I assume those are the recommended sizes just to deal with scaling across multiple devices and not something to do with performance?

I realize this was a somewhat recent post but I’ll bump it as it got buried with some other posts :slight_smile:

The splash screen on Android starts to fade out after your “main.lua” file has been executed.  The fade effect will likely not be smooth if your Android device has a single core CPU and you are rendering a lot of content and at 60 FPS.  This is because the splash screen and your OpenGL content are rendered from 2 different threads and they are both competing for the device’s CPU time… and the OpenGL thread is winning.  If you use the audio library and play music at start up, then that competes for the CPU’s time as well since audio runs on its own thread as well.

There’s really not much we can do on our end to improve this, but you can change things on your end to reduce the CPU load on app startup.  For example, you can offset the load via a timer after startup by playing music 1 or 2 seconds later… around the time the splash screen fades out.  Rendering less content on app startup would reduce the load as well.

That said, in my opinion, the Default splash screens should only be used for simple business apps.  Apple never intended for them to be splash screens and were intended to be a screenshot of the app to give the appearance of the app loading quickly.  Ideally, if your app has a lot of things to load on startup, you should really create your own splash screen via our display API.  This way you can display load progress by loading all content via a timer… and plus it gives you absolute control of your own splash screen.  You should set the Default PNGs to pure black in this case, which would quickly fade to your splash screen.

What are you using for a transition?

How big is the screen?  Moving around a bunch of 64x64 pixels is much different than trying to fade a multi-megabyte full screen retina sized image.

Hey Rob, I am not using a transition. In fact I do not know if the image is a Corona display object because my splash screen is using this guide. http://docs.coronalabs.com/guide/distribution/buildSettings/index.html#launch-images

I simply include “default-landscape.png” and Corona loads that up on my app while it loads internal Corona binaries, and only then transitions out of the splash, and enters my main.lua file. 

I have no clue how Corona handles the image, but it is relatively modest at 1000*600 pixels. This should not be the reason for the choppy performance because I have similarly sized images in my core gameplay which is at 60 fps as I said before. I have no knowledge of OpenGL, but perhaps the “launch image” is not an opengl object this making it hard to get smooth performance?

Edit: I see that the  1000*600 is not one of the “recommended” sizes. I assume those are the recommended sizes just to deal with scaling across multiple devices and not something to do with performance?

I realize this was a somewhat recent post but I’ll bump it as it got buried with some other posts :slight_smile:

The splash screen on Android starts to fade out after your “main.lua” file has been executed.  The fade effect will likely not be smooth if your Android device has a single core CPU and you are rendering a lot of content and at 60 FPS.  This is because the splash screen and your OpenGL content are rendered from 2 different threads and they are both competing for the device’s CPU time… and the OpenGL thread is winning.  If you use the audio library and play music at start up, then that competes for the CPU’s time as well since audio runs on its own thread as well.

There’s really not much we can do on our end to improve this, but you can change things on your end to reduce the CPU load on app startup.  For example, you can offset the load via a timer after startup by playing music 1 or 2 seconds later… around the time the splash screen fades out.  Rendering less content on app startup would reduce the load as well.

That said, in my opinion, the Default splash screens should only be used for simple business apps.  Apple never intended for them to be splash screens and were intended to be a screenshot of the app to give the appearance of the app loading quickly.  Ideally, if your app has a lot of things to load on startup, you should really create your own splash screen via our display API.  This way you can display load progress by loading all content via a timer… and plus it gives you absolute control of your own splash screen.  You should set the Default PNGs to pure black in this case, which would quickly fade to your splash screen.