Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Copying Qt Quick 3D objects across Linux processes



  • Hello everyone, I'm making a system UI for AR/VR devices using Qt and Linux (distro-agnostic): https://github.com/technobaboo/stardust-xr. As this is modular, I need each module to be in a seperate process. I've studied the Qt Quick 3D code and am still stumped on the best way to get objects that the modules create over to the core to render.

    I was thinking of copying over the QSSGRenderNodes through shared memory as the module processes will be child processes of the core, but then I realized without a QQuick3DSceneRenderer to generate the QSSGRenderNodes on the module side that would not be possible, and i cannot find a way to do that without rendering to a window after generating the render nodes. Then I tried the method of copying over the objects themselves, but I could not find a way to copy over the meshes and texture images between processes, as those will often be bundled into modules inside the Qt resources. Even so, the only way I can think of to get the objects copied without rendering on the modules is to copy over the meshes and texture images, then custom shaders, then precompute any custom geometry and send that over. Then I'd have to make sure everything is properly linked in shared memory. This seems unnecessary, but if it is necessary please let me know.

    Ultimately I just need a way to have modules send over QQuickObjects and their associated dependencies across processes using a socket or pipe or shared memory or whatever method, every frame. What's the best way to do this?

    I know this isn't a normal forum question but i couldn't find any better place to post this, thanks to everyone!


Log in to reply