Hi,

Since Windows Vista the operating system assumes all applications as 
DPI-unaware, unless stated otherwise. This means that if you have desktop 
scaling enabled (which is pretty much mandatory if you are running a high 
resolution screen) you will get incorrect scaling and blurry images. 

The solution is to declare the application as DPI-aware. This can either be 
done via the inclusion of a manifest file during compilation or by declaring it 
inside your application. By doing this you are making a promise to the 
operating system that you are handling the scaling instead of the OS.

I have made a modification of the osgViewer::GraphicsWindowWin32 constructor to 
declare the application as DPI-aware per monitor. This guarantees that the 
operating system will never scale the application. 

Regretfully the required Windows library call requires Windows 8.1 or later. To 
be able to detect the correct windows version I had to add a CMake macro to 
detect and define the _WIN32_WINNT variable.

During this development I also found a redundant definition inside the 
osgDB/FileUtils.cpp file, which I removed.

The resulting commits are sent as the following pull request:
https://github.com/openscenegraph/OpenSceneGraph/pull/396

Regards,
Björn

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=72492#72492





_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to