Multires: Pass total level instead of modifier data
This is the only thing which needs to be done to perform propoer reshape. Makes it easier to re-use code from other places.
This commit is contained in:
@@ -129,7 +129,7 @@ bool multiresModifier_reshapeFromDeformModifier(
|
||||
struct Object *ob,
|
||||
struct ModifierData *md);
|
||||
bool multiresModifier_reshapeFromCCG(
|
||||
struct MultiresModifierData *mmd,
|
||||
const int tot_level,
|
||||
struct Mesh *coarse_mesh,
|
||||
struct SubdivCCG *subdiv_ccg);
|
||||
|
||||
|
||||
@@ -428,7 +428,7 @@ void multires_force_update(Object *ob)
|
||||
if (BKE_pbvh_type(pbvh) == PBVH_GRIDS) {
|
||||
Mesh *mesh = ob->data;
|
||||
multiresModifier_reshapeFromCCG(
|
||||
sculpt_session->multires, mesh, sculpt_session->subdiv_ccg);
|
||||
sculpt_session->multires->totlvl, mesh, sculpt_session->subdiv_ccg);
|
||||
}
|
||||
else {
|
||||
/* NOTE: Disabled for until OpenSubdiv is enabled by default. */
|
||||
|
||||
@@ -1069,7 +1069,7 @@ static void reshape_from_ccg_task(
|
||||
}
|
||||
|
||||
bool multiresModifier_reshapeFromCCG(
|
||||
MultiresModifierData *mmd,
|
||||
const int tot_level,
|
||||
Mesh *coarse_mesh,
|
||||
SubdivCCG *subdiv_ccg)
|
||||
{
|
||||
@@ -1091,8 +1091,8 @@ bool multiresModifier_reshapeFromCCG(
|
||||
.mdisps = mdisps,
|
||||
.grid_paint_mask = grid_paint_mask,
|
||||
/* TODO(sergey): Use grid_size_for_level_get */
|
||||
.grid_size = (1 << (mmd->totlvl - 1)) + 1,
|
||||
.level = mmd->totlvl},
|
||||
.grid_size = (1 << (tot_level - 1)) + 1,
|
||||
.level = tot_level},
|
||||
.face_ptex_offset = BKE_subdiv_face_ptex_offset_get(subdiv),
|
||||
.key = &key,
|
||||
.grids = subdiv_ccg->grids};
|
||||
@@ -1101,7 +1101,7 @@ bool multiresModifier_reshapeFromCCG(
|
||||
/* Initialize propagation to higher levels. */
|
||||
MultiresPropagateData propagate_data;
|
||||
multires_reshape_propagate_prepare(
|
||||
&propagate_data, coarse_mesh, key.level, mmd->totlvl);
|
||||
&propagate_data, coarse_mesh, key.level, tot_level);
|
||||
/* Threaded grids iteration. */
|
||||
ParallelRangeSettings parallel_range_settings;
|
||||
BLI_parallel_range_settings_defaults(¶llel_range_settings);
|
||||
|
||||
Reference in New Issue
Block a user