[Bf-blender-cvs] [bbc35fef25b] master: Cleanup: Remove remaining subdiv/subsurf files to C++

Hans Goudey noreply at git.blender.org
Fri Jan 20 05:26:13 CET 2023


Commit: bbc35fef25b369e4008e233da979879d0b3f0dbb
Author: Hans Goudey
Date:   Thu Jan 19 21:40:50 2023 -0600
Branches: master
https://developer.blender.org/rBbbc35fef25b369e4008e233da979879d0b3f0dbb

Cleanup: Remove remaining subdiv/subsurf files to C++

For continued refactoring of the Mesh data structure. See T103343.

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

M	source/blender/blenkernel/BKE_multires.h
M	source/blender/blenkernel/CMakeLists.txt
R090	source/blender/blenkernel/intern/subdiv.c	source/blender/blenkernel/intern/subdiv.cc
R086	source/blender/blenkernel/intern/subdiv_ccg_mask.c	source/blender/blenkernel/intern/subdiv_ccg_mask.cc
R087	source/blender/blenkernel/intern/subdiv_ccg_material.c	source/blender/blenkernel/intern/subdiv_ccg_material.cc
R096	source/blender/blenkernel/intern/subdiv_converter.c	source/blender/blenkernel/intern/subdiv_converter.cc
M	source/blender/blenkernel/intern/subdiv_converter.h
R081	source/blender/blenkernel/intern/subdiv_converter_mesh.c	source/blender/blenkernel/intern/subdiv_converter_mesh.cc
R082	source/blender/blenkernel/intern/subdiv_deform.c	source/blender/blenkernel/intern/subdiv_deform.cc
R073	source/blender/blenkernel/intern/subdiv_displacement.c	source/blender/blenkernel/intern/subdiv_displacement.cc
R091	source/blender/blenkernel/intern/subdiv_displacement_multires.c	source/blender/blenkernel/intern/subdiv_displacement_multires.cc
R091	source/blender/blenkernel/intern/subdiv_eval.c	source/blender/blenkernel/intern/subdiv_eval.cc
R098	source/blender/blenkernel/intern/subdiv_foreach.c	source/blender/blenkernel/intern/subdiv_foreach.cc
R100	source/blender/blenkernel/intern/subdiv_stats.c	source/blender/blenkernel/intern/subdiv_stats.cc
R084	source/blender/blenkernel/intern/subdiv_topology.c	source/blender/blenkernel/intern/subdiv_topology.cc
R083	source/blender/blenkernel/intern/subsurf_ccg.c	source/blender/blenkernel/intern/subsurf_ccg.cc

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

diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h
index 5e5ca8b4ee6..7c8c13ac8b2 100644
--- a/source/blender/blenkernel/BKE_multires.h
+++ b/source/blender/blenkernel/BKE_multires.h
@@ -41,7 +41,7 @@ void multires_flush_sculpt_updates(struct Object *object);
 void multires_force_sculpt_rebuild(struct Object *object);
 void multires_force_external_reload(struct Object *object);
 
-/* internal, only called in subsurf_ccg.c */
+/* internal, only called in subsurf_ccg.cc */
 void multires_modifier_update_mdisps(struct DerivedMesh *dm, struct Scene *scene);
 void multires_modifier_update_hidden(struct DerivedMesh *dm);
 
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 70da6b22672..77c16b6924c 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -268,22 +268,22 @@ set(SRC
   intern/sound.c
   intern/speaker.c
   intern/studiolight.c
-  intern/subdiv.c
+  intern/subdiv.cc
   intern/subdiv_ccg.cc
-  intern/subdiv_ccg_mask.c
-  intern/subdiv_ccg_material.c
-  intern/subdiv_converter.c
-  intern/subdiv_converter_mesh.c
-  intern/subdiv_deform.c
-  intern/subdiv_displacement.c
-  intern/subdiv_displacement_multires.c
-  intern/subdiv_eval.c
-  intern/subdiv_foreach.c
+  intern/subdiv_ccg_mask.cc
+  intern/subdiv_ccg_material.cc
+  intern/subdiv_converter.cc
+  intern/subdiv_converter_mesh.cc
+  intern/subdiv_deform.cc
+  intern/subdiv_displacement.cc
+  intern/subdiv_displacement_multires.cc
+  intern/subdiv_eval.cc
+  intern/subdiv_foreach.cc
   intern/subdiv_mesh.cc
   intern/subdiv_modifier.cc
-  intern/subdiv_stats.c
-  intern/subdiv_topology.c
-  intern/subsurf_ccg.c
+  intern/subdiv_stats.cc
+  intern/subdiv_topology.cc
+  intern/subsurf_ccg.cc
   intern/text.c
   intern/text_suggestions.c
   intern/texture.cc
@@ -848,4 +848,4 @@ if(WITH_GTESTS)
 
   # RNA_prototypes.h
   add_dependencies(bf_blenkernel_tests bf_rna)
-endif()
\ No newline at end of file
+endif()
diff --git a/source/blender/blenkernel/intern/subdiv.c b/source/blender/blenkernel/intern/subdiv.cc
similarity index 90%
rename from source/blender/blenkernel/intern/subdiv.c
rename to source/blender/blenkernel/intern/subdiv.cc
index 9098c010747..50d6248f0b5 100644
--- a/source/blender/blenkernel/intern/subdiv.c
+++ b/source/blender/blenkernel/intern/subdiv.cc
@@ -96,7 +96,7 @@ bool BKE_subdiv_settings_equal(const SubdivSettings *settings_a, const SubdivSet
 /* Creation from scratch. */
 
 Subdiv *BKE_subdiv_new_from_converter(const SubdivSettings *settings,
-                                      struct OpenSubdiv_Converter *converter)
+                                      OpenSubdiv_Converter *converter)
 {
   SubdivStats stats;
   BKE_subdiv_stats_init(&stats);
@@ -104,7 +104,7 @@ Subdiv *BKE_subdiv_new_from_converter(const SubdivSettings *settings,
   OpenSubdiv_TopologyRefinerSettings topology_refiner_settings;
   topology_refiner_settings.level = settings->level;
   topology_refiner_settings.is_adaptive = settings->is_adaptive;
-  struct OpenSubdiv_TopologyRefiner *osd_topology_refiner = NULL;
+  OpenSubdiv_TopologyRefiner *osd_topology_refiner = nullptr;
   if (converter->getNumVertices(converter) != 0) {
     osd_topology_refiner = openSubdiv_createTopologyRefinerFromConverter(
         converter, &topology_refiner_settings);
@@ -114,11 +114,11 @@ Subdiv *BKE_subdiv_new_from_converter(const SubdivSettings *settings,
      * The thing here is: OpenSubdiv can only deal with faces, but our
      * side of subdiv also deals with loose vertices and edges. */
   }
-  Subdiv *subdiv = MEM_callocN(sizeof(Subdiv), "subdiv from converter");
+  Subdiv *subdiv = MEM_cnew<Subdiv>(__func__);
   subdiv->settings = *settings;
   subdiv->topology_refiner = osd_topology_refiner;
-  subdiv->evaluator = NULL;
-  subdiv->displacement_evaluator = NULL;
+  subdiv->evaluator = nullptr;
+  subdiv->displacement_evaluator = nullptr;
   BKE_subdiv_stats_end(&stats, SUBDIV_STATS_TOPOLOGY_REFINER_CREATION_TIME);
   subdiv->stats = stats;
   return subdiv;
@@ -127,7 +127,7 @@ Subdiv *BKE_subdiv_new_from_converter(const SubdivSettings *settings,
 Subdiv *BKE_subdiv_new_from_mesh(const SubdivSettings *settings, const Mesh *mesh)
 {
   if (mesh->totvert == 0) {
-    return NULL;
+    return nullptr;
   }
   OpenSubdiv_Converter converter;
   BKE_subdiv_converter_init_for_mesh(&converter, settings, mesh);
@@ -144,7 +144,7 @@ Subdiv *BKE_subdiv_update_from_converter(Subdiv *subdiv,
 {
   /* Check if the existing descriptor can be re-used. */
   bool can_reuse_subdiv = true;
-  if (subdiv != NULL && subdiv->topology_refiner != NULL) {
+  if (subdiv != nullptr && subdiv->topology_refiner != nullptr) {
     if (!BKE_subdiv_settings_equal(&subdiv->settings, settings)) {
       can_reuse_subdiv = false;
     }
@@ -162,7 +162,7 @@ Subdiv *BKE_subdiv_update_from_converter(Subdiv *subdiv,
     return subdiv;
   }
   /* Create new subdiv. */
-  if (subdiv != NULL) {
+  if (subdiv != nullptr) {
     BKE_subdiv_free(subdiv);
   }
   return BKE_subdiv_new_from_converter(settings, converter);
@@ -183,7 +183,7 @@ Subdiv *BKE_subdiv_update_from_mesh(Subdiv *subdiv,
 
 void BKE_subdiv_free(Subdiv *subdiv)
 {
-  if (subdiv->evaluator != NULL) {
+  if (subdiv->evaluator != nullptr) {
     const eOpenSubdivEvaluator evaluator_type = subdiv->evaluator->type;
     if (evaluator_type != OPENSUBDIV_EVALUATOR_CPU) {
       /* Let the draw code do the freeing, to ensure that the OpenGL context is valid. */
@@ -192,11 +192,11 @@ void BKE_subdiv_free(Subdiv *subdiv)
     }
     openSubdiv_deleteEvaluator(subdiv->evaluator);
   }
-  if (subdiv->topology_refiner != NULL) {
+  if (subdiv->topology_refiner != nullptr) {
     openSubdiv_deleteTopologyRefiner(subdiv->topology_refiner);
   }
   BKE_subdiv_displacement_detach(subdiv);
-  if (subdiv->cache_.face_ptex_offset != NULL) {
+  if (subdiv->cache_.face_ptex_offset != nullptr) {
     MEM_freeN(subdiv->cache_.face_ptex_offset);
   }
   MEM_freeN(subdiv);
@@ -208,16 +208,16 @@ void BKE_subdiv_free(Subdiv *subdiv)
 
 int *BKE_subdiv_face_ptex_offset_get(Subdiv *subdiv)
 {
-  if (subdiv->cache_.face_ptex_offset != NULL) {
+  if (subdiv->cache_.face_ptex_offset != nullptr) {
     return subdiv->cache_.face_ptex_offset;
   }
   OpenSubdiv_TopologyRefiner *topology_refiner = subdiv->topology_refiner;
-  if (topology_refiner == NULL) {
-    return NULL;
+  if (topology_refiner == nullptr) {
+    return nullptr;
   }
   const int num_coarse_faces = topology_refiner->getNumFaces(topology_refiner);
-  subdiv->cache_.face_ptex_offset = MEM_malloc_arrayN(
-      num_coarse_faces + 1, sizeof(int), "subdiv face_ptex_offset");
+  subdiv->cache_.face_ptex_offset = static_cast<int *>(
+      MEM_malloc_arrayN(num_coarse_faces + 1, sizeof(int), __func__));
   int ptex_offset = 0;
   for (int face_index = 0; face_index < num_coarse_faces; face_index++) {
     const int num_ptex_faces = topology_refiner->getNumFacePtexFaces(topology_refiner, face_index);
diff --git a/source/blender/blenkernel/intern/subdiv_ccg_mask.c b/source/blender/blenkernel/intern/subdiv_ccg_mask.cc
similarity index 86%
rename from source/blender/blenkernel/intern/subdiv_ccg_mask.c
rename to source/blender/blenkernel/intern/subdiv_ccg_mask.cc
index 86891f0fa6e..538c4c5eaf4 100644
--- a/source/blender/blenkernel/intern/subdiv_ccg_mask.c
+++ b/source/blender/blenkernel/intern/subdiv_ccg_mask.cc
@@ -5,7 +5,7 @@
  * \ingroup bke
  */
 
-#include <math.h>
+#include <cmath>
 
 #include "BKE_subdiv_ccg.h"
 
@@ -22,12 +22,12 @@
 
 #include "MEM_guardedalloc.h"
 
-typedef struct PolyCornerIndex {
+struct PolyCornerIndex {
   int poly_index;
   int corner;
-} PolyCornerIndex;
+};
 
-typedef struct GridPaintMaskData {
+struct GridPaintMaskData {
   // int grid_size;
   const MPoly *mpoly;
   const GridPaintMask *grid_paint_mask;
@@ -38,7 +38,7 @@ typedef struct GridPaintMaskData {
    * there we only have one ptex.
    */
   PolyCornerIndex *ptex_poly_corner;
-} GridPaintMaskData;
+};
 
 static int mask_get_grid_and_coord(SubdivCCGMaskEvaluator *mask_evaluator,
                                    const int ptex_face_index,
@@ -48,7 +48,7 @@ static int mask_get_grid_and_coord(SubdivCCGMaskEvaluator *mask_evaluator,
                                    float *grid_u,
                                    float *grid_v)
 {
-  GridPaintMaskData *data = mask_evaluator->user_data;
+  GridPaintMaskData *data = static_cast<GridPaintMaskData *>(mask_evaluator->user_data);
   const PolyCornerIndex *poly_corner = &data->ptex_poly_corner[ptex_face_index];
   const MPoly *poly = &data->mpoly[poly_corner->poly_index];
   const int start_grid_index = poly->loopstart + poly_corner->corner;
@@ -70,7 +70,7 @@ BLI_INLINE float read_mask_grid(const GridPaintMask *mask_grid,
                                 const float grid_u,
                                 const float grid_v)
 {
-  if (mask_grid->data == NULL) {
+  if (mask_grid->data == nullptr) {
     return 0;
   }
   const int grid_size = BKE_subdiv_grid_size_from_level(mask_grid->level);
@@ -92,7 +92,7 @@ static float eval_mask(SubdivCCGMaskEvaluator *mask_evaluator,
 
 static void free_mask_data(SubdivCCGMaskEvaluator *mask_evaluator)
 {
-  GridPaintMaskData *data = mask_evaluator->user_data;
+  GridPaintMaskData *data = static_cast<GridPaintMaskData *>(mask_evaluator->user_data);
   MEM_freeN(data->ptex_poly_corner);
   MEM_freeN(data);
 }
@@ -113,12 +113,12 @@ static int count_num_ptex_faces(const Mesh *mesh)
 
 static void mask_data_init_mapping(SubdivCCGMaskEvaluator *mask_evaluator, const Mesh *mesh)
 {
-  GridPaintMaskData *data = mask_evaluator->user_data;
+  GridPaintMaskData *data = static_cast<GridPaintMaskData *>(mask_evaluator->user_data);
   const MPoly *mpoly = BKE_mesh_polys(mesh);
   const int num_ptex_faces = count_num_ptex_faces(mesh);
   /* Allocate memory. */
-  data->ptex_poly_corner = MEM_malloc_arrayN(
-      num_ptex_faces, sizeof(*data->ptex_poly_corner), "ptex poly corner");
+  data->ptex_poly_corner = static_cast<PolyCornerIndex *>(
+      MEM_malloc_arrayN(num_ptex_faces, sizeof(*data->ptex_poly_corner), __func__));
   /* Fill in offsets. */
   

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list