I've decided to rework file loading based on the difficulties I've had. First, libogg2 works great, but upgrading libvorbis (etc) to use it is outside the scope of this project and just adds more to my/our plate pre-1.0 release. Of course we should upgrade to libogg2 the moment these codecs are available using it.
Second, we have numerous problems embedding Soy data in Ogg chains. We need to know, within the Python __new__ function for File/etc, what classes are being used so that we can initiate the instances of them. That means that __new__ would have to load the entire file at once, potentially interupting the render cycle and killing the benefit we'd otherwise gain from progressive loading. Coreloop can ADD data to any class already created but cannot create new instances itself. Yes - we could say "no chaining" - and setup other rules, but it's gotten silly. Most of all, in using Ogg for storing this, we loose the ability for Blender (and other 3d editors) to load/save the data without PySoy. While having PySoy around can greatly improve it's speed it shouldn't be a requirement. That is - if someone wanted to load a soy.bodies.Mesh from a .soy file to use in their CrystalSpace-based (GPLv3 licensed) game they shouldn't have to install PySoy just to read this data into Blender. _______________________________________________ PySoy-Dev mailing list [email protected] http://www.pysoy.org/mailman/listinfo/pysoy-dev
