New scaling issues moving OpenGLRenderer from Non-Retina to Retina Screen

I think this issue was introduced with Monterey, but it could also be coincidence.
When I move my plugin-Window (also Standalone) from my main non-retina external display to my MacBook Pro (arm) screen in the right, the whole GUI is scaled incorrectly while dragging and the windows is not entirely covering the non-retina screen at the same time.

I just tested this with the DemoRunner and the DSPModulePluginDemo (I added an OpenGLContext and attached it to the editor in the editor’s constructor).

In both cases, I’m able to drag the window between the internal (retina) and external (non-retina) display without seeing any scaling issues. I tested on a 2021 MBP (M1 Pro) running macOS 12.0.1.

Can you provide any more details that might allow us to reproduce the issue? If you can reproduce the issue in one of the JUCE demos, that would be ideal. Thanks!

I was able reconstruct this issue, with just an OpenGLContext attached to the DspModulePluginDemoEditor.
MacOS 12.0.1. / MacBook Pro 2021 14 - M1 Max (10‑Core CPU, 32‑Core GPU) + 32GB

diff  DSPModulePluginDemo.h_or DSPModulePluginDemo.h  
1640a1641,1642
>     
>         context.attachTo(*this);
1642c1644,1646
< 
---
>     
>     juce::OpenGLContext context;
>    

I realised It happens not always, sometimes at first try, sometimes you have to move the window multiple times between the two screens.

image

—> I made a short QuickTime movie to demonstrate the issue, you see the right bottom part of the left screen:

example.mov.zip (3.6 MB)

Thanks, I can reproduce the issue now, and I have a potential fix on the way. I’ll update this thread once it’s on develop.

1 Like

Thanks! Unfortunately I found an new issue when using the latest patch OpenGL: Ensure that GL views display at the correct scale on macOS 12 · juce-framework/JUCE@ea8b0a2 · GitHub

If you have a Logic-project with multiple plugin-instances open at the same time, both on left and right screen (same setup as above) . And you save the project and reopen it. The plugin-windows on the right display have the wrong (non-retina) scaling. Once you move one plugin from one screen into the other the scaling updates to the right factor.

EDIT: You must open Logic with Rosetta to check this issue (because otherwise Logic isn’t able to open multiple Plugin Windows when restoring a project (seems to be a logic bug))

Thanks for reporting, I’ll investigate.

The issue should be fixed now: