[Bf-blender-cvs] [da11e33b26b] master: Cleanup: remove G.main from BKE mball code.

Bastien Montagne noreply at git.blender.org
Thu May 31 16:44:25 CEST 2018


Commit: da11e33b26b6579ef36c97de1b6fbc0eb02a0b69
Author: Bastien Montagne
Date:   Thu May 31 16:44:05 2018 +0200
Branches: master
https://developer.blender.org/rBda11e33b26b6579ef36c97de1b6fbc0eb02a0b69

Cleanup: remove G.main from BKE mball code.

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

M	source/blender/alembic/intern/abc_exporter.cc
M	source/blender/alembic/intern/abc_mball.cc
M	source/blender/alembic/intern/abc_mball.h
M	source/blender/blenkernel/BKE_mball.h
M	source/blender/blenkernel/intern/depsgraph.c
M	source/blender/blenkernel/intern/displist.c
M	source/blender/blenkernel/intern/mball.c
M	source/blender/blenkernel/intern/mesh_convert.c
M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M	source/blender/editors/object/object_add.c
M	source/blender/makesrna/intern/rna_meta.c
M	source/blender/render/intern/source/convertblender.c

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

diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index 946b89213e6..2e882a491c3 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -111,7 +111,7 @@ static bool object_is_smoke_sim(Object *ob)
 	return false;
 }
 
-static bool object_type_is_exportable(Scene *scene, Object *ob)
+static bool object_type_is_exportable(EvaluationContext *eval_ctx, Scene *scene, Object *ob)
 {
 	switch (ob->type) {
 		case OB_MESH:
@@ -126,7 +126,7 @@ static bool object_type_is_exportable(Scene *scene, Object *ob)
 		case OB_CAMERA:
 			return true;
 		case OB_MBALL:
-			return AbcMBallWriter::isBasisBall(scene, ob);
+			return AbcMBallWriter::isBasisBall(eval_ctx, scene, ob);
 		default:
 			return false;
 	}
@@ -386,7 +386,7 @@ void AbcExporter::exploreTransform(EvaluationContext *eval_ctx, Object *ob, Obje
 		return;
 	}
 
-	if (object_type_is_exportable(m_scene, ob)) {
+	if (object_type_is_exportable(eval_ctx, m_scene, ob)) {
 		createTransformWriter(ob, parent, dupliObParent);
 	}
 
@@ -551,7 +551,7 @@ void AbcExporter::createParticleSystemsWriters(Object *ob, AbcTransformWriter *x
 
 void AbcExporter::createShapeWriter(Object *ob, Object *dupliObParent)
 {
-	if (!object_type_is_exportable(m_scene, ob)) {
+	if (!object_type_is_exportable(m_bmain->eval_ctx, m_scene, ob)) {
 		return;
 	}
 
diff --git a/source/blender/alembic/intern/abc_mball.cc b/source/blender/alembic/intern/abc_mball.cc
index 1ef7b757577..c5712daf499 100644
--- a/source/blender/alembic/intern/abc_mball.cc
+++ b/source/blender/alembic/intern/abc_mball.cc
@@ -115,8 +115,8 @@ void AbcMBallWriter::do_write()
 	m_mesh_ob->data = NULL;
 }
 
-bool AbcMBallWriter::isBasisBall(Scene *scene, Object *ob)
+bool AbcMBallWriter::isBasisBall(EvaluationContext *eval_ctx, Scene *scene, Object *ob)
 {
-	Object *basis_ob = BKE_mball_basis_find(scene, ob);
+	Object *basis_ob = BKE_mball_basis_find(eval_ctx, scene, ob);
 	return ob == basis_ob;
 }
diff --git a/source/blender/alembic/intern/abc_mball.h b/source/blender/alembic/intern/abc_mball.h
index 9b943698416..9a74006f839 100644
--- a/source/blender/alembic/intern/abc_mball.h
+++ b/source/blender/alembic/intern/abc_mball.h
@@ -26,6 +26,7 @@
 #include "abc_object.h"
 
 class AbcMeshWriter;
+struct EvaluationContext;
 struct Main;
 struct MetaBall;
 struct Object;
@@ -50,7 +51,7 @@ public:
 
 	~AbcMBallWriter();
 
-	static bool isBasisBall(Scene *scene, Object *ob);
+	static bool isBasisBall(EvaluationContext *eval_ctx, Scene *scene, Object *ob);
 
 private:
 	virtual void do_write();
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h
index f02704ba903..c73dd7260c4 100644
--- a/source/blender/blenkernel/BKE_mball.h
+++ b/source/blender/blenkernel/BKE_mball.h
@@ -32,6 +32,7 @@
  *  \since March 2001
  *  \author nzc
  */
+struct EvaluationContext;
 struct Main;
 struct MetaBall;
 struct Object;
@@ -48,12 +49,12 @@ void BKE_mball_make_local(struct Main *bmain, struct MetaBall *mb, const bool li
 
 bool BKE_mball_is_basis_for(struct Object *ob1, struct Object *ob2);
 bool BKE_mball_is_basis(struct Object *ob);
-struct Object *BKE_mball_basis_find(struct Scene *scene, struct Object *ob);
+struct Object *BKE_mball_basis_find(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob);
 
 void BKE_mball_texspace_calc(struct Object *ob);
 float *BKE_mball_make_orco(struct Object *ob, struct ListBase *dispbase);
 
-void BKE_mball_properties_copy(struct Scene *scene, struct Object *active_object);
+void BKE_mball_properties_copy(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *active_object);
 
 bool BKE_mball_minmax(struct MetaBall *mb, float min[3], float max[3]);
 bool BKE_mball_minmax_ex(struct MetaBall *mb, float min[3], float max[3],
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index c29dc6c9311..80275324da6 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -740,7 +740,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
 		}
 		case OB_MBALL: 
 		{
-			Object *mom = BKE_mball_basis_find(scene, ob);
+			Object *mom = BKE_mball_basis_find(G.main->eval_ctx, scene, ob);
 			
 			if (mom != ob) {
 				node2 = dag_get_node(dag, mom);
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 8433634f749..00e319efb7a 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -731,7 +731,7 @@ void BKE_displist_make_mball(EvaluationContext *eval_ctx, Scene *scene, Object *
 	if (!ob || ob->type != OB_MBALL)
 		return;
 
-	if (ob == BKE_mball_basis_find(scene, ob)) {
+	if (ob == BKE_mball_basis_find(eval_ctx, scene, ob)) {
 		if (ob->curve_cache) {
 			BKE_displist_free(&(ob->curve_cache->disp));
 		}
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index dfc49c996b1..3609fde7711 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -316,7 +316,7 @@ bool BKE_mball_is_basis_for(Object *ob1, Object *ob2)
  * are copied to all metaballs in same "group" (metaballs with same base name: MBall,
  * MBall.001, MBall.002, etc). The most important is to copy properties to the base metaball,
  * because this metaball influence polygonisation of metaballs. */
-void BKE_mball_properties_copy(Scene *scene, Object *active_object)
+void BKE_mball_properties_copy(EvaluationContext *eval_ctx, Scene *scene, Object *active_object)
 {
 	Scene *sce_iter = scene;
 	Base *base;
@@ -325,7 +325,6 @@ void BKE_mball_properties_copy(Scene *scene, Object *active_object)
 	int basisnr, obnr;
 	char basisname[MAX_ID_NAME], obname[MAX_ID_NAME];
 	SceneBaseIter iter;
-	EvaluationContext *eval_ctx = G.main->eval_ctx;
 
 	BLI_split_name_num(basisname, &basisnr, active_object->id.name + 2, '.');
 
@@ -360,7 +359,7 @@ void BKE_mball_properties_copy(Scene *scene, Object *active_object)
  *
  * warning!, is_basis_mball() can fail on returned object, see long note above.
  */
-Object *BKE_mball_basis_find(Scene *scene, Object *basis)
+Object *BKE_mball_basis_find(EvaluationContext *eval_ctx, Scene *scene, Object *basis)
 {
 	Scene *sce_iter = scene;
 	Base *base;
@@ -368,7 +367,6 @@ Object *BKE_mball_basis_find(Scene *scene, Object *basis)
 	int basisnr, obnr;
 	char basisname[MAX_ID_NAME], obname[MAX_ID_NAME];
 	SceneBaseIter iter;
-	EvaluationContext *eval_ctx = G.main->eval_ctx;
 
 	BLI_split_name_num(basisname, &basisnr, basis->id.name + 2, '.');
 
diff --git a/source/blender/blenkernel/intern/mesh_convert.c b/source/blender/blenkernel/intern/mesh_convert.c
index 17071b6d7ea..81aeabd2f5c 100644
--- a/source/blender/blenkernel/intern/mesh_convert.c
+++ b/source/blender/blenkernel/intern/mesh_convert.c
@@ -876,7 +876,7 @@ Mesh *BKE_mesh_new_from_object(
 		case OB_MBALL:
 		{
 			/* metaballs don't have modifiers, so just convert to mesh */
-			Object *basis_ob = BKE_mball_basis_find(sce, ob);
+			Object *basis_ob = BKE_mball_basis_find(bmain->eval_ctx, sce, ob);
 			/* todo, re-generatre for render-res */
 			/* metaball_polygonize(scene, ob) */
 
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 3a4ca7515a3..c646d7c20ff 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -838,7 +838,7 @@ void DepsgraphNodeBuilder::build_obdata_geom(Object *object)
 
 		case OB_MBALL:
 		{
-			Object *mom = BKE_mball_basis_find(scene_, object);
+			Object *mom = BKE_mball_basis_find(bmain_->eval_ctx, scene_, object);
 			/* NOTE: Only the motherball gets evaluated, it's children are
 			 * having empty placeholders for the correct relations being built.
 			 */
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 2d1e1f289ea..3628eede210 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -1612,7 +1612,7 @@ void DepsgraphRelationBuilder::build_obdata_geom(Object *object)
 
 		case OB_MBALL:
 		{
-			Object *mom = BKE_mball_basis_find(scene_, object);
+			Object *mom = BKE_mball_basis_find(bmain_->eval_ctx, scene_, object);
 			ComponentKey mom_geom_key(&mom->id, DEG_NODE_TYPE_GEOMETRY);
 			/* motherball - mom depends on children! */
 			if (mom == object) {
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 5d5d1190775..38f09570aca 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -1648,7 +1648,7 @@ static int convert_exec(bContext *C, wmOperator *op)
 			if (ob->type == OB_MBALL && target == OB_MESH) {
 				if (BKE_mball_is_basis(ob) == false) {
 					Object *ob_basis;
-					ob_basis = BKE_mball_basis_find(scene, ob);
+					ob_basis = BKE_mball_basis_find(bmain->eval_ctx, scene, ob);
 					if (ob_basis) {
 						ob_basis->flag &= ~OB_DONE;
 					}
@@ -1862,7 +1862,7 @@ static int convert_exec(bContext *C, wmOperator *op)
 			base->flag &= ~SELECT;
 			ob->flag &= ~SELECT;
 
-			baseob = BKE_mball_basis_find(scene, ob);
+			baseob = BKE_mball_basis_find(bmain->eval_ctx, scene, ob);
 
 			if (ob != baseob) {
 				/* if motherball is converting it would be marked as done later */
@@ -1933,7 +1933,7 @@ static int convert_exec(bContext *C, wmOperator *op)
 					if (ob->flag & OB_DONE) {
 						Object *ob_basis = NULL;
 						if (BKE_mball_is_basis(ob) ||
-						    ((ob_basis = BKE_mball_basis_find(scene, ob)) && (ob_basis->flag & OB_DONE)))
+						    ((ob_basis = BKE_mball_basis_find(bmain->eval_ctx, scene, ob)) && (ob_basis->flag & OB_DONE)))
 						{
 							ED_base_object_free_and_unlink(bmain, scene, base);
 						}
diff --git a/source/blender/makesrna/intern/rna_meta.c b/source/blender/makesrna

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list