Originally Posted by Artikbot
OSX and Linux have very decent desktop scaling.
Windows until 8.1 (and it's still somewhat crude) didn't have any sort of usable desktop scaling that didn't induce massive blurriness/was outright incompatible with most software.
Its not the fault of Windows entirely. Its hard to scale things that weren't designed to be scaled. The scaling in Windows is great when the applications pay their taxes.
Its the opposite in that the software is not compatible with high DPI, which is a result of rendering techniques from a long time ago that are set in stone, so Windows is trying to do the best that they can without breaking everything.
Applications from 10 years ago still run on Windows today. I don't know about Mac or Linux but from what I have seen they do not pay as much attention to the age of the application ecosystem as Windows has to support.
There are new GUI frameworks like Windows Presentation Foundation that function just like Mac and Linux, but that doesn't fix the old apps that were developed when DPI was not an issue or thought of, so we have various band aids like DPI virtualization to help mitigate some of the problems. I think one must understand the architectural differences in Windows when it comes to UI rendering - up until frameworks like WPF, most of the onus has always been on the application to do things right.
It may be argued that the way things were designed in Windows were naïve enough to not think forward to high DPI in the future, however to understand this we need to put together the fact the Windows application ecosystem is huge and that back then there was not a lot to play with in terms of resources to provide things like vector rendering when things like GDI were designed. And now because Microsoft must support as many legacy applications as possible, it is not possible to re design the likes of such so that the onus becomes on the operating system to do most of the work as this would break many more applications than what DPI virtualization does now.
Indeed the GDI interfaces are implemented way down in kernel mode and an integral part of the kernel mode portion of graphics drivers, a further restriction on any attempt to redesign the most used rendering method in Windows applications today.
So instead we have these mitigations that help to make the best of the situation with applications that are not DPI aware, but it comes at a cost of some other issues and the blurriness of the applications.
Now developers are encouraged to follow the guidelines to write DPI aware applications and to use frameworks such as WPF so that things look much better with high DPI displays.
This and many other things similar to it in Windows are the result of the need to support old applications, because if not, people will be less likely to upgrade to the next version of Windows. In many cases the source code for the applications are no longer available or the company is defunct so it is not as simple as fixing the application. Although of course, current applications should make it their priority to cater for high DPI.
That is the ultimate reason why DPI scaling in Windows can never be perfect. I am afraid, while legacy applications are required to be supported, it never will be.