It seems UE4 has an inconsistent approach to safe zones/title-safe/action-safe areas for rendering content on-screen.
First, we have FDisplayMetrics::GetDisplayMetrics() which returns platform-specific title + action safe area information, which obides by PS4/Xbox One TRCs. This is used by the SSafeZone widget, as seen in UMG and the ShooterGameLoadingScreen example. However, on other platforms like Windows/Mac/Linux there is no default safe area information specified via this function which is a bit weird, especially if you’re using this safe area information to frame your HUD elements nicely and want your game code to be cross-platform without extra game-side effort.
Second, we have the DrawTitleSafeArea console command, which uses an FTitleSafeZoneArea struct inside UGameViewportClient and simply sets this to a hardcoded 90% X/Y in the UGameViewportClient constructor. This one appears to be used for calculating the safe zones for splitscreen viewports.
Shouldn’t these two be unified? I’d expect FTitleSafeZoneArea to pull its data from FDisplayMetrics::GetDisplayMetrics() rather than hardcoding at 90%, and I’d also expect Windows/Mac/Linux to have a sensible safe area set, for example the same as on Xbox One. It wouldn’t be difficult to set this up on the game-side, but it seems like something that should be set in the engine by default.
Thoughts?