[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59500] trunk/blender/source/blender/ makesrna/intern/rna_scene.c: Fix [#36289] Not change children object on freez layer when change frame.

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Aug 25 21:59:45 CEST 2013


This is more of a dependency graph refactoring thing, but I think the
right solution is to flip the "this object needs to be recalculated"
flag into a "this object is up to date" flag. That way when you change
the frame, you can clear all the flags on animated objects, regardless
of their layer, and when the layer becomes visible you can update
them.

Maybe there is a way to fix this particular case without major changes
to the code. Generally I've closed these kinds of bug reports and put
them on the todo list for depsgraph refactoring.


On Sun, Aug 25, 2013 at 9:33 PM, Bastien Montagne <montagne29 at wanadoo.fr> wrote:
> But then, how would you handle cases like the one in bug report ? If
> invisible objects are not (time)updated during frame change, we have to
> do it once they become visible some way or the other... Or would you
> rather update invisible objects during frame change? imho this would be
> far more time consuming. :/
>
> On 25/08/2013 21:28, Brecht Van Lommel wrote:
>> This doesn't seem correct, what this will do now is update all
>> animated objects, regardless if they were already visible. That can
>> make layer toggling significantly slower, and if you had moved an
>> animated object without inserting a keyframe yet, the object will now
>> lose its position.
>>
>>
>> On Sun, Aug 25, 2013 at 8:45 PM, Bastien Montagne<montagne29 at wanadoo.fr>  wrote:
>>> Revision: 59500
>>>            http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59500
>>> Author:   mont29
>>> Date:     2013-08-25 18:45:04 +0000 (Sun, 25 Aug 2013)
>>> Log Message:
>>> -----------
>>> Fix [#36289] Not change children object on freez layer when change frame.
>>>
>>> When hiding the layer of an object, switching to a different fram, and showing again that layer, things like object's parenting were not handled... Just set do_time option of DAG_on_visible_update() to True when updating layers.
>>>
>>> Note: maybe we could re-enable layers animation... not sure though ;)
>>>
>>> Modified Paths:
>>> --------------
>>>      trunk/blender/source/blender/makesrna/intern/rna_scene.c
>>>
>>> Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
>>> ===================================================================
>>> --- trunk/blender/source/blender/makesrna/intern/rna_scene.c    2013-08-25 16:29:10 UTC (rev 59499)
>>> +++ trunk/blender/source/blender/makesrna/intern/rna_scene.c    2013-08-25 18:45:04 UTC (rev 59500)
>>> @@ -487,7 +487,8 @@
>>>   static void rna_Scene_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr)
>>>   {
>>>          rna_Scene_view3d_update(bmain, scene, ptr);
>>> -       DAG_on_visible_update(bmain, FALSE);
>>> +       /* We need do_time here, else we can have update issues like [#36289]... */
>>> +       DAG_on_visible_update(bmain, true);
>>>   }
>>>
>>>   static void rna_Scene_fps_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
>>>
>>> _______________________________________________
>>> Bf-blender-cvs mailing list
>>> Bf-blender-cvs at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list