Cubase HiDpi resize Bug?

I may have found a bug with HiDpi in Cubase. Or maybe I am doing something wrong?

My problem: The UI size of our VST3 plugin gets bigger (or smaller) each time our tester opens it in Cubase on a 4k screen on Windows.
My goal: I want the UI size to stay the same.

In Cubase open the “Preferences” menu, then click on “General”. At the top you have the “HiDpi” settings. Make sure “Enable HiDpi” is checked. The below drop-down presents you with several options: “User System Settings”, “+25%”, “+50%”, “-25%” and “-50%”.
As long as I am using “User System Settings” all is fine. But if I choose “-25%” or “50%”, the UI gets a little bigger each time I open it. And if I use “+25%” or “+50%”, the UI gets a little smaller each time.

We can reproduce this behaviour with a simple JUCE test plugin. The plugin is attached. I’ll also attach a video, which shows the problem. In the video you first see the good setting “User System Settings” and afterwards the problematic ones.

We did the test using Cubase 12.0.3, VST3 and JUCE 7.0.2 under Windows.

The test project:
Cubase_ResizeTest.zip (5.2 KB)

The video link:

we are getting mails about similar issues, but are not able to reproduce them. Did you find the cause of the problem?

No, unfortunately I don’t know what is causing it. I had the feeling its something in the VST3 layer of JUCE. I was hoping the JUCE team can investigate.

Have you tested with this commit?

I think it may resolve the issue.

I was able to reproduce it, you have to have hidpi enabled and increase the scale factor in cubase 12. Testers with Cubase 9 and 11 had no problems.
This happens although I left setScaleFactor empty.
I have tested it with the newest commit from master, and checking out this commit would result in changing all the threading stuff back again.

for me, it gets larger on +25%

Solution: calling setResizeLimits in the editors ctor before setting size solved it for me

    setResizeLimits (MIN_W, MIN_H, juce::roundFloatToInt (float (MIN_W) * 1.5f), juce::roundFloatToInt (float (MIN_H) * 1.5f));

Hi reuk,

I am bit late to answer. But our tester just told me it seems to be working for him now. Thanks for fixing!

1 Like