Hi there! I'm trying to fix https://developer.blender.org/T49658 (AKA https://developer.blender.org/T49261), which is the bug affecting the VSE when you insert a scene strip and its property animations get executed with the wrong time.
I have a few questions, which I couldn't get answered by just studying the code: 1) In source/blender/blenkernel/intern/anim_sys.c, at the end of the BKE_animsys_evaluate_all_animation() function there's a loop which goes through all the scenes and animates their properties: https://git.blender.org/gitweb/gitweb.cgi/blender.git/blob/HEAD:/source/blender/blenkernel/intern/anim_sys.c#l2903 Why is this done (as opposed to just animate the current scene)? Is it in order to support the feature of using scenes in the VSE, or are there also other cases? 2) In the function mentioned above, I need to keep track of the scenes I've already animated (you can have a look at https://developer.blender.org/D2558 to see what I'm doing) in order not to animate their properties twice. What's the best way to do that? Right now I'm using a linked list on the stack, but maybe it could be better to add a flag to the Scene or AnimData structure instead? 3) Am I right if I say that if the project has multiple scenes, the BKE_animsys_evaluate_all_animation() function is likely to perform a lot of useless computations? I mean, if a scene other than the current one contains a lot of meshes with animations, and this scene is not used in the VSE, all these animations are computed for no reason. 4) It seems that all meshes, lights, and all animatable things are stored as linked lists in the Main class. Why aren't they referenced in the Scene class (instead / as well)? What's the way to find all animatable things present in a scene? Or conversely, if I have a mesh, how can I tell in which scene it's being used? Last but not least: long live the VSE! :-) Ciao, Alberto _______________________________________________ Bf-committers mailing list [email protected] https://lists.blender.org/mailman/listinfo/bf-committers
