juce-framework / JUCE

JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
https://juce.com
Other
6.64k stars 1.74k forks source link

[Bug]: Resizing OpenGL triggers weird repainting behaviours #1109

Open tonytorm opened 2 years ago

tonytorm commented 2 years ago

Detailed steps on how to reproduce the bug

While resizing its parent only the OpenGL component gets actually repainted/resized, while its siblings get stuck and repainted/resized after 1/2 seconds...

The parent resized() function gets stuck and triggered multiple times before returning (multiple times).. -it gets stuck when the openGLcomponent.setBounds() is called-.

Removing the setBounds call to the openGLComponent makes everything run as expected.

What is the expected behaviour?

Everything should repaint and resize at the same time

Operating systems

macOS

What versions of the operating systems?

Monterey .16.2, Mojave .14.3

Architectures

x86_64, ARM

Stacktrace

No response

Plug-in formats (if applicable)

Standalone

Plug-in host applications (DAWs) (if applicable)

Standalone

Testing on the develop branch

The bug is present on the develop branch

Code of Conduct

reuk commented 2 years ago

I tested this on Monterey 12.5.1 and High Sierra 10.13.6 (Intel) using the DemoRunner. I don’t have a Mojave machine available for testing. After opening the OpenGLDemo.h demo, I’m still able to drag the corners of the window to resize it without any freezing or other issues. The window is a little bit slow to resize, but nowhere near a second.

Do you see the same problem in any of the JUCE example projects? If so, please provide detailed steps so that we can reproduce the problem. Otherwise, if the problem is only present in your application, please provide some minimal example code that demonstrates the problem.

tonytorm commented 2 years ago

hiya, here's a link to a public repo which replicates the same issue:

https://github.com/tonytorm/OpenGLIssue