JUCE OpenGL rendering in full screen window cannot handle DPI scale correctly in some DAWs

In brief, if you create a full-screen window and put an OpenGL-rendered component inside it, and run with specific DAW hosts, the OpenGL rendering does not scale properly. More details are shown in the uploaded ZIP file. It contains source codes and four demo videos.

The source code is the project demonstrating this issue and is used to create the screen captured videos. We made a JUCE project that can switch between a juce::Graphics rendered component and OpenGL rendered component, and can switch between windowed and full-screen mode. Mouse position is rendered in GUI as a dot. It can be compiled and issue reproducible with any recent version of JUCE.

The “standalone” video demonstrates expected behavior that is run inside juce standalone program. The
CUBASE and REAPER video are recorded from plugin loaded in Cubase and REAPER that has shrinked OpenGL rendering. the CUBASE_NO_HIDPI video is recorded in Cubase with “no high DPI” selected. It has correct scaling but rendered coarsely, as it has really disabled high-DPI.

TestOpenGL.zip (5.8 MB)

1 Like