[Bf-blender-cvs] [d0956e9cb30] master: Cleanup: Moar G.main removal of Hell.

Bastien Montagne noreply at git.blender.org
Mon Jun 11 12:15:48 CEST 2018


Commit: d0956e9cb3077971a9ae6c1ba9560604d5ad1ef7
Author: Bastien Montagne
Date:   Mon Jun 11 12:14:18 2018 +0200
Branches: master
https://developer.blender.org/rBd0956e9cb3077971a9ae6c1ba9560604d5ad1ef7

Cleanup: Moar G.main  removal of Hell.

This commit actually adds some G.main... but at much, much higher level
than the ones it removes, so should still be better ;)

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

M	intern/cycles/blender/blender_object.cpp
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_anim.h
M	source/blender/blenkernel/BKE_displist.h
M	source/blender/blenkernel/BKE_dynamicpaint.h
M	source/blender/blenkernel/BKE_global.h
M	source/blender/blenkernel/BKE_group.h
M	source/blender/blenkernel/BKE_mball.h
M	source/blender/blenkernel/BKE_mball_tessellate.h
M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/BKE_scene.h
M	source/blender/blenkernel/intern/anim.c
M	source/blender/blenkernel/intern/depsgraph.c
M	source/blender/blenkernel/intern/displist.c
M	source/blender/blenkernel/intern/dynamicpaint.c
M	source/blender/blenkernel/intern/group.c
M	source/blender/blenkernel/intern/library.c
M	source/blender/blenkernel/intern/mball.c
M	source/blender/blenkernel/intern/mball_tessellate.c
M	source/blender/blenkernel/intern/mesh_convert.c
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/object_dupli.c
M	source/blender/blenkernel/intern/object_update.c
M	source/blender/blenkernel/intern/pointcache.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/smoke.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/editors/object/object_modifier.c
M	source/blender/editors/physics/dynamicpaint_ops.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_snap_object.c
M	source/blender/gpu/intern/gpu_material.c
M	source/blender/makesrna/intern/rna_meta.c
M	source/blender/makesrna/intern/rna_object_api.c
M	source/blender/modifiers/intern/MOD_dynamicpaint.c
M	source/blender/render/intern/source/convertblender.c

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

diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index 077ceb4ebef..4919bc4325f 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -567,7 +567,7 @@ void BlenderSync::sync_objects(float motion_time)
 
 				if(b_ob.is_duplicator() && !object_render_hide_duplis(b_ob)) {
 					/* dupli objects */
-					b_ob.dupli_list_create(b_scene, dupli_settings);
+					b_ob.dupli_list_create(b_data, b_scene, dupli_settings);
 
 					BL::Object::dupli_list_iterator b_dup;
 
diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index 67575cb52d5..7e8f4e3cd15 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(EvaluationContext *eval_ctx, Scene *scene, Object *ob)
+static bool object_type_is_exportable(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, Object *ob)
 {
 	switch (ob->type) {
 		case OB_MESH:
@@ -126,7 +126,7 @@ static bool object_type_is_exportable(EvaluationContext *eval_ctx, Scene *scene,
 		case OB_CAMERA:
 			return true;
 		case OB_MBALL:
-			return AbcMBallWriter::isBasisBall(eval_ctx, scene, ob);
+			return AbcMBallWriter::isBasisBall(bmain, eval_ctx, scene, ob);
 		default:
 			return false;
 	}
@@ -386,11 +386,11 @@ void AbcExporter::exploreTransform(EvaluationContext *eval_ctx, Object *ob, Obje
 		return;
 	}
 
-	if (object_type_is_exportable(eval_ctx, m_scene, ob)) {
+	if (object_type_is_exportable(m_bmain, eval_ctx, m_scene, ob)) {
 		createTransformWriter(ob, parent, dupliObParent);
 	}
 
-	ListBase *lb = object_duplilist(eval_ctx, m_scene, ob);
+	ListBase *lb = object_duplilist(m_bmain, eval_ctx, m_scene, ob);
 
 	if (lb) {
 		DupliObject *link = static_cast<DupliObject *>(lb->first);
@@ -506,7 +506,7 @@ void AbcExporter::exploreObject(EvaluationContext *eval_ctx, Object *ob, Object
 
 	createShapeWriter(ob, dupliObParent);
 	
-	ListBase *lb = object_duplilist(eval_ctx, m_scene, ob);
+	ListBase *lb = object_duplilist(m_bmain, eval_ctx, m_scene, ob);
 
 	if (lb) {
 		DupliObject *link = static_cast<DupliObject *>(lb->first);
@@ -551,7 +551,7 @@ void AbcExporter::createParticleSystemsWriters(Object *ob, AbcTransformWriter *x
 
 void AbcExporter::createShapeWriter(Object *ob, Object *dupliObParent)
 {
-	if (!object_type_is_exportable(m_bmain->eval_ctx, m_scene, ob)) {
+	if (!object_type_is_exportable(m_bmain, 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 c5712daf499..05700e6024e 100644
--- a/source/blender/alembic/intern/abc_mball.cc
+++ b/source/blender/alembic/intern/abc_mball.cc
@@ -103,7 +103,7 @@ void AbcMBallWriter::do_write()
 	 */
 	EvaluationContext eval_ctx;
 	DEG_evaluation_context_init(&eval_ctx, DAG_EVAL_RENDER);
-	BKE_displist_make_mball_forRender(&eval_ctx, m_scene, m_object, &disp);
+	BKE_displist_make_mball_forRender(m_bmain, &eval_ctx, m_scene, m_object, &disp);
 	BKE_mesh_from_metaball(&disp, tmpmesh);
 	BKE_displist_free(&disp);
 
@@ -115,8 +115,8 @@ void AbcMBallWriter::do_write()
 	m_mesh_ob->data = NULL;
 }
 
-bool AbcMBallWriter::isBasisBall(EvaluationContext *eval_ctx, Scene *scene, Object *ob)
+bool AbcMBallWriter::isBasisBall(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, Object *ob)
 {
-	Object *basis_ob = BKE_mball_basis_find(eval_ctx, scene, ob);
+	Object *basis_ob = BKE_mball_basis_find(bmain, 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 9a74006f839..46567ff3386 100644
--- a/source/blender/alembic/intern/abc_mball.h
+++ b/source/blender/alembic/intern/abc_mball.h
@@ -51,7 +51,7 @@ public:
 
 	~AbcMBallWriter();
 
-	static bool isBasisBall(EvaluationContext *eval_ctx, Scene *scene, Object *ob);
+	static bool isBasisBall(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, Object *ob);
 
 private:
 	virtual void do_write();
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h
index 584f0da323a..902331f4649 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_anim.h
@@ -32,15 +32,16 @@
  *  \author nzc
  *  \since March 2001
  */
-struct EvaluationContext;
-struct Path;
-struct Object;
-struct Scene;
-struct ListBase;
 struct bAnimVizSettings;
 struct bMotionPath;
 struct bPoseChannel;
+struct EvaluationContext;
+struct ListBase;
+struct Main;
+struct Object;
+struct Path;
 struct ReportList;
+struct Scene;
 
 /* ---------------------------------------------------- */
 /* Animation Visualization */
@@ -65,8 +66,10 @@ int where_on_path(struct Object *ob, float ctime, float vec[4], float dir[3], fl
 /* ---------------------------------------------------- */
 /* Dupli-Geometry */
 
-struct ListBase *object_duplilist_ex(struct EvaluationContext *eval_ctx, struct Scene *sce, struct Object *ob, bool update);
-struct ListBase *object_duplilist(struct EvaluationContext *eval_ctx, struct Scene *sce, struct Object *ob);
+struct ListBase *object_duplilist_ex(
+        struct Main *bmain, struct EvaluationContext *eval_ctx, struct Scene *sce, struct Object *ob, bool update);
+struct ListBase *object_duplilist(
+        struct Main *bmain, struct EvaluationContext *eval_ctx, struct Scene *sce, struct Object *ob);
 void free_object_duplilist(struct ListBase *lb);
 int count_duplilist(struct Object *ob);
 
diff --git a/source/blender/blenkernel/BKE_displist.h b/source/blender/blenkernel/BKE_displist.h
index 9625f05192a..f5c6fb37ccc 100644
--- a/source/blender/blenkernel/BKE_displist.h
+++ b/source/blender/blenkernel/BKE_displist.h
@@ -57,11 +57,12 @@ enum {
 
 /* prototypes */
 
-struct Scene;
-struct Object;
-struct ListBase;
 struct DerivedMesh;
 struct EvaluationContext;
+struct ListBase;
+struct Main;
+struct Object;
+struct Scene;
 
 /* used for curves, nurbs, mball, importing */
 typedef struct DispList {
@@ -92,8 +93,8 @@ void BKE_displist_make_curveTypes(struct Scene *scene, struct Object *ob, const
 void BKE_displist_make_curveTypes_forRender(struct Scene *scene, struct Object *ob, struct ListBase *dispbase, struct DerivedMesh **r_dm_final,
                                             const bool for_orco, const bool use_render_resolution);
 void BKE_displist_make_curveTypes_forOrco(struct Scene *scene, struct Object *ob, struct ListBase *dispbase);
-void BKE_displist_make_mball(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob);
-void BKE_displist_make_mball_forRender(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, struct ListBase *dispbase);
+void BKE_displist_make_mball(struct Main *bmain, struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob);
+void BKE_displist_make_mball_forRender(struct Main *bmain, struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, struct ListBase *dispbase);
 
 bool BKE_displist_surfindex_get(DispList *dl, int a, int *b, int *p1, int *p2, int *p3, int *p4);
 void BKE_displist_fill(struct ListBase *dispbase, struct ListBase *to, const float normal_proj[3], const bool flipnormal);
diff --git a/source/blender/blenkernel/BKE_dynamicpaint.h b/source/blender/blenkernel/BKE_dynamicpaint.h
index 9d738045ad1..cc1ff1a2375 100644
--- a/source/blender/blenkernel/BKE_dynamicpaint.h
+++ b/source/blender/blenkernel/BKE_dynamicpaint.h
@@ -28,6 +28,7 @@
  */
 
 struct EvaluationContext;
+struct Main;
 struct Scene;
 
 /* Actual surface point	*/
@@ -62,7 +63,7 @@ typedef struct PaintWavePoint {
 } PaintWavePoint;
 
 struct DerivedMesh *dynamicPaint_Modifier_do(
-        struct EvaluationContext *eval_ctx, struct DynamicPaintModifierData *pmd, struct Scene *scene,
+        struct Main *bmain, struct EvaluationContext *eval_ctx, struct DynamicPaintModifierData *pmd, struct Scene *scene,
         struct Object *ob, struct DerivedMesh *dm);
 void dynamicPaint_Modifier_free(struct DynamicPaintModifierData *pmd);
 void dynamicPaint_Modifier_copy(const struct DynamicPaintModifierData *pmd, struct DynamicPaintModifierData *tsmd);
@@ -87,6 +88,7 @@ struct DynamicPaintSurface *get_activeSurface(struct DynamicPaintCanvasSettings
 /* image sequence baking */
 int dynamicPaint_createUVSurface(struct Scene *scene, struct DynamicPaintSurface *surface, float *progress, short *do_update);
 int dynamicPaint_calculateFrame(
+        struct Main *bmain,
         struct EvaluationContext *eval_ctx, struct DynamicPaintSurface *surface, struct Scene *scene,
         struct Object *cObject, int frame);
 void dynamicPaint_outputSurfaceImage(struct DynamicPaintSurface *surface, char *filename, short output_layer);
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h
index 45a0a765ce1..db816cb9e14 100644
--- a/source/blender/blenkernel/BKE_global.h
+++ b/source/blender/blenkernel/BKE_global.h
@@ -54,7 +54,7 @@ typedef struct Global {
 	/* strings: lastsaved */
 	char ima[1024], lib[1024]; /* 1024 = FILE_MAX */
 
-	/* when set: G.main->name contains valid relative base path */
+	/* when set: G_MAIN->name contains valid relative base path */
 	bool relbase_valid;
 	bool file_loaded;
 	bool save_over;
@@ -221,6 +221,11 @@ enum {
 /* Memory is allocated where? blender.c */
 extern Global G;
 
+/**
+ * Stupid macro to hide the few *valid* usages of G.main (from startup/exit code e.g.), helps with cleanup task.
+ */
+#define G_MAIN (G).main
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/blenkernel/BKE_group.h b/source/blender/blenkernel/BKE_group.h
index e07dd259970..9e1ad1bc789 100644
--- a/source/blender/blenkernel/BKE_group.h
+++ b/source/blender/blenkernel/BKE_group.h
@@ -52,6 +52,8 @@ bool          BKE_group_object_exists(struct Group *group, struct Object *ob);
 bool          BKE_group_object_cyclic_check(struct Main *bmain, struct Object *object, struct Group *group);
 bool          BKE_group_is_animated(struct Group *group, struct Object *parent);
 
-v

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list