Hello,
as already pointed out here https://discourse.vvvv.org/t/9818, https://discourse.vvvv.org/t/9471 & https://discourse.vvvv.org/t/11184 there are at least two major issues when using vvvv on windows 8.x and high resolution (so called retina) screens.
First issue:
The GUI gets garbled when scaling is enabled here
Control Panel\All Control Panel Items\Display
The gui distortion occurs when leaving (DX9) full screen for the first time.
This is related to the High DPI awareness of an application.The setting is stored in the registry under following path:
HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
And looks like this:
H:\VVVVs\vvvv_45beta31.2_x64\vvvv.exe REG_SZ HIGHDPIAWARE
To make the vvvv gui go back to normal one can delete this entry or right-click on vvvv.exe -> Properties -> Compatibility Tab -> untick “Disable display scaling on high DPI Settings” & apply. Unfortunately the setting gets enabled again when leaving the fullscreen the next time.
First I thought the Program Compatibility Assistant was to blame and I disabled the service. But it didn’t help.
Monitoring the registry changes using Process Monitor shows that vvvv is making the changes itself!?
According to this article one way High DPI awareness can be set is by adding the following xml-snippet to your application manifest:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Fortunately embedded application manifests can be altered :)
Either using mt.exe from windows sdk or more conveniently using resource tuner.
With the modified manifest (see below) the distortion no longer occurs (according to my limited tests). Lieber @joreg could you please look into this?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>false</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Second Issue
Fullscreen
Basically everything is said in this thread: https://discourse.vvvv.org/t/9818. Only thing to add is that after deleting the respective registry key you can go to fullscreen, but only once - at least that’s what I am experiencing. When leaving fullscreen the setting is back. Monitoring the registry with Process Monitor again it seems vvvv creates the entry itself…