[Bf-blender-cvs] [1c5c3748b51] blender2.8: Depsgraph: Make sure we pass proper base to object builder
Sergey Sharybin
noreply at git.blender.org
Thu Nov 30 12:47:38 CET 2017
Commit: 1c5c3748b5181050dfc18aa2f4b95537ce521643
Author: Sergey Sharybin
Date: Thu Nov 30 12:27:54 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB1c5c3748b5181050dfc18aa2f4b95537ce521643
Depsgraph: Make sure we pass proper base to object builder
===================================================================
M source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
index 76d2581d383..91930636e0a 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
@@ -92,10 +92,18 @@ void DepsgraphNodeBuilder::build_view_layer(Scene *scene,
scene_ = scene;
/* Scene objects. */
int select_color = 1;
- LINKLIST_FOREACH(Base *, base, &view_layer_cow->object_bases) {
+ /* NOTE: Base is used for function bindings as-is, so need to pass CoW base,
+ * but object is expected to be an original one. Hence we go into some
+ * tricks here iterating over the view layer.
+ */
+ for (Base *base_orig = (Base *)view_layer->object_bases.first,
+ *base_cow = (Base *)view_layer_cow->object_bases.first;
+ base_orig != NULL;
+ base_orig = base_orig->next, base_cow = base_cow->next)
+ {
/* object itself */
- build_object(base, base->object, linked_state);
- base->object->select_color = select_color++;
+ build_object(base_cow, base_orig->object, linked_state);
+ base_orig->object->select_color = select_color++;
}
if (scene->camera != NULL) {
build_object(NULL, scene->camera, DEG_ID_LINKED_INDIRECTLY);
More information about the Bf-blender-cvs
mailing list