DPI curve doesn't work as intended?

My UMG widgets are set to a custom 720x1280 resolution as shown in the image provided.

I’ve adjusted the DPI scale using shortest size with the following keys.

480: 0.667
720: 1
1080: 1.5
1280: 1.778
1440: 2
1600: 2.222

I’ve tested scaling to work properly on the following devices:
Moto E 2014: Motorola Moto E specs
Moto X 2014: http://www.phonearena.com/phones/Motorola-Moto-X-2014_id8897
LG G2: http://www.phonearena.com/phones/LG-G2_id7969
LG G3: http://www.phonearena.com/phones/LG-G3_id8347

The problem I’m having is that on some devices scaling is too large, despite the device resolution being handled in the DPI curve. Users are seeing the borders of images cut off.

I’ve received reports as scaling to be too large on the following devices:
Samsung Galaxy S2: http://www.phonearena.com/phones/Samsung-Galaxy-S-II_id5106
Nexus 10: http://www.phonearena.com/phones/Google-Nexus-10_id7551
Samsung S5 Mini: http://www.phonearena.com/phones/Samsung-Galaxy-S5-mini_id8573

I suppose perhaps I’m missing something, but after quite of a lot of searching and testing, and asking around on multiple help sources no one can seem to figure it out.

Hello Distul,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a detailed set of steps in order to reproduce this issue on our end?
  3. Have you tried using a master widget containing a scale box as a workaround?

Hello,

I added another screenshot previously - or so I thought to show you what is happening between devices. Looks like I’m getting a “No such upload” error when I try again. I uploaded the image here: http://firstgeargames.byethost7.com/repair/comparison720.png

You’ll notice the screenshot taken from the S5 Mini is in a resolution smaller than 720(471w to be exact), despite the screen being 720x1280.

To answer your questions…

1: I don’t have any of the problem phones to test on so starting a new project seems pointless. I’ve had the S5 Mini user try with scaling off since the widget sizes were designed for 720p phones and what they saw was an even more blown up image. Most of my widget components are anchored to the center.

2: Make a widget using the custom size of 720x1280 then set the DPI scaling as follows -
480: 0.667

720: 1

1080: 1.5

1280: 1.778

1440: 2

1600: 2.222

Test on one of the phones I mentioned that isn’t scaling properly.

3: When you say master widget I assume make a widget that always overlays the screen and add other widgets to it, which no I have not. I’m assuming I would have to dynamically get the screen resolution then adjust the scalebox using the results? This is assuming resolutions report back properly – I still don’t understand why the S5 Mini is taking screen captures in 471w resolution when all my other HD devices take them at expected resolution(720, 1080, 1444, so on).

First to answer your question about the workaround. I have provided an example below. As for getting the screen resolution, this will not be needed as long as the scale box is the root of the widget.

Example:

Here you can see a menu that has been set up with an image, a couple of buttons and some text. These if set up properly will maintain their relative positions as the size of the screen changes (from device to device in this case).

Here is the widget that is to be the master widget in the example. As you can see I have set the scale box up as the root of the widget. This will allow the scale box to re-size so that it becomes the size of the screen. I am using the scale to fit setting so that everything maintains the correct proportions and takes up as much space as possible without clipping or stretching. To get a better idea of how this works you can test it using a new editor window by clicking and dragging the edges to see how it reacts.

To address the current use of your DPI curve. I ran a few tests after following the steps provided. I found that clipping occurred on multiple devices even some that were mentioned to be working on your end. I believe that you may need to adjust your curve to accommodate the variants in resolution.

I’ll look into the scalebox if I continue to have issues, but how could my curve be wrong? After following the documentation it’s my understanding that it was done correctly.

If my widget screen size is set to 720x1280 wouldn’t a 720x1280 screen be a scale of 1? while a 1440x2560 would be a scale of 2? Because that’s how I setup my curve, going all the way down to 470 and up to 1600.

If that is correct, I believe the resolution is being read incorrectly - or something of that nature. Since the S5 Mini is a 720 screen but took screen captures in 471 – perhaps my game was trying to scale to 720 when in actual due to DPI the resolution might be smaller? Just stabbing in the dark.

Followup:

I got some test results back from the S5 Mini user. They are seeing the layout as I saw it in the viewport with a 480x800 resolution. My conclusion is that their phone does not actually display at 720p, for whichever reason. Thus scaling might actually be working properly.

The problems with clipping that I was experiencing I believe was related to the anchor points. After adjusting some of the points the menus were more easily accessed; not all were perfect but acceptable. I’m assuming I’ll have to tamper with anchor points again to perfect the display.

I did try to wrap everything as well but images were still too big in many cases.

CONCLUSION: problem is within the anchor points, not the DPI curve. Some of the phones which declare themselves as 720p don’t seem to actually utilize a 720x1280 resolution but one much smaller.

Hello Distul,

It sounds like you have found a solution to your issue. I am going to mark your last comment as an answer. If this is not the case please feel free to reopen the thread by posting a reply and I will be happy to assist you further.