PB looks blurry on Windows 8.1
Posted: Mon Aug 11, 2014 9:53 pm
Does anyone have this problem, and could it qualify as a bug report?
The PureBasic IDE and applications written with PureBasic look all blurry on Windows 8.1.
Screenshot that shows the IDE and and a test application (click for full image):

The Menu, PanelGadget, 3rd party TabbarGadget (text + icon) ... everything is scaled by Windows and looks blurry.
Even the PB help looks ugly with blurry text.
In the screenshot you see the blurry IDE and blurry app on the left side.
On the right side, it is the same app and PB IDE with compatibility mode
set to not allow scaling for High DPI displays.
I did not have this problem with Windows 7, using same displays. It is not a retina or new 4k display,
just three 27" Samsung S27A850 displays at 2560 x 1440.
Now I have to set every PB program to use the HighDPI compatibility mode, by right-clicking the EXE.
With HighDPI scaling disabled in compatibility mode, everything looks clear and crisp. Also the PB help
looks clear and crisp in compatibility mode.
Is this an entry missing in the manifest, that PB includes into the EXE with XP+ styles enabled?
The PB icon on desktop looks also scaled and ugly.
Just found some MSDN links about the known problem with applications that are not DPI-aware:
- Fixing blurry text in Windows 8.1 for IT Professionals
- Some desktop applications may appear blurred on high-DPI displays
- Writing DPI-Aware Desktop and Win32 Applications
Dr Dobb's: Coding for High-DPI Displays in Windows
The PureBasic IDE and applications written with PureBasic look all blurry on Windows 8.1.
Screenshot that shows the IDE and and a test application (click for full image):

The Menu, PanelGadget, 3rd party TabbarGadget (text + icon) ... everything is scaled by Windows and looks blurry.
Even the PB help looks ugly with blurry text.
In the screenshot you see the blurry IDE and blurry app on the left side.
On the right side, it is the same app and PB IDE with compatibility mode
set to not allow scaling for High DPI displays.
I did not have this problem with Windows 7, using same displays. It is not a retina or new 4k display,
just three 27" Samsung S27A850 displays at 2560 x 1440.
Now I have to set every PB program to use the HighDPI compatibility mode, by right-clicking the EXE.
With HighDPI scaling disabled in compatibility mode, everything looks clear and crisp. Also the PB help
looks clear and crisp in compatibility mode.
Is this an entry missing in the manifest, that PB includes into the EXE with XP+ styles enabled?
The PB icon on desktop looks also scaled and ugly.
Just found some MSDN links about the known problem with applications that are not DPI-aware:
- Fixing blurry text in Windows 8.1 for IT Professionals
- Some desktop applications may appear blurred on high-DPI displays
- Writing DPI-Aware Desktop and Win32 Applications
Dr Dobb's: Coding for High-DPI Displays in Windows
Creating a System DPI Aware Win32 Application in Visual Studio 2013
You can use the following two mechanisms to set the DPI-awareness level for a process:
- Declaratively: Specify the desired level of awareness in the dpiAware entry of the application manifest.
This way, DWM sets the specified DPI awareness level when the user launches the application.
Visual Studio 2013 enables you to set the DPI-awareness level without having to edit the manifest tool.- Procedurally: Call the SetProcessDpiAwareness function with the appropriate value from the PROCESS_DPI_AWARENESS enumeration.
The function must be called before any Win32 API call that makes DWM begin virtualization.