Similar to its earlier version of Windows, the Creators Update too brings a lot of new features and improvements than just the headline additions. Amongst many, there’s High-dots-per-inch (DPI) scaling improvements introduced. It has been observed that desktop applications can appear blurred or sized incorrectly when they are made to run on high-DPI display or when using high DPI displays in combination with standard-DPI display. This is particularly noticeable while using remoting technologies such as Remote Desktop Protocol (RDP). The high-DPI improvements in the Creators Update intend to address these issues.
DPI scaling improvements in Windows 10
Few of under-the-hood improvements like high-DPI improvements in the Creators Update fall in two categories:
- Improvements for desktop application developers
- Improvements for end users
The first change is effected by introducing a new capability of automatic per-monitor DPI scaling for desktop UI frameworks. This is done by adding a new added a new awareness context, (DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) which we refer to as per-monitor version 2 (PMv2)
PMv2 is technically a DPI_AWARENESS_CONTEXT. It is particularly designed to offer per-monitor scaling functionality that was missing from the original implementation of per-monitor awareness. This context enables the following:
- Child window DPI change notifications
- Scaling of non-client area
- Automatic DPI scaling for dialogs
- Fine-grained control over dialog scaling
Improvements for end users intend to make your life as a Windows user better when it comes to using Windows in mixed-DPI environments. Some of the improvements that are part of the Creators Update include,
There are instances where you might want to run desktop applications that don’t render well on a high-DPI display. In such cases, you might want to force the application to run as a DPI-unaware process. This would result in the application being blurry. So, although blurry, the action would render an unusable application usable. You can enable this functionality in the .exe properties:
System (enhanced)” DPI scaling
There are applications that resist changes in DPI scaling. Microsoft wants to make it a smooth affair. As such, it is looking at ways where Windows can do this job of DPI scaling, automatically.
A new functionality in the Creators Update has been introduced which renders text results crisply on high-DPI display for GDI-based apps only. So, for applications that are GDI-based, Windows can now DPI scale them on a per-monitor basis. This means that these applications will automatically configure themselves to become per-monitor DPI aware.
Microsoft has enabled GDI scaling by default for some in-box apps. For example, the Microsoft Management Console (mmc.exe) in the Creators Update. This means that many in-box Windows snap-ins, such as Device Manager, will benefit from this feature in the Creators Update.
Other apps that will benefit from this capability include,
Before the Creators Update, when you tried moving Internet Explorer to a display with a different DPI or otherwise changed the DPI of the display that it was on (docking/undocking/settings change/RDP/etc.) the content of the web page you were viewing would DPI scale but the app frame would not. This has been overcome in windows 10 Creators Update. So now, when you run Internet Explorer and Edge, side by side, on a secondary display with 100% display scaling, the primary display will us a high-DPI scale factor and the app windows will be moved to the low-DPI secondary display.
In the screenshot below, you can notice that the Edge UI is scaled down, but the Internet Explorer frame is still rendered at the scale factor of the primary display.
In Creators update it appears like this-
Child-window DPI scaling
Mixed-mode DPI scaling introduced in the Windows 10 Anniversary Update enabled users to have different DPI scaling modes within each top-level window in an application. The scaling, however, lacked support for child-window DPI scaling. This scheme, unfortunately, continues to remain unchanged in Windows 10 Creators Update i.e., Windows 10 Creators Update lacks support for child-window DPI scaling
A major irritant while running the display in ‘Extend’ mode was the inability of the Desktop icons to align themselves or DPI scale with multiple displays containing different DPI/display scaling values. Update to the OS in the form of Creators Update resolves this much nagging issue.
Here is what you’d see before the Creators Update:
After the update:
High-DPI developer documentation
The high-DPI documentation which was available on MSDN till now has turned irrelevant and has now become a thing of the past. Why? The guides for writing per-monitor DPI aware applications were written keeping in mind Windows 8.1 period. Things have evolved and changed a lot ever since then. Many Windows API DPI sensitivities have not been thoroughly documented. All of this required a thorough clean-up and building things from grounds up. With upcoming Windows 10 Creators Update, you can expect these changes to materialize.
For more information, see Windows Blog.