iOS Landscape Splash Screen Distorted on iPad Retina

I’ve found that the landscape splash screen on iOS is distorted in the release version of 4.19 on the iPad retina. Basically, it rotates the image 90 degrees and then scales stretches it to the pre-rotation resolution. This happens even with the out-of-the-box Epic screens.

To fix it, in practice, I need to anticipate this distortion and do the opposite. But what’s really weird is that it only does this to the second splash image, not the one shown in the initial zoom in from the icon on launch. At launch the app cross-fades between the two, and the difference is very obvious and unprofessional (again, even with the epic ones). So, for example, the following two files need to be included for things to look right:

Default-Landscape-1336@2x.png - this needs to be normal

Default-Landscape@2x.png - this needs to be rotated 90 degrees and rescaled to the original resolution.

Crazy behavior, and not exactly easy to work around, as we deploy different apps for different customers. I’d like to create a script to just generate the screens based on a base image, but this sort of unpredictability really gets in the way. Anyone know if this is an outright bug, or if somehow it makes sense and I’m just not seeing something?

Same problem on my side. It seems to be a bug and I’m still investigating it. Will tell more if I get something.

I have the same issue, and it isn’t just in 4.19

Do let us know if you figure anything out. I mean, Epic ships Fortnite for this platform, and the splash screen seems fine with that, so it sure seems like they would have run into it.

Hi.

I’ve done a workaround by modifying source code.

The file is Engine/Source/Runtime/ApplicationCore/Private/IOS/IOSAppDelegate.cpp

The function is didFinishLaunchingWithOptions (Hope that’s the function name, didn’t know Objective-C syntax)

There are a bunch of if/else cases, that selects the right launch image. I was testing on iPad Pro 2 12.9 inch, and noticed that there is no case for it, so the last else branch was executed (By the way it executed wrong: height and width were 0).

So, I’ve changed the line 652 (ue4.19.2) from

else if (Device == FPlatformMisc::IOS_IPadPro_129)

to

else if (Device == FPlatformMisc::IOS_IPadPro_129 || Device == FPlatformMisc::IOS_IPadPro2_129)

and it worked like a charm.

So the generic steps for fixing this kind of errors are the following. Place a lot of UE_LOGs, like in every if/else branch, to print your device (The FPlatformMisc::EIOSDevice enum values can be found in Engine/Source/Runtime/Core/Public/IOS/IOSPlatformMisc.h) and orientation. Next launch your app on the device, close it, get the logs with IPhonePackanger and watch through them. Verify that the correct image and orientation are chosen and you should see your launch image. There may be simpler way to debug the application running on device (especially if you are using Mac for development). If you know one, you may use it (and teach me, too).

P.S. Still I’m not sure if this is a bug, or I’ve been doing something wrong, but anyway I’ve posted a bug report to Epic, but did not get any answer yet. Hope this kind of issues will be fixed in 4.20, as Fortnite’s launch image looks great.

Thanks for that Shh! The fix you came up with is the same that has been applied to Fornite (The fix just hasn’t made its way back into Main yet) - I’ll be sure to put in a ticket to ensure this fix is applied ASAP

Ticket can be tracked at: Unreal Engine Issues and Bug Tracker (UE-58748)

Hi guys, I have a question…

I changed that line in the source code but it didn’t fix the splashscreen issue, after i’ve edited and saved the .cpp file do I need to do something after that?

thanks

Hi.
I guess the engine should not be recompiled. So in general everything should work fine.
You may need to delete some intermediate data.

Ah ok, well the engine is from the epic games launcher, is it possible to compile this version of the engine?

Thanks

You should use the engine built from sources.
Or you may wait a bit, till 4.20 release

Ok cool, thank you for the help