Fix T54089: missing GLSL material draw update when changing object pass index.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Sun, 18 Feb 2018 18:28:14 +0000 (19:28 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Sun, 18 Feb 2018 18:28:46 +0000 (19:28 +0100)
source/blender/makesrna/intern/rna_object.c

index 7800edc30864484663de0aee654830e04119455e..e6e7069488575e099a400b13057f886f981f0dae 100644 (file)
@@ -202,6 +202,12 @@ static void rna_Object_internal_update(Main *UNUSED(bmain), Scene *UNUSED(scene)
        DAG_id_tag_update(ptr->id.data, OB_RECALC_OB);
 }
 
+static void rna_Object_internal_update_draw(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+       DAG_id_tag_update(ptr->id.data, OB_RECALC_OB);
+       WM_main_add_notifier(NC_OBJECT | ND_DRAW, ptr->id.data);
+}
+
 static void rna_Object_matrix_world_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
        /* don't use compat so we get predictable rotation */
@@ -2562,7 +2568,7 @@ static void rna_def_object(BlenderRNA *brna)
        prop = RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "index");
        RNA_def_property_ui_text(prop, "Pass Index", "Index number for the \"Object Index\" render pass");
-       RNA_def_property_update(prop, NC_OBJECT, "rna_Object_internal_update");
+       RNA_def_property_update(prop, NC_OBJECT, "rna_Object_internal_update_draw");
        
        prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
        RNA_def_property_float_sdna(prop, NULL, "col");