Merge branch 'blender2.7'
authorCampbell Barton <ideasman42@gmail.com>
Thu, 3 Jan 2019 01:23:17 +0000 (12:23 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 3 Jan 2019 01:25:37 +0000 (12:25 +1100)
1  2 
source/blender/blenkernel/BKE_material.h
source/blender/blenkernel/intern/material.c
source/blender/editors/render/render_shading.c

@@@ -545,29 -576,23 +545,38 @@@ Material **give_current_material_p(Obje
  
                matarar = give_matarar(ob);
  
-               if (matarar && *matarar) ma = (*matarar)[act - 1];
-               else ma = NULL;
+               if (matarar && *matarar) {
+                       ma_p = &(*matarar)[act - 1];
+               }
+               else {
+                       ma_p = NULL;
+               }
        }
  
-       return ma;
+       return ma_p;
+ }
+ Material *give_current_material(Object *ob, short act)
+ {
+       Material **ma_p = give_current_material_p(ob, act);
+       return ma_p ? *ma_p : NULL;
  }
  
 +MaterialGPencilStyle *BKE_material_gpencil_settings_get(Object *ob, short act)
 +{
 +      Material *ma = give_current_material(ob, act);
 +      if (ma != NULL) {
 +              if (ma->gp_style == NULL) {
 +                      BKE_material_init_gpencil_settings(ma);
 +              }
 +
 +              return ma->gp_style;
 +      }
 +      else {
 +              return NULL;
 +      }
 +}
 +
  Material *give_node_material(Material *ma)
  {
        if (ma && ma->use_nodes && ma->nodetree) {
@@@ -521,9 -460,9 +521,8 @@@ void OBJECT_OT_material_slot_move(wmOpe
  
  static int new_material_exec(bContext *C, wmOperator *UNUSED(op))
  {
 -      Scene *scene = CTX_data_scene(C);
        Material *ma = CTX_data_pointer_get_type(C, "material", &RNA_Material).data;
        Main *bmain = CTX_data_main(C);
-       Object *ob = CTX_data_active_object(C);
        PointerRNA ptr, idptr;
        PropertyRNA *prop;
  
                ma = BKE_material_copy(bmain, ma);
        }
        else {
 -              ma = BKE_material_add(bmain, DATA_("Material"));
 -
 -              if (BKE_scene_use_new_shading_nodes(scene)) {
 -                      ED_node_shader_default(C, &ma->id);
 -                      ma->use_nodes = true;
++              Object *ob = CTX_data_active_object(C);
 +              if ((!ob) || (ob->type != OB_GPENCIL)) {
 +                      ma = BKE_material_add(bmain, DATA_("Material"));
 +              }
 +              else {
 +                      ma = BKE_material_add_gpencil(bmain, DATA_("Material"));
                }
 +              ED_node_shader_default(C, &ma->id);
 +              ma->use_nodes = true;
        }
  
        /* hook into UI */