From 9d5d8c1b603e15507cd25e32b6d85c1cb669d0bd Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Thu, 14 Jan 2021 17:51:05 +0100 Subject: [PATCH] Update the status on vst3_no_scaling and HiDPI Apparently 200% scaling with Wine's font DPI set to 192 often does work correctly. --- CHANGELOG.md | 6 ++++-- README.md | 2 +- src/common/configuration.h | 10 ++++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d1fec81..cb86016d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,8 +39,10 @@ TODO: Add an updated screenshot with some fancy VST3-only plugins to the readme - Added a [compatibility option](https://github.com/robbert-vdh/yabridge#compatibility-options) to disable HiDPI scaling for VST3 plugins. At the moment Wine does not have - proper HiDPI support, so some plugins might not scale their interfaces - correctly when the host tells those plugins to scale their GUIs. + proper fractional HiDPI support, so some plugins might not scale their + interfaces correctly when the host tells those plugins to scale their GUIs. In + most cases setting the font DPI in `winecfg`'s graphics tab to 192 will also + cause the GUIs to scale correctly at 200%. ### Changed diff --git a/README.md b/README.md index eeb55ee7..cbae2347 100644 --- a/README.md +++ b/README.md @@ -283,7 +283,7 @@ plugin._ | `editor_double_embed` | `{true,false}` | Compatibility option for plugins that rely on the absolute screen coordinates of the window they're embedded in. Since the Wine window gets embedded inside of a window provided by your DAW, these coordinates won't match up and the plugin would end up drawing in the wrong location without this option. Currently the only known plugins that require this option are _PSPaudioware_ plugins with expandable GUIs, such as E27. Defaults to `false`. | | `editor_xembed` | `{true,false}` | Use Wine's XEmbed implementation instead of yabridge's normal window embedding method. Some plugins will have redrawing issues when using XEmbed and editor resizing won't always work properly with it, but it could be useful in certain setups. You may need to use [this Wine patch](https://github.com/psycha0s/airwave/blob/master/fix-xembed-wine-windows.patch) if you're getting blank editor windows. Defaults to `false`. _This option is only availble on the master branch._ | | `frame_rate` | `` | The rate at which Win32 events are being handled and usually also the refresh rate of a plugin's editor GUI. When using plugin groups all plugins share the same event handling loop, so in those the last loaded plugin will set the refresh rate. Defaults to `60`. _This option is only available on the master branch._ | -| `vst3_no_scaling` | `{true,false}` | Disable HiDPI scaling for VST3 plugins. Wine currently does not have proper HiDPI support, so you might have to enable this option if you're using a HiDPI display. Defaults to `false`. _This option is only available on the master branch._ | +| `vst3_no_scaling` | `{true,false}` | Disable HiDPI scaling for VST3 plugins. Wine currently does not have proper fractional HiDPI support, so you might have to enable this option if you're using a HiDPI display. In most cases setting the font DPI in `winecfg`'s graphics tab to 192 will cause plugins to scale correctly at 200% size. Defaults to `false`. _This option is only available on the master branch._ | These options are workarounds for issues mentioned in the [known issues](#runtime-dependencies-and-known-issues) section. Depending on the hosts diff --git a/src/common/configuration.h b/src/common/configuration.h index 41d42090..742c229a 100644 --- a/src/common/configuration.h +++ b/src/common/configuration.h @@ -124,10 +124,12 @@ class Configuration { /** * Disable `IPlugViewContentScaleSupport::setContentScaleFactor()`. Wine - * does not properly implement DPI scaling, so without this option plugins - * using GDI+ would draw their editor GUIs at the normal size even though - * their window would actually be scaled. That would result in giant black - * borders at the top and the right of the window. + * does not properly implement fractional DPI scaling, so without this + * option plugins using GDI+ would draw their editor GUIs at the normal size + * even though their window would actually be scaled. That would result in + * giant black borders at the top and the right of the window. It appears + * that with a Wine font DPI of 192 plugins often do draw correctly at 200% + * scale. */ bool vst3_no_scaling = false;