[Solved] Native OpenGL context nulled in REAPER when UI is floated

When right-clicking on a plugin instance, REAPER has the option to “Window float selected FX”. In our AU plugins this causes the OpenGL context to be trashed, OpenGL thread stopped, and the OpenGL portions of our UI become blank. The stopping of the OpenGL thread seems to be triggered by redirectWillMoveToWindow.

Any help would be much appreciated!

I’ll have a look…

What platform is this on? macOS? In that case I’ll try the same using SR’s branch of JUCE which has fixes related to OpenGL on macOS. The master branch is based on JUCE 4 and there’s also a juce5 branch applying the patches on JUCE 5. If our branch works for you that’ll point on what’s the problem and how to fix it.

OK this should now be fixed on develop with commit e91def7.

1 Like

Looks to be fixed for us with that commit. Thanks @fabian!

Heads up that the fix from yesterday contained a few bugs which impacted normal application windows. To fully fix this issue pull the latest develop. The relevant commits are:

e91def7, 2362ca9, aec8c36

The last one is just working it’s way through our CI systems so should be available in a few minutes. Sorry for the hassle.

The problem still seems to exist on Windows. When floating the UI, the wglMakeCurrent function returns false, when trying to activate the native context for shutdown. Thus shutdownOnThread (juce_OpenGLContext.cpp) doesn’t have an active context to release any gl resources.
wglMakeCurrent yiels error 3221684230. However, device context and opengl rendering context handle seem to be ok. Do you have any idea why floating the UI causes such behaviour on windows?