[Bf-blender-cvs] [051e186d5c6] master: Cleanup: some more G.main removal from editor code.

Bastien Montagne noreply at git.blender.org
Fri Jun 1 17:09:04 CEST 2018


Commit: 051e186d5c61dccfc776b8da9b83c598421be4e7
Author: Bastien Montagne
Date:   Fri Jun 1 17:08:38 2018 +0200
Branches: master
https://developer.blender.org/rB051e186d5c61dccfc776b8da9b83c598421be4e7

Cleanup: some more G.main removal from editor code.

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

M	intern/cycles/blender/blender_mesh.cpp
M	source/blender/editors/include/ED_object.h
M	source/blender/editors/io/io_collada.c
M	source/blender/editors/object/object_bake.c
M	source/blender/editors/object/object_bake_api.c
M	source/blender/editors/object/object_edit.c
M	source/blender/editors/render/render_internal.c
M	source/blender/editors/space_sequencer/sequencer_add.c
M	source/blender/editors/space_sequencer/sequencer_edit.c
M	source/blender/editors/util/ed_util.c
M	source/blender/makesrna/intern/rna_object_api.c
M	source/blenderplayer/bad_level_call_stubs/stubs.c

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

diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 7d6ca18b074..76d17bc1ae6 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -1171,7 +1171,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob,
 		 * freed data from the blender side.
 		 */
 		if(preview && b_ob.type() != BL::Object::type_MESH)
-			b_ob.update_from_editmode();
+			b_ob.update_from_editmode(b_data);
 
 		bool need_undeformed = mesh->need_attribute(scene, ATTR_STD_GENERATED);
 
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 448e0efc549..75b98caaedb 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -120,7 +120,7 @@ enum {
 bool ED_object_editmode_exit_ex(struct Scene *scene, struct Object *obedit, int flag);
 bool ED_object_editmode_exit(struct bContext *C, int flag);
 bool ED_object_editmode_enter(struct bContext *C, int flag);
-bool ED_object_editmode_load(struct Object *obedit);
+bool ED_object_editmode_load(struct Main *bmain, struct Object *obedit);
 
 bool ED_object_editmode_calc_active_center(struct Object *obedit, const bool select_only, float r_center[3]);
 
diff --git a/source/blender/editors/io/io_collada.c b/source/blender/editors/io/io_collada.c
index 42c19c6bc65..7e69aa62896 100644
--- a/source/blender/editors/io/io_collada.c
+++ b/source/blender/editors/io/io_collada.c
@@ -163,10 +163,12 @@ static int wm_collada_export_exec(bContext *C, wmOperator *op)
 	limit_precision = RNA_boolean_get(op->ptr, "limit_precision");
 	keep_bind_info = RNA_boolean_get(op->ptr, "keep_bind_info");
 
+	Main *bmain = CTX_data_main(C);
+
 	/* get editmode results */
-	ED_object_editmode_load(CTX_data_edit_object(C));
+	ED_object_editmode_load(bmain, CTX_data_edit_object(C));
 
-	EvaluationContext *eval_ctx = G.main->eval_ctx;
+	EvaluationContext *eval_ctx = bmain->eval_ctx;
 	Scene *scene = CTX_data_scene(C);
 	ExportSettings export_settings;
 
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index 9837fec2b1e..66a87d956f3 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -588,14 +588,15 @@ static int test_bake_internal(bContext *C, ReportList *reports)
 
 static void init_bake_internal(BakeRender *bkr, bContext *C)
 {
+	Main *bmain = CTX_data_main(C);
 	Scene *scene = CTX_data_scene(C);
 	bScreen *sc = CTX_wm_screen(C);
 
 	/* get editmode results */
-	ED_object_editmode_load(CTX_data_edit_object(C));
+	ED_object_editmode_load(bmain, CTX_data_edit_object(C));
 
 	bkr->sa = sc ? BKE_screen_find_big_area(sc, SPACE_IMAGE, 10) : NULL; /* can be NULL */
-	bkr->main = CTX_data_main(C);
+	bkr->main = bmain;
 	bkr->scene = scene;
 	bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL;
 	bkr->re = RE_NewRender("_Bake View_");
@@ -628,7 +629,7 @@ static void finish_bake_internal(BakeRender *bkr)
 
 	/* force OpenGL reload and mipmap recalc */
 	if ((bkr->scene->r.bake_flag & R_BAKE_VCOL) == 0) {
-		for (ima = G.main->image.first; ima; ima = ima->id.next) {
+		for (ima = bkr->main->image.first; ima; ima = ima->id.next) {
 			ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, NULL);
 
 			/* some of the images could have been changed during bake,
@@ -669,7 +670,7 @@ static void finish_bake_internal(BakeRender *bkr)
 		/* update all tagged meshes */
 		Mesh *me;
 		BLI_assert(BLI_thread_is_main());
-		for (me = G.main->mesh.first; me; me = me->id.next) {
+		for (me = bkr->main->mesh.first; me; me = me->id.next) {
 			if (me->id.tag & LIB_TAG_DOIT) {
 				DAG_id_tag_update(&me->id, OB_RECALC_DATA);
 				BKE_mesh_tessface_clear(me);
diff --git a/source/blender/editors/object/object_bake_api.c b/source/blender/editors/object/object_bake_api.c
index c78b9b37da1..d24fc96b007 100644
--- a/source/blender/editors/object/object_bake_api.c
+++ b/source/blender/editors/object/object_bake_api.c
@@ -621,7 +621,7 @@ static size_t initialize_internal_images(BakeImages *bake_images, ReportList *re
 /* create new mesh with edit mode changes and modifiers applied */
 static Mesh *bake_mesh_new_from_object(Main *bmain, Scene *scene, Object *ob)
 {
-	ED_object_editmode_load(ob);
+	ED_object_editmode_load(bmain, ob);
 
 	Mesh *me = BKE_mesh_new_from_object(bmain, scene, ob, 1, 2, 0, 0);
 	if (me->flag & ME_AUTOSMOOTH) {
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index 98b1a7438c6..d0429fc2bcf 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -323,13 +323,13 @@ void OBJECT_OT_hide_render_set(wmOperatorType *ot)
 
 /* ******************* toggle editmode operator  ***************** */
 
-static bool mesh_needs_keyindex(const Mesh *me)
+static bool mesh_needs_keyindex(Main *bmain, const Mesh *me)
 {
 	if (me->key) {
 		return false;  /* will be added */
 	}
 
-	for (const Object *ob = G.main->object.first; ob; ob = ob->id.next) {
+	for (const Object *ob = bmain->object.first; ob; ob = ob->id.next) {
 		if ((ob->parent) && (ob->parent->data == me) && ELEM(ob->partype, PARVERT1, PARVERT3)) {
 			return true;
 		}
@@ -437,10 +437,9 @@ static bool ED_object_editmode_load_ex(Main *bmain, Object *obedit, const bool f
 	return true;
 }
 
-bool ED_object_editmode_load(Object *obedit)
+bool ED_object_editmode_load(Main *bmain, Object *obedit)
 {
-	/* TODO(sergey): use proper main here? */
-	return ED_object_editmode_load_ex(G.main, obedit, false);
+	return ED_object_editmode_load_ex(bmain, obedit, false);
 }
 
 /**
@@ -503,6 +502,7 @@ bool ED_object_editmode_exit(bContext *C, int flag)
 
 bool ED_object_editmode_enter(bContext *C, int flag)
 {
+	Main *bmain = CTX_data_main(C);
 	Scene *scene = CTX_data_scene(C);
 	Base *base = NULL;
 	Object *ob;
@@ -563,7 +563,7 @@ bool ED_object_editmode_enter(bContext *C, int flag)
 		ok = 1;
 		scene->obedit = ob;  /* context sees this */
 
-		const bool use_key_index = mesh_needs_keyindex(ob->data);
+		const bool use_key_index = mesh_needs_keyindex(bmain, ob->data);
 
 		EDBM_mesh_make(ob, scene->toolsettings->selectmode, use_key_index);
 
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 509fdcf080a..c7d80bd1761 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -1372,6 +1372,7 @@ static void render_view3d_free(void *customdata)
 
 static bool render_view3d_flag_changed(RenderEngine *engine, const bContext *C)
 {
+	Main *bmain = CTX_data_main(C);
 	RegionView3D *rv3d = CTX_wm_region_view3d(C);
 	View3D *v3d = CTX_wm_view3d(C);
 	ARegion *ar = CTX_wm_region(C);
@@ -1408,7 +1409,7 @@ static bool render_view3d_flag_changed(RenderEngine *engine, const bContext *C)
 
 		/* load editmesh */
 		if (scene->obedit)
-			ED_object_editmode_load(scene->obedit);
+			ED_object_editmode_load(bmain, scene->obedit);
 	}
 	
 	engine->update_flag = 0;
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index 258cbdfaffd..8315a0eab3d 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -114,9 +114,10 @@ static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op,
 		Scene *scene = CTX_data_scene(C);
 		Sequence *last_seq = BKE_sequencer_active_get(scene);
 		if (last_seq && last_seq->strip && SEQ_HAS_PATH(last_seq)) {
+			Main *bmain = CTX_data_main(C);
 			char path[FILE_MAX];
 			BLI_strncpy(path, last_seq->strip->dir, sizeof(path));
-			BLI_path_abs(path, G.main->name);
+			BLI_path_abs(path, bmain->name);
 			RNA_string_set(op->ptr, identifier, path);
 		}
 	}
@@ -173,8 +174,10 @@ static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, i
 	}
 }
 
-static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
+static void seq_load_operator_info(SeqLoadInfo *seq_load, bContext *C, wmOperator *op)
 {
+	Main *bmain = CTX_data_main(C);
+
 	PropertyRNA *prop;
 	const bool relative = (prop = RNA_struct_find_property(op->ptr, "relative_path")) && RNA_property_boolean_get(op->ptr, prop);
 	int is_file = -1;
@@ -196,7 +199,7 @@ static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
 	}
 
 	if ((is_file != -1) && relative)
-		BLI_path_rel(seq_load->path, G.main->name);
+		BLI_path_rel(seq_load->path, bmain->name);
 
 	
 	if ((prop = RNA_struct_find_property(op->ptr, "frame_end"))) {
@@ -545,7 +548,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
 	SeqLoadInfo seq_load;
 	int tot_files;
 
-	seq_load_operator_info(&seq_load, op);
+	seq_load_operator_info(&seq_load, C, op);
 
 	if (seq_load.flag & SEQ_LOAD_REPLACE_SEL)
 		ED_sequencer_deselect_all(scene);
@@ -855,7 +858,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
 	StripElem *se;
 	const bool use_placeholders = RNA_boolean_get(op->ptr, "use_placeholders");
 
-	seq_load_operator_info(&seq_load, op);
+	seq_load_operator_info(&seq_load, C, op);
 
 	/* images are unique in how they handle this - 1 per strip elem */
 	if (use_placeholders) {
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 0895d28fba7..a052b76e853 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -3885,13 +3885,14 @@ void SEQUENCER_OT_change_path(struct wmOperatorType *ot)
 
 static int sequencer_export_subtitles_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 {
+	Main *bmain = CTX_data_main(C);
 	if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
 		char filepath[FILE_MAX];
 
-		if (G.main->name[0] == 0)
+		if (bmain->name[0] == '\0')
 			BLI_strncpy(filepath, "untitled", sizeof(filepath));
 		else
-			BLI_strncpy(filepath, G.main->name, sizeof(filepath));
+			BLI_strncpy(filepath, bmain->name, sizeof(filepath));
 
 		BLI_replace_extension(filepath, s

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list