I am creating drawables from svgs in a background thread (using Drawable::createFromSVG), but I get the assert message (juce_assert_message_manager_is_locked) when trying to do so. Can I ignore this, or can I not create drawables from a background thread? I get the feeling that paint is used to create the drawable, but does not actually have to have to message manager locked for it to work correctly as it is not drawing on a screen, am I correct?
Yes, you are correct, you must call
Drawable::createFromSVG from the MM thread. I forget the exact reason
Due to design juce::Drawable derives from juce::Component which can only be used in message thread.
Thanks for your replies. I know that drawable derives from juce::Component but when the static function is used, are the parts of the component which should need the message manager locked used? or at least not everything must have the message manager locked, right? The functions can be time consuming, having to have the message manager locked, this will significantly increase loading time. I guess I am trying to figure out what the message manager is for and what it is needed for specifically in this function.
don’t quote me, but I think the consensus is that this is wrong. but, this is currently how it works.