Roli-team, please try to open a VST plugin in VST host example on a highres/retina display using Windows 10.
The VST window and UI is way small... also the VST window can only be moved around on the upper-left quarter of the screen.
It seems something is missing related to pixel scaling.
This happens with all plugins i tried, including the U-he Zebra ones.
Yes, we know about this one, but it's the fault of Windows rather than juce.
If the app is high-DPI-aware (which JUCE apps and most hosts are) then the OS doesn't rescale anything automatically (unlike OSX which does all this magically), so the app is expected to deal with DPI itself by using larger windows. Obviously the host can't make the plugin do that, so the plugin itself needs to be aware of the DPI of the display and to set its window size appropriately.
..I vaguely remember hearing about some ideas that were going around about adding a custom VST extension to allow the host to tell VST windows what scale factor they should use, but can't recall what happened to that..
Any news on this ? Any ways to get around it?
Ok, did some more googeling and we are pretty much screwed on this issue. Maybe only alternative is to compile a version with dpi-aware turned off. Not sure if that is even possible.
this is also a problem in tracktion, in addition it also has a bug that don’t let you drag the plugin window over the entire screen
Problem is that High Dpi awareness, is process wide, so we can’t turn off only on the plugin windows.
Not sure what we should tell our users? Don’t use high resolution displays?, wait for plugin vendors to wake up?
IMHO the real bad issue is that if the host is using legacy scaling, then the plugins cannot open hi-dpi windows.
My solution is to make the plugins dpi-aware by scaling the plugin window during initialization. I use a dpi value I get like this (independent from what Juce is using internally):
HDC dc = GetDC(0);
double dpi = (GetDeviceCaps(dc, LOGPIXELSX) + GetDeviceCaps(dc, LOGPIXELSY))/2.0;
96 is normal (legacy) windows scaling. This appears to work in most of the few dpi-aware hosts that are out. For the others I added the user option to manually scale the plugin GUI with an extra factor. This way people can work around issues until host developers find a common ground.
Where exactly did you place this code when creating a plugin window in the host?
We made a number of scaling improvements a few months ago - try using the latest JUCE release.
This issue is not fixed one the hosting side of things.
Open the NI FM8 plugin in the audio plugin host JUCE example on a 4K monitor on windows and the editor UI will bi tiny.
We can’t say that it’s not our fault and there is nothing that can be done because if you do the same in say Cubase - FM8 editor UI scales properly and automatically.
I’ve tried to use the “setScaleFactor()” of the AudioProcessorEditor class, but that did not do anything.
Is there any workaround for displaying the third party plugin editors on windows in HiDPI mode properly?
Btw… this issue is not only connected to 4K screens and high resolutions. A user may simply change the scaling in their display settings to make everything bigger and more visible, but this would be completely ignored in the plugin editor windows.