Hi,
My laptop's monitor is a 13" with a 16:9 aspect ratio and a 3200x1800 resolution. As you can see[1] the EDID[2] is perfectly correct. QT computes the scaling factor using a formula like this: scaling_factor=qRound(yourDpi/96) This is far from ideal in my opinion, because if we want to scale to 96 logical PPI it means that on a 13" 16:9 screen we want to target a 1088x612 logical resolution. In fact qRound(282.42/96) computes a 3x scaling factor for my laptop, which is not a scaling factor that *anybody* would like to have (except maybe my old grandfather with poor eyesight). In fact a logical resolution of *less* than 1088x612 (it's lesser because qRound actually rounded up the value) is too tiny even for a 13" screen and people would prefer a 2x scaling factor instead, which would give you a logical resolution of 1600x900 (instead of an useless 1067x600).

I have some suggestions to improve the current scaling algorithm:

1) Always round down. With your current formula a 145ppi screen gets scaled by a 2x factor, while every other toolkit (GTK3 for example[3]) starts scaling at 192ppi. This is also what people expect and it would return the correct 2x scaling factor for my laptop. So the formula should be scaling_factor=qRoundDown(yourDpi/96)

2) Expose an environmental variable to allow people to choose which logical PPI they want to target. Such a variable should default to 96ppi. In fact some people might have poor eyesight or might desire a different viewing distance and thus they would like to target a different logical PPI. So the formula should be scaling_factor=qRoundDown(yourDpi/EnvVar)

The current algorithm does not work well (this is a matter of fact), question is if we can improve it. I thought alot about it and I can't see any negative impact with my proposed solution, but obviously I would like to hear the opinions from other developers.

Niccolo' Belli

[1]http://www.edidreader.com/
[2]https://bpaste.net/show/e2f39fad5f5e
[3]https://wiki.gnome.org/HowDoI/HiDpi
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to