Theo47 / Depressurizer

Depressurizer is a program that helps you categorize your steam games.
GNU General Public License v3.0
590 stars 37 forks source link

[Feature / Bug] Support High DPI #12

Open ppriest opened 8 years ago

ppriest commented 8 years ago

With Windows 10, use of High DPI is much greater. Not fixing this means the app is very blurry as Win10 will render at 100% and scale (w/ anti-aliasing).

That means fixing the layout to scale proportionally, and adding the appropriate metadata to the manifest.

Testing this with the 0.6.3.0 release (and rallion's last release) at 125%, it's mostly fine, except for the main window, at the bottom of the right window - the category picker doesn't render and the Add/Remove Game buttons and hidden/favorite checkboxes are cut off.

Theo47 commented 8 years ago

I am not familiar with high dpi so i dont know what exactly is needed and how much work it would be. I also am lacking a high dpi display so cant test it either.

I guess i'll take a look at some tutorials and if it is something easy that doesnt need testing ill add it.

EnemyWithin commented 8 years ago

How is this in the new version? Maybe a screenshot to show the problem?

ppriest commented 8 years ago

Out of the box, this is how the dialog and main window looks when display scaling is set to 150% (you can change this yourself on Windows, but unless you have a decent native res you['re not going to fit much on-screen): image

It's scaled with anti-aliasing because there's no calls, or metadata in the manifest, to tell Windows that the app correctly handles scaling.

If I right-click the executable and check 'Disable display scaling on high-DPI settings', then relaunch, then Windows will assume the app knows how to scale controls - this can lead to layout problems where things overlap, or don't scale proportionally. Dialogs might not fit all the controls etc.. 0.6.3.0 wasn't too bad, but 0.7.0.x is completely unusable when enabled at 150% due to all the new theme elements:

image

To fix, you would need to scale all of the elements based on the scaling factor and test thoroughly.

It's not that big of a deal and probably a lot of work - but high-dpi displays are becoming increasingly common and any apps which don't scale well stick out like a sore thumb (including some of MS' own control panels for example).

thefunkygibbon commented 8 years ago

+1 for this. loving the fact that this app is being worked on, but the theme is causing these scaling issues. thanks for picking it up though.

mvegter commented 7 years ago

@ppriest Could you confirm that this is still an issue for you (assuming you are using the latest version)

ppriest commented 7 years ago

@mvegter - Yes, the problem as described remains exactly the same in 0.7.3.0 at least. It won't go away without some work :-)

It's only a problem if you dislike the ugly anti-aliased scaling.

Theo47 commented 7 years ago

It should scale better now at high dpi. eeac81e9bfca28de238acf318d7e7941e2cd33a1 At 150%, it now looks like this.

screenshot 2017-08-23 19 49 05

The top part will be harder to fix since it is drawn by MaterialSkin rather than being drawn directly by Depressurizer.

p.s: Since it still has issues, i have not declared it as dpi-aware. So to see any changes you'd need to right-click the executable and check 'Disable display scaling on high-DPI settings' (like you said above).

ppriest commented 7 years ago

@Theo47 That's cool, I appreciate the effort. I take it that 'MaterialSkin' is a 3rd-party component that doesn't advertise hdpi support?

Theo47 commented 7 years ago

Yeah, MaterialSkin is what we used for theming the main form.