Mesh: Avoid redundant custom data layer initialization
In all these cases, it was clear that the layer values were set right
after the layer was created anyway. So there's no point in using
calloc or setting the values to zero first.
See 25237d2625
for more info.
This commit is contained in:
parent
47d105f6ad
commit
cccc6d6905
Notes:
blender-bot
2023-02-14 07:39:44 +01:00
Referenced by commitd94a11ed79
, Curves: Avoid unnecessarily initializing new positions layer Referenced by commit4c91c24bc7
, Attributes: Avoid unnecessarily initializing new attributes
|
@ -1003,11 +1003,11 @@ static void mesh_calc_modifiers(struct Depsgraph *depsgraph,
|
|||
((nextmask.vmask | nextmask.emask | nextmask.pmask) & CD_MASK_ORIGINDEX)) {
|
||||
/* calc */
|
||||
CustomData_add_layer(
|
||||
&mesh_final->vdata, CD_ORIGINDEX, CD_SET_DEFAULT, nullptr, mesh_final->totvert);
|
||||
&mesh_final->vdata, CD_ORIGINDEX, CD_CONSTRUCT, nullptr, mesh_final->totvert);
|
||||
CustomData_add_layer(
|
||||
&mesh_final->edata, CD_ORIGINDEX, CD_SET_DEFAULT, nullptr, mesh_final->totedge);
|
||||
&mesh_final->edata, CD_ORIGINDEX, CD_CONSTRUCT, nullptr, mesh_final->totedge);
|
||||
CustomData_add_layer(
|
||||
&mesh_final->pdata, CD_ORIGINDEX, CD_SET_DEFAULT, nullptr, mesh_final->totpoly);
|
||||
&mesh_final->pdata, CD_ORIGINDEX, CD_CONSTRUCT, nullptr, mesh_final->totpoly);
|
||||
|
||||
/* Not worth parallelizing this,
|
||||
* gives less than 0.1% overall speedup in best of best cases... */
|
||||
|
|
|
@ -291,7 +291,7 @@ void BKE_mesh_remesh_reproject_paint_mask(Mesh *target, const Mesh *source)
|
|||
}
|
||||
else {
|
||||
target_mask = (float *)CustomData_add_layer(
|
||||
&target->vdata, CD_PAINT_MASK, CD_SET_DEFAULT, nullptr, target->totvert);
|
||||
&target->vdata, CD_PAINT_MASK, CD_CONSTRUCT, nullptr, target->totvert);
|
||||
}
|
||||
|
||||
for (int i = 0; i < target->totvert; i++) {
|
||||
|
@ -325,7 +325,7 @@ void BKE_remesh_reproject_sculpt_face_sets(Mesh *target, const Mesh *source)
|
|||
}
|
||||
else {
|
||||
target_face_sets = (int *)CustomData_add_layer(
|
||||
&target->pdata, CD_SCULPT_FACE_SETS, CD_SET_DEFAULT, nullptr, target->totpoly);
|
||||
&target->pdata, CD_SCULPT_FACE_SETS, CD_CONSTRUCT, nullptr, target->totpoly);
|
||||
}
|
||||
|
||||
const MLoopTri *looptri = BKE_mesh_runtime_looptri_ensure(source);
|
||||
|
|
|
@ -1836,7 +1836,7 @@ static void sculpt_face_sets_ensure(Mesh *mesh)
|
|||
}
|
||||
|
||||
int *new_face_sets = static_cast<int *>(CustomData_add_layer(
|
||||
&mesh->pdata, CD_SCULPT_FACE_SETS, CD_SET_DEFAULT, nullptr, mesh->totpoly));
|
||||
&mesh->pdata, CD_SCULPT_FACE_SETS, CD_CONSTRUCT, nullptr, mesh->totpoly));
|
||||
|
||||
/* Initialize the new Face Set data-layer with a default valid visible ID and set the default
|
||||
* color to render it white. */
|
||||
|
@ -2078,7 +2078,7 @@ void BKE_sculpt_face_sets_ensure_from_base_mesh_visibility(Mesh *mesh)
|
|||
else {
|
||||
initialize_new_face_sets = true;
|
||||
int *new_face_sets = static_cast<int *>(CustomData_add_layer(
|
||||
&mesh->pdata, CD_SCULPT_FACE_SETS, CD_SET_DEFAULT, nullptr, mesh->totpoly));
|
||||
&mesh->pdata, CD_SCULPT_FACE_SETS, CD_CONSTRUCT, nullptr, mesh->totpoly));
|
||||
|
||||
/* Initialize the new Face Set data-layer with a default valid visible ID and set the default
|
||||
* color to render it white. */
|
||||
|
|
|
@ -540,7 +540,7 @@ void read_generated_coordinates(const ICompoundProperty &prop,
|
|||
cd_data = CustomData_get_layer(&mesh->vdata, CD_ORCO);
|
||||
}
|
||||
else {
|
||||
cd_data = CustomData_add_layer(&mesh->vdata, CD_ORCO, CD_SET_DEFAULT, nullptr, totvert);
|
||||
cd_data = CustomData_add_layer(&mesh->vdata, CD_ORCO, CD_CONSTRUCT, nullptr, totvert);
|
||||
}
|
||||
|
||||
float(*orcodata)[3] = static_cast<float(*)[3]>(cd_data);
|
||||
|
|
|
@ -87,7 +87,7 @@ Mesh *STLMeshHelper::to_mesh(Main *bmain, char *mesh_name)
|
|||
mesh->mpoly = static_cast<MPoly *>(
|
||||
CustomData_add_layer(&mesh->pdata, CD_MPOLY, CD_SET_DEFAULT, nullptr, mesh->totpoly));
|
||||
mesh->mloop = static_cast<MLoop *>(
|
||||
CustomData_add_layer(&mesh->ldata, CD_MLOOP, CD_SET_DEFAULT, nullptr, mesh->totloop));
|
||||
CustomData_add_layer(&mesh->ldata, CD_MLOOP, CD_CONSTRUCT, nullptr, mesh->totloop));
|
||||
|
||||
threading::parallel_for(tris_.index_range(), 2048, [&](IndexRange tris_range) {
|
||||
for (const int i : tris_range) {
|
||||
|
|
|
@ -1888,7 +1888,7 @@ static void skin_set_orig_indices(Mesh *mesh)
|
|||
int *orig, totpoly;
|
||||
|
||||
totpoly = mesh->totpoly;
|
||||
orig = CustomData_add_layer(&mesh->pdata, CD_ORIGINDEX, CD_SET_DEFAULT, NULL, totpoly);
|
||||
orig = CustomData_add_layer(&mesh->pdata, CD_ORIGINDEX, CD_CONSTRUCT, NULL, totpoly);
|
||||
copy_vn_i(orig, totpoly, ORIGINDEX_NONE);
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ static void write_vertex_creases(Mesh &mesh, const VArray<float> &crease_varray)
|
|||
}
|
||||
else {
|
||||
crease = static_cast<float *>(
|
||||
CustomData_add_layer(&mesh.vdata, CD_CREASE, CD_SET_DEFAULT, nullptr, mesh.totvert));
|
||||
CustomData_add_layer(&mesh.vdata, CD_CREASE, CD_CONSTRUCT, nullptr, mesh.totvert));
|
||||
}
|
||||
materialize_and_clamp_creases(crease_varray, {crease, mesh.totvert});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue