Hi everyone, I've been wondering about this for some time, and considering whether I could "build a better mousetrap", so to speak, for my online/offline material library add-on. (http://peter.cassetta.info/material-library/)
When being used in online mode, my add-on constantly needs to download material previews, materials, textures, OSL shading scripts, etc. Right now, performing any action that requires downloading something will freeze Blender until it's done. I know that this is the intended behavior, but in some cases Blender can be frozen for 10 or more seconds until the download is complete, or until the connection times out. This is clearly not the best way to do things in terms of user interaction, and it can make things inefficient for users with a slow internet connection. So I've attempted to remedy this (at least in part) by caching all downloaded content, but this still requires that the content be downloaded in the first place, and is obviously not a complete solution. Some on #blendercoders have suggested using modal operators, which are usually helpful for operators which take a long time to run, but they are not a solution in my case, because it is not the operator as a whole which takes a long time, but rather a single HTTP connection function within the operator. Another suggestion, which I feel would be preferable if I could get it working solely or mostly with Python, was to start another process. While I'm unsure exactly how one would do this, I got the impression that it might be possible to open a separate Python console, or launch another Blender instance (preferably in the background), and download needed files from there without slowing down anything else in the first Blender instance. Would this be workable, or is there another, better way to do things? Anyway, I'd appreciate any advice or help people might have to offer. Many thanks, Peter Cassetta _______________________________________________ Bf-python mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-python
