Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-31 14:41:01 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-31 14:41:01 +0400
commitd404c31e8d002a00229bdd91769ca30c6a0e3e4d (patch)
treedc5a116a429fea662185b9e22eddbcd184d0d437 /intern/cycles/blender/blender_util.h
parent6a128eee7b8a49e5d7344f8982c82fc2aa97dad6 (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.h9
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);