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

Reply via email to