Commit: 0af840470450f3d9e7d88e351fa33d4a5fcc11d9
Author: Hans Goudey
Date:   Mon Jun 20 13:57:21 2022 -0500
Branches: blender-v3.2-release
https://developer.blender.org/rB0af840470450f3d9e7d88e351fa33d4a5fcc11d9

Cleanup: Move paint_vertex_color_ops.c to C++

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

M       source/blender/editors/sculpt_paint/CMakeLists.txt
R089    source/blender/editors/sculpt_paint/paint_vertex_color_ops.c    
source/blender/editors/sculpt_paint/paint_vertex_color_ops.cc

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

diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt 
b/source/blender/editors/sculpt_paint/CMakeLists.txt
index 08eed52f440..64517560256 100644
--- a/source/blender/editors/sculpt_paint/CMakeLists.txt
+++ b/source/blender/editors/sculpt_paint/CMakeLists.txt
@@ -49,7 +49,7 @@ set(SRC
   paint_stroke.c
   paint_utils.c
   paint_vertex.cc
-  paint_vertex_color_ops.c
+  paint_vertex_color_ops.cc
   paint_vertex_color_utils.c
   paint_vertex_proj.c
   paint_vertex_weight_ops.c
diff --git a/source/blender/editors/sculpt_paint/paint_vertex_color_ops.c 
b/source/blender/editors/sculpt_paint/paint_vertex_color_ops.cc
similarity index 89%
rename from source/blender/editors/sculpt_paint/paint_vertex_color_ops.c
rename to source/blender/editors/sculpt_paint/paint_vertex_color_ops.cc
index a2e1adff50a..6a47aceb2b0 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex_color_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex_color_ops.cc
@@ -11,6 +11,7 @@
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
 
+#include "BLI_array.hh"
 #include "BLI_math_base.h"
 #include "BLI_math_color.h"
 
@@ -30,6 +31,8 @@
 
 #include "paint_intern.h" /* own include */
 
+using blender::Array;
+
 /* -------------------------------------------------------------------- */
 /** \name Internal Utility Functions
  * \{ */
@@ -45,7 +48,7 @@ static bool vertex_weight_paint_mode_poll(bContext *C)
 static void tag_object_after_update(Object *object)
 {
   BLI_assert(object->type == OB_MESH);
-  Mesh *mesh = object->data;
+  Mesh *mesh = static_cast<Mesh *>(object->data);
   DEG_id_tag_update(&mesh->id, ID_RECALC_COPY_ON_WRITE);
   /* NOTE: Original mesh is used for display, so tag it directly here. */
   BKE_mesh_batch_cache_dirty_tag(mesh, BKE_MESH_BATCH_DIRTY_ALL);
@@ -63,7 +66,8 @@ static bool vertex_paint_from_weight(Object *ob)
   const MPoly *mp;
   int vgroup_active;
 
-  if (((me = BKE_mesh_from_object(ob)) == NULL || (ED_mesh_color_ensure(me, 
NULL)) == false)) {
+  if (((me = BKE_mesh_from_object(ob)) == nullptr ||
+       (ED_mesh_color_ensure(me, nullptr)) == false)) {
     return false;
   }
 
@@ -128,14 +132,13 @@ static void vertex_color_smooth_looptag(Mesh *me, const 
bool *mlooptag)
 {
   const bool use_face_sel = (me->editflag & ME_EDIT_PAINT_FACE_SEL) != 0;
   const MPoly *mp;
-  int(*scol)[4];
   bool has_shared = false;
 
-  if (me->mloopcol == NULL || me->totvert == 0 || me->totpoly == 0) {
+  if (me->mloopcol == nullptr || me->totvert == 0 || me->totpoly == 0) {
     return;
   }
 
-  scol = MEM_callocN(sizeof(int) * me->totvert * 5, "scol");
+  int(*scol)[4] = static_cast<int(*)[4]>(MEM_callocN(sizeof(int) * me->totvert 
* 5, "scol"));
 
   int i;
   for (i = 0, mp = me->mpoly; i < me->totpoly; i++, mp++) {
@@ -185,16 +188,15 @@ static bool vertex_color_smooth(Object *ob)
   const MPoly *mp;
   int i, j;
 
-  bool *mlooptag;
-
-  if (((me = BKE_mesh_from_object(ob)) == NULL) || (ED_mesh_color_ensure(me, 
NULL) == false)) {
+  if (((me = BKE_mesh_from_object(ob)) == nullptr) ||
+      (ED_mesh_color_ensure(me, nullptr) == false)) {
     return false;
   }
 
   const bool use_face_sel = (me->editflag & ME_EDIT_PAINT_FACE_SEL) != 0;
   const bool use_vert_sel = (me->editflag & ME_EDIT_PAINT_VERT_SEL) != 0;
 
-  mlooptag = MEM_callocN(sizeof(bool) * me->totloop, "VPaintData mlooptag");
+  Array<bool> loop_tag(me->totloop, false);
 
   /* simply tag loops of selected faces */
   mp = me->mpoly;
@@ -208,7 +210,7 @@ static bool vertex_color_smooth(Object *ob)
     j = 0;
     do {
       if (!(use_vert_sel && !(me->mvert[ml->v].flag & SELECT))) {
-        mlooptag[mp->loopstart + j] = true;
+        loop_tag[mp->loopstart + j] = true;
       }
       ml++;
       j++;
@@ -218,9 +220,7 @@ static bool vertex_color_smooth(Object *ob)
   /* remove stale me->mcol, will be added later */
   BKE_mesh_tessface_clear(me);
 
-  vertex_color_smooth_looptag(me, mlooptag);
-
-  MEM_freeN(mlooptag);
+  vertex_color_smooth_looptag(me, loop_tag.data());
 
   tag_object_after_update(ob);
 
@@ -268,7 +268,8 @@ static void vpaint_tx_brightness_contrast(const float 
col[3],
                                           const void *user_data,
                                           float r_col[3])
 {
-  const struct VPaintTx_BrightContrastData *data = user_data;
+  const VPaintTx_BrightContrastData *data = static_cast<const 
VPaintTx_BrightContrastData *>(
+      user_data);
 
   for (int i = 0; i < 3; i++) {
     r_col[i] = data->gain * col[i] + data->offset;
@@ -302,10 +303,9 @@ static int vertex_color_brightness_contrast_exec(bContext 
*C, wmOperator *op)
     }
   }
 
-  const struct VPaintTx_BrightContrastData user_data = {
-      .gain = gain,
-      .offset = offset,
-  };
+  VPaintTx_BrightContrastData user_data{};
+  user_data.gain = gain;
+  user_data.offset = offset;
 
   if (ED_vpaint_color_transform(obact, vpaint_tx_brightness_contrast, 
&user_data)) {
     WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obact);
@@ -345,7 +345,7 @@ struct VPaintTx_HueSatData {
 
 static void vpaint_tx_hsv(const float col[3], const void *user_data, float 
r_col[3])
 {
-  const struct VPaintTx_HueSatData *data = user_data;
+  const VPaintTx_HueSatData *data = static_cast<const VPaintTx_HueSatData 
*>(user_data);
   float hsv[3];
   rgb_to_hsv_v(col, hsv);
 
@@ -366,11 +366,10 @@ static int vertex_color_hsv_exec(bContext *C, wmOperator 
*op)
 {
   Object *obact = CTX_data_active_object(C);
 
-  const struct VPaintTx_HueSatData user_data = {
-      .hue = RNA_float_get(op->ptr, "h"),
-      .sat = RNA_float_get(op->ptr, "s"),
-      .val = RNA_float_get(op->ptr, "v"),
-  };
+  VPaintTx_HueSatData user_data{};
+  user_data.hue = RNA_float_get(op->ptr, "h");
+  user_data.sat = RNA_float_get(op->ptr, "s");
+  user_data.val = RNA_float_get(op->ptr, "v");
 
   if (ED_vpaint_color_transform(obact, vpaint_tx_hsv, &user_data)) {
     WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obact);
@@ -410,7 +409,7 @@ static int vertex_color_invert_exec(bContext *C, wmOperator 
*UNUSED(op))
 {
   Object *obact = CTX_data_active_object(C);
 
-  if (ED_vpaint_color_transform(obact, vpaint_tx_invert, NULL)) {
+  if (ED_vpaint_color_transform(obact, vpaint_tx_invert, nullptr)) {
     WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obact);
     return OPERATOR_FINISHED;
   }
@@ -439,7 +438,7 @@ struct VPaintTx_LevelsData {
 
 static void vpaint_tx_levels(const float col[3], const void *user_data, float 
r_col[3])
 {
-  const struct VPaintTx_LevelsData *data = user_data;
+  const VPaintTx_LevelsData *data = static_cast<const VPaintTx_LevelsData 
*>(user_data);
   for (int i = 0; i < 3; i++) {
     r_col[i] = data->gain * (col[i] + data->offset);
   }
@@ -449,10 +448,9 @@ static int vertex_color_levels_exec(bContext *C, 
wmOperator *op)
 {
   Object *obact = CTX_data_active_object(C);
 
-  const struct VPaintTx_LevelsData user_data = {
-      .gain = RNA_float_get(op->ptr, "gain"),
-      .offset = RNA_float_get(op->ptr, "offset"),
-  };
+  VPaintTx_LevelsData user_data{};
+  user_data.gain = RNA_float_get(op->ptr, "gain");
+  user_data.offset = RNA_float_get(op->ptr, "offset");
 
   if (ED_vpaint_color_transform(obact, vpaint_tx_levels, &user_data)) {
     WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obact);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to