Ok, so coming back, there’s another change that breaks any chance of re-using an OpenGLComponent to render in a thread:
When I do makeCurrentContextActive, it runs createContext, which makes a WindowGLContext, which makes an NSViewComponentInternal, which makes a ComponentWatcher, which etc. etc
and then an assert fails on addCoponentListener because it’s not in the MessageManager thread (right, I know).
So, Jules, is this sort of thing something you’d like to handle, or should we just say that OpenGLComponents are no longer threadable (i.e. not usable for anything other than a demo)?
Currently, I’d have to make (and keep updated) a completely parallel set of context handling - I did that on Linux because of X threads, and having three (4, 5 with Android?) sets of platform specific code that’s 90% identical to code already in juce is pretty asinine.