milkytracker / MilkyTracker

An FT2 compatible music tracker
http://milkytracker.github.io/
Other
1.68k stars 159 forks source link

Scaling UI does not work / UI barely readable on High DPI display #258

Open cederom opened 2 years ago

cederom commented 2 years ago

Hello world and thank you for this marvelous program :-)

That I find a bit disturbing is the low readability of the UI. I know that I can change resolution.. but setting native resolution of my screen (i.e. 1920x1080 or 2560x1400) and scaling up the components does not seem to work - components have exactly the same size but corrupted/pixeled rendering.

In perfect situation I would like to have application rendered in my screen native resolution so it gets best display quality and just scale components (i.e. 1.25, 1.5 etc).

Please fix the High DPI display output. Just as you can scale GTK/Qt/EFL components with QT_SCALE_FACTOR/QT_FONT_DPI/GDK_DPI_SCALE/ELM_SCALE.

Thank you for considering :-)

44100hertz commented 2 years ago

image First thing, you can scale the UI this way.

Second thing, the application on Linux allows me to resize the window which re-scales the canvas. I am not sure if yours does the same.

cederom commented 2 years ago

Thank you @44100hertz for quick response :-)

Your hints are true and also work for me when using Windowed Mode, but that does not seem to work in Full Screen Mode (i.e. GUI scaling).

Also tracks takes always ~75% of the screen area no matter what scaling / resolution is used :-)

I can use MilkyTracker in window for now, but it would be also nice to have it working in FullScreen Mode with scaling and native screen resolution so the buttons are bigger :-) :-)

I mean GUI layout seems always static, I can only change resolution, while scaling simply increases resolution of the full render, but components size stays the same small.

Here is an example compared with SoundTracker using GTK where GDK_DPI_SCALE allows me to scale each component :-)

image

cjbayliss commented 2 years ago

Note for anyone who found this from a search:

It seems that the scaling doesn't work how one might expect. Instead take the window size x by y and divide it by the amount you want to scale by e.g. 2 (sadly only integers), set the custom resolution to that amount, and set the scaling to 2 (or the integer you divided by.) Example:

Now the buttons etc are a reasonable size, and the result it somewhat clear.

It's also worth noting that because my tiling window manager forces the window to conform to 1914x1045, and half of that is 957x522.5 milkytracker isn't as sharp as it could be. A solution is to set the scaling higher, but I imagine(?) this uses more GPU resources? IDK. Anyway setting the scaling to 8 makes the window very sharp.