team-phoenix / Phoenix

A multi-system emulator and library manager designed to be both powerful and easy to use.
http://phoenix.vg
GNU General Public License v2.0
376 stars 40 forks source link

Windows: System scaling setting not respected #319

Open MarcAlx opened 7 years ago

MarcAlx commented 7 years ago

In order to not have tiny font size on Windows 10 with a high dpi monitor, users scale up font size like explain in this thread: http://superuser.com/questions/951199/windows-10-system-font-size-change

To understand the problem imagine reading non scaled text on a 12" tablet with high dpi (2736x1824). Texts look very small.

The problem is that Phoenix scales at 100% even if user scaling is at 250%. Here's an example: vs

You could let user setup their scaling like in Stagelight: stagelight

Or maybe if available through API take care of user setup.

Depending on the way scaling is achieved scaled apps could look blurry on Window 10 (cf iTunes on Windows 10).

MarcAlx commented 7 years ago

PS : Screenshots were made on Surface Pro 4.

athairus commented 7 years ago

Font size is currently hard-coded. It's not read from the system at all.

I'm confused about how your setup works. You link to a StackOverflow question whose solution is to increase just the font size while also saying that you've set your scaling to as high as 250% using the slider in Settings->System->Display? Which one do you do? Or do you do both?

MarcAlx commented 7 years ago

I mentionned a superuser post to illustrate the setting I am using:

Settings > System > Display > Change the size of text, apps and other items

This setting not only increase font size, it scale the whole windows UI. This setting is used by most Surface Pro users as without it the UI is small and unreadable.

The problem I tried to explain is that while my UI is scaled at 250% using:

Settings > System > Display > Change the size of text, apps and other items

Phoenix launch well but scaled like if the setting was 100%, thus making texts in Phoenix unreadable (too small), like on the first picture of my post where Explorer.exe is readable and Phoenix not.

athairus commented 7 years ago

I also have a Surface Pro. I always had it at 125% and never really noticed it wasn't scaling until I took it to 175%. Now I see it. We'll get to this one eventually. Thanks for the report!

elBenko commented 7 years ago

Sitting on a 4k monitor myself, so I'm really hoping this gets fixed in a not so distant future build so i can try Phoenix without the use of a magnifying glass :)

But if it isn't yet fixed, then perhaps this link would be of interest: http://blog.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6/

so setting the enviroment variable: qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");

or setting: QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); right before you create the QApplication object.

I've got zero experience with the qt framework, but i figure either of those should do the trick, hopefully.