[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