Building upon #320, this PR adds support for Blender.
The trick here is passing data between threads using a native Queue. A polling operator is added to Blender, which continuously polls a queue for things to do. When QML has a task for Blender, it's added to this queue, Blender runs it, and adds to another queue for QML to pick up the result.
It's currently running at 10 ms intervals, including when the GUI isn't visible, which isn't ideal and could be optimised away. E.g. stop polling when GUI is closed.
Building upon #320, this PR adds support for Blender.
The trick here is passing data between threads using a native Queue. A polling operator is added to Blender, which continuously polls a queue for things to do. When QML has a task for Blender, it's added to this queue, Blender runs it, and adds to another queue for QML to pick up the result.
It's currently running at 10 ms intervals, including when the GUI isn't visible, which isn't ideal and could be optimised away. E.g. stop polling when GUI is closed.