Cycles: svn merge -r40266:40358 https://svn.blender.org/svnroot/bf-blender/trunk...
[blender-staging.git] / source / blender / editors / render / render_shading.c
index 72cc4ec2afa5328168fde46e5518ae39fbdb417e..9ebe2014f92c2872a9a6d00fe8fcab3a975960b5 100644 (file)
@@ -28,7 +28,6 @@
  *  \ingroup edrend
  */
 
-
 #include <stdlib.h>
 #include <string.h>
 
@@ -79,6 +78,7 @@
 
 #include "ED_curve.h"
 #include "ED_mesh.h"
+#include "ED_node.h"
 #include "ED_render.h"
 #include "ED_screen.h"
 
@@ -371,10 +371,14 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op))
        PropertyRNA *prop;
 
        /* add or copy material */
-       if(ma)
+       if(ma) {
                ma= copy_material(ma);
-       else
+       }
+       else {
                ma= add_material("Material");
+               ED_node_shader_default(&ma->id);
+               ma->use_nodes= 1;
+       }
 
        /* hook into UI */
        uiIDContextProperty(C, &ptr, &prop);
@@ -417,10 +421,14 @@ static int new_texture_exec(bContext *C, wmOperator *UNUSED(op))
        PropertyRNA *prop;
 
        /* add or copy texture */
-       if(tex)
+       if(tex) {
                tex= copy_texture(tex);
-       else
+       }
+       else {
                tex= add_texture("Texture");
+               ED_node_shader_default(&tex->id);
+               tex->use_nodes= 1;
+       }
 
        /* hook into UI */
        uiIDContextProperty(C, &ptr, &prop);
@@ -463,10 +471,14 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op))
        PropertyRNA *prop;
 
        /* add or copy world */
-       if(wo)
+       if(wo) {
                wo= copy_world(wo);
-       else
+       }
+       else {
                wo= add_world("World");
+               ED_node_shader_default(&wo->id);
+               wo->use_nodes= 1;
+       }
 
        /* hook into UI */
        uiIDContextProperty(C, &ptr, &prop);