[Bf-blender-cvs] [6c9a8823403] blender-v2.83-release: Fix T75964: changing object's viewport display color does not update cycles

Philipp Oeser noreply at git.blender.org
Wed Apr 22 14:38:03 CEST 2020


Commit: 6c9a88234038f500c3e75472088f14dff05d073b
Author: Philipp Oeser
Date:   Wed Apr 22 13:50:21 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB6c9a88234038f500c3e75472088f14dff05d073b

Fix T75964: changing object's viewport display color does not update
cycles

Caused by rB00466e756e33.

While that commit sounds logical, Cycles uses is_updated_transform() to
detect updates.

Now introduce is_updated_shading() and use that on top.

Maniphest Tasks: T75964

Differential Revision: https://developer.blender.org/D7493

===================================================================

M	intern/cycles/blender/blender_sync.cpp
M	source/blender/makesrna/intern/rna_depsgraph.c

===================================================================

diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 9e95cdb3f20..f4c100bcd2b 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -142,7 +142,7 @@ void BlenderSync::sync_recalc(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d
       BL::Object b_ob(b_id);
       const bool updated_geometry = b_update->is_updated_geometry();
 
-      if (b_update->is_updated_transform()) {
+      if (b_update->is_updated_transform() || b_update->is_updated_shading()) {
         object_map.set_recalc(b_ob);
         light_map.set_recalc(b_ob);
       }
diff --git a/source/blender/makesrna/intern/rna_depsgraph.c b/source/blender/makesrna/intern/rna_depsgraph.c
index 41c107b8d04..ca34f69ab1e 100644
--- a/source/blender/makesrna/intern/rna_depsgraph.c
+++ b/source/blender/makesrna/intern/rna_depsgraph.c
@@ -203,6 +203,12 @@ static bool rna_DepsgraphUpdate_is_updated_transform_get(PointerRNA *ptr)
   return ((id->recalc & ID_RECALC_TRANSFORM) != 0);
 }
 
+static bool rna_DepsgraphUpdate_is_updated_shading_get(PointerRNA *ptr)
+{
+  ID *id = ptr->data;
+  return ((id->recalc & ID_RECALC_SHADING) != 0);
+}
+
 static bool rna_DepsgraphUpdate_is_updated_geometry_get(PointerRNA *ptr)
 {
   ID *id = ptr->data;
@@ -601,6 +607,11 @@ static void rna_def_depsgraph_update(BlenderRNA *brna)
   RNA_def_property_clear_flag(prop, PROP_ANIMATABLE | PROP_EDITABLE);
   RNA_def_property_ui_text(prop, "Geometry", "Object geometry is updated");
   RNA_def_property_boolean_funcs(prop, "rna_DepsgraphUpdate_is_updated_geometry_get", NULL);
+
+  prop = RNA_def_property(srna, "is_updated_shading", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_clear_flag(prop, PROP_ANIMATABLE | PROP_EDITABLE);
+  RNA_def_property_ui_text(prop, "Shading", "Object shading is updated");
+  RNA_def_property_boolean_funcs(prop, "rna_DepsgraphUpdate_is_updated_shading_get", NULL);
 }
 
 static void rna_def_depsgraph(BlenderRNA *brna)



More information about the Bf-blender-cvs mailing list