Scaling Windows - The DPI Arms Race
by Brett Howse on April 15, 2014 2:00 PM EST- Posted in
- Operating Systems
- Windows
- Microsoft
- Windows 8.1
- High DPI
For several years now, mobile device manufacturers have been in a race to push the pixel density of mobile devices higher and higher. The race began with the iPhone 4 “Retina” display – an at the time impressive 330 pixels per inch (PPI) 960x640 3.5” display. Keen to trump the Retina moniker, makers of Android devices soon churned out devices with displays with PPIs of 440 and higher, with the current push to 2560x1440 displays in 5.5” or smaller sizes which yield an amazing 500+ PPI. Next up was a similar race in the tablet space, with 1280x800 soon giving way to 2560x1600 displays, but this time in a 7” to 10” form factor.
All the while, the lowly PC and Mac chugged along with displays that could hardly be called impressive. The standard LCD display of just a few years ago would hover somewhere around 96 PPI, and it was often lower. A 17” LCD with a resolution of 1280x1024 wasn’t an accident – it was exactly 96 PPI, which is what the PC and Mac would render at by default. High resolution laptops would barely squeak past the 120 PPI range. These lower densities – though decent for the longer view distances of desktop monitors – have until recently not been improved on, highlighting the gap in progress between the two devices categories.
Further complicating matters, desktops and mobile devices have always differed in how they use resolution when it is increased. On a mobile device, higher resolution has been used to increase image quality, while higher resolution displays on a desktop were released as part of physically larger displays and used to increase the amount of work you can do. Mobile devices have had one big advantage: they are backed by new operating systems that are built for higher resolution out of the box, and there is no back catalog of legacy applications to deal with. Phones and tablets can easily deal with high resolution displays, but for the PC and Mac, things are not so simple.
In 2012, Apple launched the 15.4” Retina MacBook Pro. At the time it was far and away the highest PPI laptop available. It took a lot of work for Apple to ensure a high resolution display was usable because for really the first time, increased resolution on a computer was used to improve image quality rather than simply to increase screen real estate. How they achieved this was nicely explained by Anand back in 2012. However, OS X wasn’t perfect; certain applications didn’t behave as well as they should have, which resulted in some applications having blurry text or other UI issues. Still, Apple was able to make the Retina display work, and for the applications that were Retina aware, the result was a fantastic experience. If developers updated their applications, their clients could enjoy the high resolution clarity that had already taken over the mobile space.
But what about Windows? Windows Vista, and then Windows 7, both had support for higher DPI (Dots Per Inch) settings; even lowly Windows XP had some support for DPI scaling. The main issue was that there was no market force pushing for High DPI (in the operating system and APIs, it’s referenced as DPI as opposed to the PPI of a display) like there was with the Retina MacBook Pro. OEMs were happy to sell consumers low cost, low resolution 1366x768 TN panels for years. If people don’t demand better, most OEMs are unlikely to provide them better than the basics in such a low margin industry.
High Resolution Laptops | ||||||
Brand | Model | Screen Size | Screen Resolution | Pixels per inch | ||
Acer | Aspire S7 | 13.3" | 2560x1440 | 221 | ||
ASUS | Zenbook UX301LA | 13.3" | 2560x1440 | 221 | ||
Dell | XPS 11 | 11.6" | 2560x1440 | 253 | ||
Dell | XPS 15 | 15.6" | 3200x1800 | 235 | ||
HP | Spectre 13t-3000 | 13.3" | 2560x1440 | 221 | ||
Lenovo | Yoga 2 Pro | 13.3" | 3200x1800 | 276 | ||
Lenovo | X1 Carbon | 14" | 2560x1440 | 210 | ||
Panasonic | Toughpad 4k | 20" | 3840x2560 | 231 | ||
Razer | Blade | 14" | 3200x1800 | 262 | ||
Samsung | ATIV Book 9 | 13.3" | 3200x1800 | 276 | ||
Toshiba | KIRAbook | 13.3" | 2560x1440 | 221 |
What changed was a combination of High DPI tablets and the Retina MacBook Pro putting pressure on the PC industry to offer something better. It has taken a long time, but finally quality displays are something that are important enough to consumers for every single major OEM to now offer at least one, if not multiple, devices with High DPI.
114 Comments
View All Comments
pixelstuff - Tuesday, April 15, 2014 - link
Not to mention, apparently Adobe has created a HiDPI interface for OSX. So it's not exactly like they are having to reinvent the wheel on Windows.jamyryals - Tuesday, April 15, 2014 - link
Most developers are doing what was scoped for a project. DPI scaling was not very important for many years. It was difficult to assign resources to a problem when it was an issue that few encountered. Believe it or not, but most decisions in development are based on priority and not laziness. Go ahead and keep shaking your fist at them though, you'll show 'em!eddman - Tuesday, April 15, 2014 - link
Are you one of such developers, because I don't see how anyone can defend such practices.There are these things called guidelines. You don't need to have project "scopes" or resources to follow them. If a developer doesn't care to follow such basic things, then he/she doesn't deserve any respect.
npaladin2000 - Tuesday, April 15, 2014 - link
When your project manager says "don't bother programming for DPI scaling, we don't have the time, and we have to meet this deadline in order to get paid on time" then you skip the frigging DPI scaling. Get it?eddman - Tuesday, April 15, 2014 - link
They would actually demand it?! Is it really that hard to code a DPI-aware program? I have a hard time believing the latter.If it is easy and yet they still ignore, then it is even worse than I thought.
inighthawki - Wednesday, April 16, 2014 - link
Again, I see you don't work in the software industry. Every feature takes time. If that time is not in the current milestone budget, it gets cut. So yes, it happens, and your project manager absolutely can demand you not work on it.Alexey291 - Wednesday, April 16, 2014 - link
Sometimes I wonder if any of the people here have ever worked in ANY industry let alone as developers.Every project in the damn world has a set of priorities and you don't "just decide" to throw something in unless you're told to.
Gigaplex - Wednesday, April 16, 2014 - link
Yes, it really is that hard to code DPI-awareness into a Win32 application. The API is horrendous.UsernameAlreadyExists - Wednesday, April 16, 2014 - link
Thus, since around 2007 (2006-2008?) writing Windows applications with WPF has been possible.."Windows Store apps require far less work from the developer in order to achieve this scaling. The app doesn’t have to be DPI aware, because by default all applications automatically are. Instead, things such as XAML layouts and SVG graphics allow the apps to be rescaled completely by the operating system."
XAML, since 2008 or so has allowed the programs to be rescaled completely by the operating system. Might have been nice to mention this in the article.
Klimax - Thursday, April 17, 2014 - link
If it is hard for you and like, then don't do UI yourself and use bloody framework or toolkit.Anyway:
http://msdn.microsoft.com/en-us/library/windows/de...
Tutorial:
http://msdn.microsoft.com/en-us/library/windows/de...
And I am sure similar docs were there for all those years...