[Bf-blender-cvs] [85d274a60c0] sculpt-dev: Merge branch 'master' into sculpt-dev

Joseph Eagar noreply at git.blender.org
Sat Sep 18 01:34:46 CEST 2021


Commit: 85d274a60c03b067efaddeda921f0edf1c0982b3
Author: Joseph Eagar
Date:   Fri Sep 17 16:22:10 2021 -0700
Branches: sculpt-dev
https://developer.blender.org/rB85d274a60c03b067efaddeda921f0edf1c0982b3

Merge branch 'master' into sculpt-dev

===================================================================



===================================================================

diff --cc source/blender/editors/object/object_relations.c
index 699efd9ce75,75269dffec8..2d535b12b08
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@@ -87,6 -85,6 +87,7 @@@
  #include "BKE_modifier.h"
  #include "BKE_node.h"
  #include "BKE_object.h"
++#include "BKE_paint.h"
  #include "BKE_pointcloud.h"
  #include "BKE_report.h"
  #include "BKE_scene.h"
@@@ -2757,63 -2753,6 +2758,63 @@@ char *ED_object_ot_drop_named_material_
    return result;
  }
  
- static void drop_named_material_face_set_slots_update(bContext *C, Object *ob, const wmEvent *event) {
-     Main *bmain = CTX_data_main(C);
-     Mesh *mesh = BKE_mesh_from_object(ob);
++static void drop_named_material_face_set_slots_update(bContext *C,
++                                                      Object *ob,
++                                                      const wmEvent *event)
++{
++  Main *bmain = CTX_data_main(C);
++  Mesh *mesh = BKE_mesh_from_object(ob);
 +
-     bScreen *screen = CTX_wm_screen(C);
-     ARegion *region = BKE_screen_find_main_region_at_xy(
-             screen, SPACE_VIEW3D, event->x, event->y);
++  bScreen *screen = CTX_wm_screen(C);
++  ARegion *region = BKE_screen_find_main_region_at_xy(screen, SPACE_VIEW3D, event->x, event->y);
 +
-     const float mval[2] = {event->x - region->winrct.xmin, event->y - region->winrct.ymin};
-     const int face_set_id = ED_sculpt_face_sets_active_update_and_get(C, ob, mval);
++  const float mval[2] = {event->x - region->winrct.xmin, event->y - region->winrct.ymin};
++  const int face_set_id = ED_sculpt_face_sets_active_update_and_get(C, ob, mval);
 +
-     int *face_sets = CustomData_get_layer(&mesh->pdata, CD_SCULPT_FACE_SETS);
++  int *face_sets = CustomData_get_layer(&mesh->pdata, CD_SCULPT_FACE_SETS);
 +
-     short face_set_nr = -1;
-     for (int i = 0; i < mesh->totpoly; i++) {
-       if (face_sets[i] != face_set_id) {
-         continue;
-       } 
-       face_set_nr = mesh->mpoly[i].mat_nr;
-       break;
++  short face_set_nr = -1;
++  for (int i = 0; i < mesh->totpoly; i++) {
++    if (face_sets[i] != face_set_id) {
++      continue;
 +    }
++    face_set_nr = mesh->mpoly[i].mat_nr;
++    break;
++  }
 +
-     bool create_new_slot = false;
-     for (int i = 0; i < mesh->totpoly; i++) {
-       if (face_sets[i] == face_set_id) {
-         if (mesh->mpoly[i].mat_nr != face_set_nr) {
-           create_new_slot = true;
-           break;
-         }
-       } 
-       else {
-         if (mesh->mpoly[i].mat_nr == face_set_nr) {
-           create_new_slot = true;
-           break;
-         }
++  bool create_new_slot = false;
++  for (int i = 0; i < mesh->totpoly; i++) {
++    if (face_sets[i] == face_set_id) {
++      if (mesh->mpoly[i].mat_nr != face_set_nr) {
++        create_new_slot = true;
++        break;
 +      }
 +    }
- 
- 
-     if (create_new_slot) {
-       BKE_object_material_slot_add(bmain, ob);
-     }
 +    else {
-       ob->actcol = face_set_nr + 1;
++      if (mesh->mpoly[i].mat_nr == face_set_nr) {
++        create_new_slot = true;
++        break;
++      }
 +    }
++  }
 +
-     const short active_mat_slot = ob->actcol;
-     const short material_nr = active_mat_slot - 1;
-     for (int i = 0; i < mesh->totpoly; i++) {
-       if (face_sets[i] != face_set_id) {
-         continue;
-       } 
-       mesh->mpoly[i].mat_nr = material_nr;
-     }
++  if (create_new_slot) {
++    BKE_object_material_slot_add(bmain, ob);
++  }
++  else {
++    ob->actcol = face_set_nr + 1;
++  }
 +
++  const short active_mat_slot = ob->actcol;
++  const short material_nr = active_mat_slot - 1;
++  for (int i = 0; i < mesh->totpoly; i++) {
++    if (face_sets[i] != face_set_id) {
++      continue;
++    }
++    mesh->mpoly[i].mat_nr = material_nr;
++  }
 +}
 +
  static int drop_named_material_invoke(bContext *C, wmOperator *op, const wmEvent *event)
  {
    Main *bmain = CTX_data_main(C);
@@@ -2827,14 -2769,7 +2831,11 @@@
      return OPERATOR_CANCELLED;
    }
  
 +  if (ob->mode == OB_MODE_SCULPT) {
 +    drop_named_material_face_set_slots_update(C, ob, event);
 +  }
 +
-   const short active_mat_slot = ob->actcol;
- 
-   BKE_object_material_assign(
-     CTX_data_main(C), ob, ma, active_mat_slot, BKE_MAT_ASSIGN_USERPREF);
+   BKE_object_material_assign(CTX_data_main(C), ob, ma, mat_slot, BKE_MAT_ASSIGN_USERPREF);
  
    DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM);



More information about the Bf-blender-cvs mailing list