From a933293f11199e6f7e8c24232ff5214229980cfb Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 24 Sep 2018 16:59:27 +0200 Subject: Multires: Pass mesh instead of object There is nothing we need from object in this case. --- source/blender/blenkernel/BKE_multires.h | 2 +- source/blender/blenkernel/intern/multires.c | 3 ++- source/blender/blenkernel/intern/multires_reshape.c | 11 +++++------ 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index eb6d6151254..2a9f5b3b7a7 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -130,7 +130,7 @@ bool multiresModifier_reshapeFromDeformModifier( struct ModifierData *md); bool multiresModifier_reshapeFromCCG( struct MultiresModifierData *mmd, - struct Object *object, + struct Mesh *coarse_mesh, struct SubdivCCG *subdiv_ccg); /* Subdivision integration, defined in multires_subdiv.c */ diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 24310bfe6ba..7ab1bcb1fb5 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -426,8 +426,9 @@ void multires_force_update(Object *ob) if (sculpt_session != NULL && sculpt_session->pbvh != NULL) { PBVH *pbvh = sculpt_session->pbvh; if (BKE_pbvh_type(pbvh) == PBVH_GRIDS) { + Mesh *mesh = ob->data; multiresModifier_reshapeFromCCG( - sculpt_session->multires, ob, sculpt_session->subdiv_ccg); + sculpt_session->multires, mesh, sculpt_session->subdiv_ccg); } else { /* NOTE: Disabled for until OpenSubdiv is enabled by default. */ diff --git a/source/blender/blenkernel/intern/multires_reshape.c b/source/blender/blenkernel/intern/multires_reshape.c index 9e17d41ed7a..20deb788194 100644 --- a/source/blender/blenkernel/intern/multires_reshape.c +++ b/source/blender/blenkernel/intern/multires_reshape.c @@ -420,7 +420,7 @@ typedef struct MultiresPropagateCornerData { static void multires_reshape_propagate_prepare( MultiresPropagateData *data, - Object *object, + Mesh *coarse_mesh, const int reshape_level, const int top_level) { @@ -430,7 +430,6 @@ static void multires_reshape_propagate_prepare( /* Nothing to do, reshape will happen on the whole grid content. */ return; } - Mesh *coarse_mesh = object->data; const int num_grids = coarse_mesh->totloop; MDisps *mdisps = CustomData_get_layer(&coarse_mesh->ldata, CD_MDISPS); MDisps *old_mdisps = MEM_dupallocN(mdisps); @@ -468,9 +467,10 @@ static void multires_reshape_propagate_prepare_from_mmd( const bool use_render_params) { Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); + Mesh *mesh = object->data; const int level = multires_get_level( scene_eval, object, mmd, use_render_params, true); - multires_reshape_propagate_prepare(data, object, level, mmd->totlvl); + multires_reshape_propagate_prepare(data, mesh, level, mmd->totlvl); } static void multires_reshape_propagate_corner_data( @@ -1070,10 +1070,9 @@ static void reshape_from_ccg_task( bool multiresModifier_reshapeFromCCG( MultiresModifierData *mmd, - Object *object, + Mesh *coarse_mesh, SubdivCCG *subdiv_ccg) { - Mesh *coarse_mesh = object->data; CCGKey key; BKE_subdiv_ccg_key_top_level(&key, subdiv_ccg); /* Sanity checks. */ @@ -1102,7 +1101,7 @@ bool multiresModifier_reshapeFromCCG( /* Initialize propagation to higher levels. */ MultiresPropagateData propagate_data; multires_reshape_propagate_prepare( - &propagate_data, object, key.level, mmd->totlvl); + &propagate_data, coarse_mesh, key.level, mmd->totlvl); /* Threaded grids iteration. */ ParallelRangeSettings parallel_range_settings; BLI_parallel_range_settings_defaults(¶llel_range_settings); -- cgit v1.2.3