diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-31 14:41:01 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-31 14:41:01 +0400 |
commit | d404c31e8d002a00229bdd91769ca30c6a0e3e4d (patch) | |
tree | dc5a116a429fea662185b9e22eddbcd184d0d437 /intern/cycles/blender/blender_util.h | |
parent | 6a128eee7b8a49e5d7344f8982c82fc2aa97dad6 (diff) |
Cycles: fix sync issue with group instances.
Diffstat (limited to 'intern/cycles/blender/blender_util.h')
-rw-r--r-- | intern/cycles/blender/blender_util.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index 715dc7e6fb0..354a195758f 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -225,10 +225,10 @@ public: bool sync(T **r_data, BL::ID id) { - return sync(r_data, id, id.ptr.id.data); + return sync(r_data, id, id, id.ptr.id.data); } - bool sync(T **r_data, BL::ID id, const K& key) + bool sync(T **r_data, BL::ID id, BL::ID parent, const K& key) { T *data = find(key); bool recalc; @@ -240,8 +240,11 @@ public: b_map[key] = data; recalc = true; } - else + else { recalc = (b_recalc.find(id.ptr.data) != b_recalc.end()); + if(parent.ptr.data) + recalc = recalc || (b_recalc.find(parent.ptr.data) != b_recalc.end()); + } used(data); |