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

  • Taracta - Friday, April 18, 2014 - link

    I could say the IBM started the high density displays with the T220/T221 4K 22" monitors in 2001 with a ~200 DPI but I won't because these were not followed up on like the Sony laptop display you mentioned. I believe that it only counts when you follow up on it and make it part of your product portfolio, which is what Apple did, which forced the others to do it too.

    So I give credit to Apple and not IBM, for them mainstreaming HiDPI by requesting HiDPI panels from their ODMs suppliers. This in turn allowed the others to have access to the technology but Apple was the leader in mainstreaming it.
  • Gigaplex - Wednesday, April 16, 2014 - link

    Apple didn't make the panels, they bought them off suppliers that were making them anyway. Often those panel suppliers were also Android manufacturers, so don't try to tell us that those screens wouldn't have made it to Android without Apple.
  • yasamoka - Wednesday, April 16, 2014 - link

    Hint, those displays were MADE for Apple. Upon Apple's request. Nobody cares who made the displays, they didn't appear out of thin air and then Apple went: OH PERFECT, this is a perfect fit!
  • psyq321 - Thursday, April 17, 2014 - link

    Sony introduced a 4" 1024x600 display (296 PPI) in 2007 --> look up Sony Vaio UX
    Sony also introduced a 13" 1920x1080 display (170 PPI) in 2010 --> look up Sony Vaio VPC-Z

    So, no, Apple did not invent high DPI screens. Apple invented a marketing name for them ("Retina"), though.

    By the way, Apple's notebook displays were low-DPI garbage before Retina Macbook Pro. I switched to Retina Macbook Pro since Sony stopped innovating and retired Vaio Z and Apple finally decided to produce a real high-end notebook. I could not even think of this before Apple decided to put a decent resolution display in their notebook.
  • psyq321 - Thursday, April 17, 2014 - link

    Before I switched to 15" Retina Macbook Pro, I had all generations of Sony Vaio Z.

    Sony switched to 13" Full HD panels in 2010. Two years before Apple's switch to "retina" screens in their laptops. Before Apple Retina Macbook Pro, the DPI of their notebooks was pathetic.

    Also, Sony had Vaio UX with 1024x600 4" screen in 2007.
  • munim - Tuesday, April 15, 2014 - link

    These problems are why I won't be upgrading from my 96 DPI 24 inch monitor for the foreseeable future.
  • jhoff80 - Tuesday, April 15, 2014 - link

    "The Surface Pro’s on-device screen is set at 200% scaling which is necessary to make that resolution work on a 10” screen"

    No, it isn't. Out of the box, the Surface Pro and Surface Pro 2 are set to 150% scaling on their own displays. And for what it's worth, 125% scaling is completely usable as well - I've used it that way since release of the Pro 1 (since upgraded to the Pro 2).
  • bountygiver - Tuesday, April 15, 2014 - link

    Exactly, even with only 125%, I have no problem navigating most legacy applications with touch.
  • Brett Howse - Tuesday, April 15, 2014 - link

    Sorry about that - fixed now.
  • darthrevan13 - Tuesday, April 15, 2014 - link

    "Few high resolution devices"? That's no excuse! You can move the slider up to 150-200% even on your current low res display and then things will have to get 1.5-2 times bigger. It's not hard at all! I am a developer and I can't understand that. Microsoft released the API for this at the start of 2007, that makes 6 years not including this one.

    Most of all Adobe has no excuse at all! They should offer all of their next version apps which scale correctly for free!

Log in

Don't have an account? Sign up now