[Bf-blender-cvs] [68ffb2a2672] blender2.8: Merge branch 'master' into blender2.8
Sergey Sharybin
noreply at git.blender.org
Fri Dec 15 17:55:31 CET 2017
Commit: 68ffb2a2672a0e944e5e4fdf0f31c7223c2f1920
Author: Sergey Sharybin
Date: Fri Dec 15 17:55:23 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB68ffb2a2672a0e944e5e4fdf0f31c7223c2f1920
Merge branch 'master' into blender2.8
===================================================================
===================================================================
diff --cc source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc
index 5111db08e03,d7457b9eb6c..bd3d74b307b
--- a/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc
+++ b/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc
@@@ -398,11 -403,9 +398,13 @@@ static void deg_debug_graphviz_node(con
}
break;
}
- default:
+ case DEG_NODE_TYPE_UNDEFINED:
+ case DEG_NODE_TYPE_TIMESOURCE:
+ case DEG_NODE_TYPE_OPERATION:
deg_debug_graphviz_node_single(ctx, node);
break;
++ case NUM_DEG_NODE_TYPES:
++ break;
}
}
diff --cc source/blender/depsgraph/intern/depsgraph.cc
index 1227db4c1bb,30ab21b1d8c..995157f5c9a
--- a/source/blender/depsgraph/intern/depsgraph.cc
+++ b/source/blender/depsgraph/intern/depsgraph.cc
@@@ -279,27 -273,15 +279,27 @@@ IDDepsNode *Depsgraph::find_id_node(con
return reinterpret_cast<IDDepsNode *>(BLI_ghash_lookup(id_hash, id));
}
-IDDepsNode *Depsgraph::add_id_node(ID *id, const char *name)
+IDDepsNode *Depsgraph::add_id_node(ID *id, bool do_tag, ID *id_cow_hint)
{
+ BLI_assert((id->tag & LIB_TAG_COPY_ON_WRITE) == 0);
IDDepsNode *id_node = find_id_node(id);
if (!id_node) {
- DepsNodeFactory *factory = deg_get_node_factory(DEG_NODE_TYPE_ID_REF);
+ DepsNodeFactory *factory = deg_type_get_factory(DEG_NODE_TYPE_ID_REF);
- id_node = (IDDepsNode *)factory->create_node(id, "", name);
- id->tag |= LIB_TAG_DOIT;
- /* register */
+ id_node = (IDDepsNode *)factory->create_node(id, "", id->name);
+ id_node->init_copy_on_write(id_cow_hint);
+ if (do_tag) {
+ id->tag |= LIB_TAG_DOIT;
+ }
+ /* Register node in ID hash.
+ *
+ * NOTE: We address ID nodes by the original ID pointer they are
+ * referencing to.
+ */
BLI_ghash_insert(id_hash, id, id_node);
+ id_nodes.push_back(id_node);
+ }
+ else if (do_tag) {
+ id->tag |= LIB_TAG_DOIT;
}
return id_node;
}
diff --cc source/blender/depsgraph/intern/depsgraph_types.h
index b12becc5589,b2dbe5d2a62..d091f42bf80
--- a/source/blender/depsgraph/intern/depsgraph_types.h
+++ b/source/blender/depsgraph/intern/depsgraph_types.h
@@@ -144,11 -122,11 +144,14 @@@ typedef enum eDepsNode_Type
DEG_NODE_TYPE_EVAL_PARTICLES,
/* Material Shading Component */
DEG_NODE_TYPE_SHADING,
+ DEG_NODE_TYPE_SHADING_PARAMETERS,
/* Cache Component */
DEG_NODE_TYPE_CACHE,
+ /* Batch Cache Component */
+ DEG_NODE_TYPE_BATCH_CACHE,
+
+ /* Total number of meaningful node types. */
+ NUM_DEG_NODE_TYPES,
} eDepsNode_Type;
/* Identifiers for common operations (as an enum). */
diff --cc source/blender/depsgraph/intern/nodes/deg_node.cc
index 62291596323,1d4d542e7cc..3f70f8e1281
--- a/source/blender/depsgraph/intern/nodes/deg_node.cc
+++ b/source/blender/depsgraph/intern/nodes/deg_node.cc
@@@ -250,8 -202,8 +250,8 @@@ ComponentDepsNode *IDDepsNode::add_comp
{
ComponentDepsNode *comp_node = find_component(type, name);
if (!comp_node) {
- DepsNodeFactory *factory = deg_get_node_factory(type);
+ DepsNodeFactory *factory = deg_type_get_factory(type);
- comp_node = (ComponentDepsNode *)factory->create_node(this->id, "", name);
+ comp_node = (ComponentDepsNode *)factory->create_node(this->id_orig, "", name);
/* Register. */
ComponentIDKey *key = OBJECT_GUARDED_NEW(ComponentIDKey, type, name);
diff --cc source/blender/depsgraph/intern/nodes/deg_node_component.cc
index 01181453982,17f35acee79..f4530ecebdb
--- a/source/blender/depsgraph/intern/nodes/deg_node_component.cc
+++ b/source/blender/depsgraph/intern/nodes/deg_node_component.cc
@@@ -227,8 -231,8 +227,8 @@@ OperationDepsNode *ComponentDepsNode::a
{
OperationDepsNode *op_node = find_operation(opcode, name, name_tag);
if (!op_node) {
- DepsNodeFactory *factory = deg_get_node_factory(DEG_NODE_TYPE_OPERATION);
+ DepsNodeFactory *factory = deg_type_get_factory(DEG_NODE_TYPE_OPERATION);
- op_node = (OperationDepsNode *)factory->create_node(this->owner->id, "", name);
+ op_node = (OperationDepsNode *)factory->create_node(this->owner->id_orig, "", name);
/* register opnode in this component's operation set */
OperationIDKey *key = OBJECT_GUARDED_NEW(OperationIDKey, opcode, name, name_tag);
More information about the Bf-blender-cvs
mailing list