[Bf-blender-cvs] [a933293f111] blender2.8: Multires: Pass mesh instead of object

Sergey Sharybin noreply at git.blender.org
Tue Sep 25 09:53:38 CEST 2018


Commit: a933293f11199e6f7e8c24232ff5214229980cfb
Author: Sergey Sharybin
Date:   Mon Sep 24 16:59:27 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBa933293f11199e6f7e8c24232ff5214229980cfb

Multires: Pass mesh instead of object

There is nothing we need from object in this case.

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

M	source/blender/blenkernel/BKE_multires.h
M	source/blender/blenkernel/intern/multires.c
M	source/blender/blenkernel/intern/multires_reshape.c

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

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(&parallel_range_settings);



More information about the Bf-blender-cvs mailing list