The Old Way - Windows XP Scaling

As mentioned, Windows XP does have support for higher density displays, but the experience is rarely very good. Changing the DPI settings in Windows XP increases the font size and OS elements, making everything larger on the screen. It works up to a point, but if the system DPI setting is too high, many applications have issues. Even in XP, there’s an API that allows a developer to check what the fonts are set at and scale their forms as needed to make it work with that ratio of font. However, if an application doesn’t check the font DPI level, there are often problems: text boxes overlap UI elements, form fields have text spill out the top or bottom of the field, and other nasty ugliness.

   

Even the OS doesn’t scale very nicely. The minimize and close buttons become very large, title bars are very text heavy in look, and system tray icons are simply scaled up in size giving an aliased and blurry look to them. It’s technically a workable solution, but without extensive developer buy-in, it likely causes as many (or more) problems than it solves.

But Windows XP is now old news, and due to the low PPI displays of the time, it was generally not an issue. DPI scaling in XP was normally used if a person felt the text on the screen was too small, but in almost all cases a better solution was to simply lower the resolution of the monitor, even if it introduced blurriness to the LCD image.

A New Way - DPI Virtualization

Windows Vista introduced a new concept for dealing with applications that are not DPI aware – DPI Virtualization. Below 120 DPI the system would continue to utilize the XP scaling algorithm, but when the DPI settings in Windows are set above 120 DPI, DPI Virtualization is enabled. Any DPI-unaware application that request the DPI setting from the operating system with DPI Virtualization enabled are simply told that the DPI is set at 96 DPI – the base level. Windows then renders the application off screen and then dynamically upscales the application to whatever DPI setting is selected by the user.

While this certainly fixes the issue with fonts falling out of text boxes, it introduces some blurriness to the application. This is not an ideal situation, since the user experience is somewhat compromised. To get around this, Microsoft developed an API to declare that the application is in fact DPI aware on its own. Developers can call SetProcessDpiAwareness to declare that their application is DPI aware, and if so, Windows will not perform any scaling of the application. It’s then up to the application developers to decide how best to handle “non-standard” DPI settings.

Scaling Windows - Introduction Where It All Falls Apart
Comments Locked

114 Comments

View All Comments

  • Hrel - Monday, April 21, 2014 - link

    "but in almost all cases a better solution was to simply lower the resolution of the monitor, even if it introduced blurriness to the LCD image." - I worked at a local computer store back before Vista came out, and long after when we were still selling mostly XP and the client base was largely senior citizens. That quote was the bane of my existence. "Great, now they can see what they're looking at and my eyes are about to explode from the strain of looking at this shit image".
  • Silma - Tuesday, April 22, 2014 - link

    A few remarks:
    - IBM offered high dpi monitors years before Apple did.
    - the dpi scaling isn't per monitor in Windows 8.1 for the user. Windows 8.1 somehow adapts the scaling you choose for monitor A to monitor B. As a user of a 15.6 3200*1800 laptop and an external 2560*1440 27' monitor I can guarantee you the results are absolutely subpar. I am praying for the day where Windows recognizes I know better than it does what dpi scaling I want and let me specify individually dpi scaling per monitor.
    - As for Adobe it is a disgrace. If you want to feel how many CS customers are pissed do a search for dpi scaling in their support forum. The official answer is that it is all Microsoft's fault and they are working with them. However 1. They refuse to give any timeframe. 2. It may be that the API needs fine tuning but by and large the problem lies with bad old programming from Adobe. There are many many desktops applications that scale perfectly with Windows 8/8.1 including some Adobe applications. To me it is unacceptable that PhotoShop still hasn't been fixed despite the astronomical upgrades prices (and now the cloud subscriptions extortion). That's why I switched to gimp, which sucks as much scaling-wise, but at least it's free.
  • Netscorer - Friday, May 9, 2014 - link

    My Windows 8.1 laptop alternates as desktop or HTPC, driving 3 very different monitors: the low res laptop built-in display, high-res Desktop monitor and 1080P huge 65'' TV screen. I am sick and tired tweaking resolution and scaling settings every time I connect to different monitor. I wish MS would allow to simply remember monitor profiles and automatically switch to the best settings. Maybe it's there somewhere but I have not found it yet.
  • drgadgetz - Sunday, February 1, 2015 - link

    Just had a new Toshiba P50T - hi-res 3200x2160 laptop. As an app developer, I find it disturbing that the UI scaling is not adapted by most of the developer tools like SOAPUI and Adobe CC Applications. I also find it annoying that large corporations like Adobe will release massive distributions of their software without testing their products with the mainstream technologies - in which UI scaling is a mandatory. Yes, they tried to solve the UI scaling of Photoshop, so why dont they do it for all their product offerings that I pay a subscription for in advance for a year. If they have resolved it then why not implement it on all their products.
    Another fault I find in the new hi-res laptops is the ability to be backward compatible. Could it be because the new Windows 8.1 is not completely tested as well.
    I guess the only good news to these big UI Scaling fiasco, is that this companies like Adobe can use the help of some of us expert developers in fixing their UI problems. And maybe so that they can speed up their releases and bug fixes.
    Common now, someone in Executive management listen to the people in these forums...Get this fix now or Donald Trump will tell you, ' You're FIRED!'.

Log in

Don't have an account? Sign up now