[Bf-blender-cvs] [49e7b77b195] blender2.8: Depsgraph: Pass copy-on-write pointer to material update
Sergey Sharybin
noreply at git.blender.org
Mon Aug 28 11:01:22 CEST 2017
Commit: 49e7b77b1952c6ea4ab5064d0d31b54052301ffd
Author: Sergey Sharybin
Date: Mon Aug 28 11:00:42 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB49e7b77b1952c6ea4ab5064d0d31b54052301ffd
Depsgraph: Pass copy-on-write pointer to material update
Unfortunately, there is something else wrong going on here, which makes objects
black after tweaking material settings.
===================================================================
M source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 659b7cefacb..e8f3b6bd61c 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -1144,30 +1144,27 @@ void DepsgraphNodeBuilder::build_nodetree(bNodeTree *ntree)
}
/* Recursively build graph for material */
-void DepsgraphNodeBuilder::build_material(Material *ma)
+void DepsgraphNodeBuilder::build_material(Material *material)
{
- ID *ma_id = &ma->id;
- if (ma_id->tag & LIB_TAG_DOIT) {
+ ID *material_id = &material->id;
+ if (material_id->tag & LIB_TAG_DOIT) {
return;
}
-
- /* material itself */
- add_id_node(ma_id);
-
+ material_id->tag |= LIB_TAG_DOIT;
+ /* Material itself. */
+ add_id_node(material_id);
+ Material *material_cow = get_cow_datablock(material);
/* Shading update. */
- add_operation_node(ma_id,
+ add_operation_node(material_id,
DEG_NODE_TYPE_SHADING,
- function_bind(BKE_material_eval, _1, ma),
+ function_bind(BKE_material_eval, _1, material_cow),
DEG_OPCODE_MATERIAL_UPDATE);
-
- /* material animation */
- build_animdata(ma_id);
-
- /* textures */
- build_texture_stack(ma->mtex);
-
- /* material's nodetree */
- build_nodetree(ma->nodetree);
+ /* Material animation. */
+ build_animdata(material_id);
+ /* Textures. */
+ build_texture_stack(material->mtex);
+ /* Material's nodetree. */
+ build_nodetree(material->nodetree);
}
/* Texture-stack attached to some shading datablock */
More information about the Bf-blender-cvs
mailing list