diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_material.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_material.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 1221b84372c..8936609c7db 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -24,17 +24,16 @@ * \ingroup RNA */ - #include <float.h> #include <stdlib.h> +#include "DNA_material_types.h" +#include "DNA_texture_types.h" + #include "RNA_define.h" #include "rna_internal.h" -#include "DNA_material_types.h" -#include "DNA_texture_types.h" - #include "WM_api.h" #include "WM_types.h" @@ -83,6 +82,7 @@ EnumPropertyItem ramp_blend_items[] = { #include "DNA_node_types.h" #include "DNA_object_types.h" +#include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_main.h" #include "BKE_material.h" @@ -112,9 +112,9 @@ static void rna_Material_update_previews(Main *bmain, Scene *scene, PointerRNA * Material *ma = ptr->id.data; if (ma->nodetree) - ntreeClearPreview(ma->nodetree); + BKE_node_preview_clear_tree(ma->nodetree); - rna_Material_update(bmain, scene, ptr); + WM_main_add_notifier(NC_MATERIAL | ND_SHADING, ma); } @@ -274,7 +274,7 @@ static void rna_Material_use_diffuse_ramp_set(PointerRNA *ptr, int value) else ma->mode &= ~MA_RAMP_COL; if ((ma->mode & MA_RAMP_COL) && ma->ramp_col == NULL) - ma->ramp_col = add_colorband(0); + ma->ramp_col = add_colorband(false); } static void rna_Material_use_specular_ramp_set(PointerRNA *ptr, int value) @@ -285,17 +285,17 @@ static void rna_Material_use_specular_ramp_set(PointerRNA *ptr, int value) else ma->mode &= ~MA_RAMP_SPEC; if ((ma->mode & MA_RAMP_SPEC) && ma->ramp_spec == NULL) - ma->ramp_spec = add_colorband(0); + ma->ramp_spec = add_colorband(false); } -static void rna_Material_use_nodes_update(Main *bmain, Scene *scene, PointerRNA *ptr) +static void rna_Material_use_nodes_update(bContext *C, PointerRNA *ptr) { Material *ma = (Material *)ptr->data; if (ma->use_nodes && ma->nodetree == NULL) - ED_node_shader_default(scene, &ma->id); + ED_node_shader_default(C, &ma->id); - rna_Material_update(bmain, scene, ptr); + rna_Material_update(CTX_data_main(C), CTX_data_scene(C), ptr); } static EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *UNUSED(C), PointerRNA *ptr, @@ -2025,6 +2025,7 @@ void RNA_def_material(BlenderRNA *brna) prop = RNA_def_property(srna, "use_nodes", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "use_nodes", 1); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); RNA_def_property_ui_text(prop, "Use Nodes", "Use shader nodes to render the material"); RNA_def_property_update(prop, 0, "rna_Material_use_nodes_update"); |