[Bf-blender-cvs] [21e2cdce546] greasepencil-object: Rework in modifers apply parameters

Antonio Vazquez noreply at git.blender.org
Wed May 30 16:52:58 CEST 2018


Commit: 21e2cdce5468b2fee34adc457a1e2faf20e3aa72
Author: Antonio Vazquez
Date:   Wed May 30 16:52:37 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rB21e2cdce5468b2fee34adc457a1e2faf20e3aa72

Rework in modifers apply parameters

Instead to pass the Context variable that it was used to get bmain pointer,now bmain is passed as parameter to reduce data and avoid any use of Context.

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

M	source/blender/blenkernel/BKE_modifier.h
M	source/blender/editors/gpencil/gpencil_data.c
M	source/blender/editors/include/ED_object.h
M	source/blender/editors/object/object_modifier.c
M	source/blender/modifiers/intern/MOD_gpencilbuild.c
M	source/blender/modifiers/intern/MOD_gpencilcolor.c
M	source/blender/modifiers/intern/MOD_gpencilhook.c
M	source/blender/modifiers/intern/MOD_gpencilinstance.c
M	source/blender/modifiers/intern/MOD_gpencillattice.c
M	source/blender/modifiers/intern/MOD_gpencilnoise.c
M	source/blender/modifiers/intern/MOD_gpenciloffset.c
M	source/blender/modifiers/intern/MOD_gpencilopacity.c
M	source/blender/modifiers/intern/MOD_gpencilsimplify.c
M	source/blender/modifiers/intern/MOD_gpencilsmooth.c
M	source/blender/modifiers/intern/MOD_gpencilsubdiv.c
M	source/blender/modifiers/intern/MOD_gpencilthick.c
M	source/blender/modifiers/intern/MOD_gpenciltint.c

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

diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 74b38b1dfd0..ff1ec83a765 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -317,7 +317,7 @@ typedef struct ModifierTypeInfo {
 	 * As such, this callback needs to go through all layers/frames in the
 	 * datablock, mutating the geometry and/or creating new datablocks/objects
 	 */
-	void (*gp_bakeModifier)(const struct bContext *C, struct Depsgraph *depsgraph,
+	void (*gp_bakeModifier)(struct Main *bmain, struct Depsgraph *depsgraph,
                            struct ModifierData *md, struct Object *ob);
 
 	/********************* Optional functions *********************/
diff --git a/source/blender/editors/gpencil/gpencil_data.c b/source/blender/editors/gpencil/gpencil_data.c
index 2d0824a73d3..64b7f31ee1e 100644
--- a/source/blender/editors/gpencil/gpencil_data.c
+++ b/source/blender/editors/gpencil/gpencil_data.c
@@ -1804,7 +1804,7 @@ int ED_gpencil_join_objects_exec(bContext *C, wmOperator *op)
 				for (ModifierData *md = base->object->modifiers.first; md; md = md->next) {
 					const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
 					if (mti->gp_bakeModifier) {
-						mti->gp_bakeModifier(C, depsgraph, md, base->object);
+						mti->gp_bakeModifier(bmain, depsgraph, md, base->object);
 					}
 				}
 
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 38cf754dda2..5dcc9baaf34 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -245,7 +245,7 @@ int ED_object_modifier_convert(
         struct ReportList *reports, struct Main *bmain, struct Scene *scene,
         struct ViewLayer *view_layer, struct Object *ob, struct ModifierData *md);
 int ED_object_modifier_apply(
-        struct ReportList *reports, struct Depsgraph *depsgraph, struct Scene *scene,
+        struct ReportList *reports, struct Main *bmain, struct Depsgraph *depsgraph, struct Scene *scene,
         struct Object *ob, struct ModifierData *md, int mode);
 int ED_object_modifier_copy(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
 
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index a614cdb68e2..2f9e5a23033 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -590,7 +590,7 @@ static int modifier_apply_shape(ReportList *reports, Depsgraph *depsgraph, Scene
 	return 1;
 }
 
-static int modifier_apply_obdata(ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md)
+static int modifier_apply_obdata(ReportList *reports, Main *bmain, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md)
 {
 	const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
 
@@ -664,11 +664,8 @@ static int modifier_apply_obdata(ReportList *reports, Depsgraph *depsgraph, Scen
 			BKE_report(reports, RPT_ERROR, "Not implemented");
 			return 0;
 		}
-#if 0 /* GPXX: Now is passing the context, but this must be removed 
-	   * disable to compile while found a better solution */	
-		mti->gp_bakeModifier(C, depsgraph, md, ob);
+		mti->gp_bakeModifier(bmain, depsgraph, md, ob);
 		DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
-#endif
 	}
 	else {
 		BKE_report(reports, RPT_ERROR, "Cannot apply modifier for this object type");
@@ -693,7 +690,7 @@ static int modifier_apply_obdata(ReportList *reports, Depsgraph *depsgraph, Scen
 }
 
 int ED_object_modifier_apply(
-        ReportList *reports, Depsgraph *depsgraph,
+        ReportList *reports, Main *bmain, Depsgraph *depsgraph,
         Scene *scene, Object *ob, ModifierData *md, int mode)
 {
 	int prev_mode;
@@ -739,7 +736,7 @@ int ED_object_modifier_apply(
 		}
 	}
 	else {
-		if (!modifier_apply_obdata(reports, depsgraph, scene, ob, md)) {
+		if (!modifier_apply_obdata(reports, bmain, depsgraph, scene, ob, md)) {
 			md->mode = prev_mode;
 			return 0;
 		}
@@ -1047,13 +1044,14 @@ void OBJECT_OT_modifier_move_down(wmOperatorType *ot)
 
 static int modifier_apply_exec(bContext *C, wmOperator *op)
 {
+	Main *bmain = CTX_data_main(C);
 	Depsgraph *depsgraph = CTX_data_depsgraph(C);
 	Scene *scene = CTX_data_scene(C);
 	Object *ob = ED_object_active_context(C);
 	ModifierData *md = edit_modifier_property_get(op, ob, 0);
 	int apply_as = RNA_enum_get(op->ptr, "apply_as");
 
-	if (!md || !ED_object_modifier_apply(op->reports, depsgraph, scene, ob, md, apply_as)) {
+	if (!md || !ED_object_modifier_apply(op->reports, bmain, depsgraph, scene, ob, md, apply_as)) {
 		return OPERATOR_CANCELLED;
 	}
 
diff --git a/source/blender/modifiers/intern/MOD_gpencilbuild.c b/source/blender/modifiers/intern/MOD_gpencilbuild.c
index 509afc1541e..93bdc863ea4 100644
--- a/source/blender/modifiers/intern/MOD_gpencilbuild.c
+++ b/source/blender/modifiers/intern/MOD_gpencilbuild.c
@@ -517,7 +517,7 @@ static void gp_generateStrokes(
  */
 #if 0
 static void gp_bakeModifier(
-        const bContext *C, const Depsgraph *UNUSED(depsgraph),
+		Main *bmain, const Depsgraph *UNUSED(depsgraph),
         ModifierData *md, Object *ob)
 {
 	bGPdata *gpd = ob->data;
diff --git a/source/blender/modifiers/intern/MOD_gpencilcolor.c b/source/blender/modifiers/intern/MOD_gpencilcolor.c
index 0a94dc707ae..4d2eb937b80 100644
--- a/source/blender/modifiers/intern/MOD_gpencilcolor.c
+++ b/source/blender/modifiers/intern/MOD_gpencilcolor.c
@@ -96,11 +96,10 @@ static void gp_deformStroke(
 }
 
 static void gp_bakeModifier(
-        const bContext *C, Depsgraph *depsgraph,
+		Main *bmain, Depsgraph *depsgraph,
         ModifierData *md, Object *ob)
 {
 	ColorGpencilModifierData *mmd = (ColorGpencilModifierData *)md;
-	Main *bmain = CTX_data_main(C);
 	bGPdata *gpd = ob->data;
 
 	GHash *gh_color = BLI_ghash_str_new("GP_Color modifier");
diff --git a/source/blender/modifiers/intern/MOD_gpencilhook.c b/source/blender/modifiers/intern/MOD_gpencilhook.c
index d788ac697eb..06190e505a2 100644
--- a/source/blender/modifiers/intern/MOD_gpencilhook.c
+++ b/source/blender/modifiers/intern/MOD_gpencilhook.c
@@ -260,11 +260,10 @@ static void gp_deformStroke(
  * (i.e. one where we don't have to worry about restoring state)
  */
 static void gp_bakeModifier(
-        const bContext *C, Depsgraph *depsgraph,
+		Main *bmain, Depsgraph *depsgraph,
         ModifierData *md, Object *ob)
 {
 	HookGpencilModifierData *mmd = (HookGpencilModifierData *)md;
-	Main *bmain = CTX_data_main(C);
 	Scene *scene = md->scene;
 	bGPdata *gpd = ob->data;
 	int oldframe = CFRA;
diff --git a/source/blender/modifiers/intern/MOD_gpencilinstance.c b/source/blender/modifiers/intern/MOD_gpencilinstance.c
index 3521a40367e..874c1091bb5 100644
--- a/source/blender/modifiers/intern/MOD_gpencilinstance.c
+++ b/source/blender/modifiers/intern/MOD_gpencilinstance.c
@@ -239,7 +239,7 @@ static void generate_geometry(
 
 /* gp_bakeModifier - "Bake to Data" Mode */
 static void bakeModifierGP_strokes(
-        const bContext *UNUSED(C), Depsgraph *depsgraph,
+        Depsgraph *depsgraph,
         ModifierData *md, Object *ob)
 {
 	bGPdata *gpd = ob->data;
@@ -254,10 +254,8 @@ static void bakeModifierGP_strokes(
 /* -------------------------------- */
 
 /* helper to create a new object */
-static Object *array_instance_add_ob_copy(const bContext *C, Object *from_ob)
+static Object *array_instance_add_ob_copy(Main *bmain, Scene *scene, Object *from_ob)
 {
-	Main *bmain = CTX_data_main(C);
-	Scene *scene = CTX_data_scene(C);
 	Object *ob;
 	
 	ob = BKE_object_copy(bmain, from_ob);
@@ -274,10 +272,10 @@ static Object *array_instance_add_ob_copy(const bContext *C, Object *from_ob)
 }
 
 /* gp_bakeModifier - "Make Objects" Mode */
-static void bakeModifierGP_objects(const bContext *C, ModifierData *md, Object *ob)
+static void bakeModifierGP_objects(Main *bmain, ModifierData *md, Object *ob)
 {
 	InstanceGpencilModifierData *mmd = (InstanceGpencilModifierData *)md;
-	
+	Scene *scene = md->scene;
 	/* reset random */
 	mmd->rnd[0] = 1;
 	
@@ -318,7 +316,7 @@ static void bakeModifierGP_objects(const bContext *C, ModifierData *md, Object *
 				 * to make them unique (if necessary), without too
 				 * much extra memory usage.
 				 */
-				newob = array_instance_add_ob_copy(C, ob);
+				newob = array_instance_add_ob_copy(bmain, scene, ob);
 				
 				/* remove array on destination object */
 				fmd = (ModifierData *)BLI_findstring(&newob->modifiers, md->name, offsetof(ModifierData, name));
@@ -362,7 +360,7 @@ static void gp_generateStrokes(
 
 /* Generic "gp_bakeModifier" callback */
 static void gp_bakeModifier(
-        const bContext *C, Depsgraph *depsgraph,
+		Main *bmain, Depsgraph *depsgraph,
         ModifierData *md, Object *ob)
 {
 	InstanceGpencilModifierData *mmd = (InstanceGpencilModifierData *)md;
@@ -371,10 +369,10 @@ static void gp_bakeModifier(
 	 * Sometimes it's useful to have the option to do either of these...
 	 */
 	if (mmd->flag & GP_INSTANCE_MAKE_OBJECTS) {
-		bakeModifierGP_objects(C, md, ob);
+		bakeModifierGP_objects(bmain, md, ob);
 	}
 	else {
-		bakeModifierGP_strokes(C, depsgraph, md, ob);
+		bakeModifierGP_strokes(depsgraph, md, ob);
 	}
 }
 
diff --git a/source/blender/modifiers/intern/MOD_gpencillattice.c b/source/blender/modifiers/intern/MOD_gpencillattice.c
index 99d2a49caf6..5307b7be934 100644
--- a/source/blender/modifiers/intern/MOD_gpencillattice.c
+++ b/source/blender/modifiers/intern/MOD_gpencillattice.c
@@ -107,11 +107,10 @@ static void gp_deformStroke(
  * (i.e. one where we don't have to worry about restoring state)
  */
 static void gp_bakeModifier(
-        const bContext *C, Depsgraph *depsgraph,
+		Main *bmain, Depsgraph *depsgraph,
         ModifierData *md, Object *ob)
 {
 	LatticeGpencilModifierData *mmd = (LatticeGpencilModifierData *)md;
-	Main *bmain = CTX_data_main(C);
 	Scene *scene = md->scene;
 	struct LatticeDeformData *ldata = NULL;
 	bGPdata *gpd = ob->data;
diff --git a/source/blender/modifiers/intern/MOD_gpencilnoise.c b/source/blender/modifiers/intern/MOD_gpencilnoise.c
index 29091eaf199..1088bba4a79 100644
--- a/source/blender/mod

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list