Fix T52392: Node materials (Materials and World) not updated in viewport

Depsgraph was not updated after you used "Use Nodes" to create the nodetree.
This commit is contained in:
Dalai Felinto 2017-10-25 09:24:28 -02:00
parent 220fbddc8b
commit 005cb90113
Notes: blender-bot 2023-02-14 06:41:41 +01:00
Referenced by issue #52392, blender 2.8: Node materials (Materials and World) not updated in viewport
2 changed files with 12 additions and 5 deletions

View File

@ -93,6 +93,7 @@ const EnumPropertyItem rna_enum_ramp_blend_items[] = {
#include "BKE_paint.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "ED_node.h"
#include "ED_image.h"
@ -339,11 +340,13 @@ static void rna_Material_use_specular_ramp_set(PointerRNA *ptr, int value)
static void rna_Material_use_nodes_update(bContext *C, PointerRNA *ptr)
{
Material *ma = (Material *)ptr->data;
Main *bmain = CTX_data_main(C);
if (ma->use_nodes && ma->nodetree == NULL)
ED_node_shader_default(C, &ma->id);
rna_Material_draw_update(CTX_data_main(C), CTX_data_scene(C), ptr);
DEG_relations_tag_update(bmain);
rna_Material_draw_update(bmain, CTX_data_scene(C), ptr);
}
static const EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *UNUSED(C), PointerRNA *ptr,

View File

@ -47,6 +47,7 @@
#include "BKE_texture.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "ED_node.h"
@ -115,12 +116,15 @@ static void rna_World_draw_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Poi
static void rna_World_use_nodes_update(bContext *C, PointerRNA *ptr)
{
World *wrld = (World *)ptr->data;
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
if (wrld->use_nodes && wrld->nodetree == NULL)
ED_node_shader_default(C, &wrld->id);
rna_World_update(CTX_data_main(C), CTX_data_scene(C), ptr);
rna_World_draw_update(CTX_data_main(C), CTX_data_scene(C), ptr);
DEG_relations_tag_update(bmain);
rna_World_update(bmain, scene, ptr);
rna_World_draw_update(bmain, scene, ptr);
}
#else