Linked by Thom Holwerda on Wed 12th Mar 2014 22:55 UTC
Mac OS X

In my Mac Pro review I lamented the state of 4K display support under OS X 10.9.0. In my conclusion I wrote: "4K display compatibility under OS X is still a bit like the wild west at this point". Compatibility was pretty much only guaranteed with the ASUS/Sharp 4K displays if you cared about having a refresh rate higher than 30Hz. Even if you had the right monitor, the only really usable resolution was 3840 x 2160 - which ends up making text and UI elements a bit too small for some users. Absent were the wonderful scaling resolutions that Apple introduced with its MacBook Pro with Retina Display. Well it looks like that won't be the case for long, last night I got reports (thanks Mike!) that the latest developer build of OS X 10.9.3 includes expanded support for 4K displays, 4K/60Hz support for rMBPs and scaled resolutions below 4K.

So, OS X is essentially the only desktop operating system with proper HiDPI support, right?

Thread beginning with comment 584441
To view parent comment, click here.
To read all comments associated with this story, please click here.
dpJudas
Member since:
2009-12-10

1. scalable UI
1.1 scalable fonts
1.2 scalable icons
1.3 scalable menu decorations and controls
1.4 scalable window decorations and controls

It is a little bit more complicated than this. Mostly because developers are unable to properly test their UI on other devices than their own. Therefore the first step is ensuring that the application uses a sane and well defined coordinate system for placement. The following article shows a table at the top with different ways of doing this:

https://blog.qt.digia.com/blog/2013/04/25/retina-display-support-for...

The key is that you need device independent pixels, because then the UI will always have the same physical size regardless of what DPI the monitor may happen to have.

2. legacy application scaling

This is the truly hard part. There are roughly three reasons why Windows 7 fails so badly at scaling:

1) If an app is not declaring itself as DPI-aware the OS renders the app client area into a texture at 96 DPI and then upscales it.

The idea here is not bad, but Windows 7 does not upscale properly. A 24" 4K monitor is exactly twice the resolution of a 96 DPI display, and therefore 1 pixel should be upscaled to 4 pixels. In practice Windows creates a blurry upscale for some reason.

If the scale works correctly then such apps would look visually identical to how it looks like on a non-retina 24" monitor.

2) Most applications declare themselves DPI aware, but then fail to live up to the promise! For example, Calc.exe says it is DPI aware and then renders its buttons incorrectly. Explorer.exe messes up the location bar. Outlook messes up its ribbon bar and side bars. The DWM messes up the title bar and Firefox its tabs. Qt fails to pass on the actual DPI to its WebKit backend, causing QtWebKit areas to be half size of what they should be!

3) Uxtheme.dll, the component that draws the theme in Windows, has bugs in its DPI scaling. All buttons end up looking really square because the border radius is not properly upscaled, and seems to roll a dice when it comes to what point size it uses for text.

The only applications that got reasonably away with scaling was Visual Studio and then HTML pages in Firefox. Probably because the XAML backend uses physical pixels for placement, and with HTML because 1px is defined to be 1 pixel at 96 DPI. Strangely enough Internet Explorer seemed to have problems scaling the HTML properly.

Reply Parent Score: 5

pica Member since:
2005-07-10

You're right there also can be "new" applications that use a non scalable, fixed layout. But, these can be treated as legacy applications.

And the items
* scalable fonts
* scalabe icons
* scalable menu decorations and controls
also apply for (Hi)DPI-aware applications.

Greetings,
pica

Reply Parent Score: 2