[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