Blender Git Loki

Git Commits -> Revision fe00175

Revision fe00175 by Sergey Sharybin (master)
January 1, 2014, 16:32 (GMT)
Fix crash happening in Cycles fcurve modifier

Summary:
Crash was happening because of fcurve modifier stack
used modifier's DNA to store temporary data.

Now made it so storage for such a thing is being
allocated locally per object update so multiple objects
which shares the same animation wouldn't run into
threading conflict anymore.

This storage might be a part of EvaluationContext,
but that'd mean passing this context all over in
object_where_is which will clutter API for now without
actual benefit for this.

Optimization notes: storage is only being allocated
if there're Cycles modifier in the stack, so there're
no extra allocations happening in all other cases.

To make code a bit less cluttered with this storage
passing all over the place added extra callbacks to
the FModifier storage which runs evaluation with the
given storage.

Reviewers: brecht, campbellbarton, aligorith

CC: plasmasolutions

Differential Revision: https://developer.blender.org/D147

Commit Details:

Full Hash: fe00175c35a301a68518c583a4fab163ac8f32a0
Parent Commit: 5d701c6
Lines Changed: +154, -37

6 Modified Paths:

/source/blender/blenkernel/BKE_fcurve.h (+14, -3) (Diff)
/source/blender/blenkernel/intern/anim_sys.c (+8, -3) (Diff)
/source/blender/blenkernel/intern/fcurve.c (+8, -4) (Diff)
/source/blender/blenkernel/intern/fmodifier.c (+124, -25) (Diff)
/source/blender/blenloader/intern/readfile.c (+0, -1) (Diff)
/source/blender/makesdna/DNA_anim_types.h (+0, -1) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021