[Bf-blender-cvs] [68b0cf6da06] gsoc-2018-many-light-sampling: Cleanup: Get rid of G.main in BKE_material.

Bastien Montagne noreply at git.blender.org
Fri Jun 1 16:18:14 CEST 2018


Commit: 68b0cf6da0665c972106107da393da827a2b0b0e
Author: Bastien Montagne
Date:   Tue May 29 15:49:21 2018 +0200
Branches: gsoc-2018-many-light-sampling
https://developer.blender.org/rB68b0cf6da0665c972106107da393da827a2b0b0e

Cleanup: Get rid of G.main in BKE_material.

Note that in some cases, this only moves the G.main case to somne other
places - in particular, RNA getters/setters are becoming annoying here...

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

M	source/blender/alembic/intern/abc_mesh.cc
M	source/blender/blenkernel/BKE_material.h
M	source/blender/blenkernel/BKE_mesh.h
M	source/blender/blenkernel/intern/library_remap.c
M	source/blender/blenkernel/intern/material.c
M	source/blender/blenkernel/intern/mesh.c
M	source/blender/collada/MeshImporter.cpp
M	source/blender/editors/mesh/editmesh_tools.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/render/render_preview.c
M	source/blender/editors/render/render_shading.c
M	source/blender/editors/sculpt_paint/paint_image_proj.c
M	source/blender/editors/space_outliner/outliner_edit.c
M	source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
M	source/blender/makesrna/intern/rna_ID.c
M	source/blender/makesrna/intern/rna_main_api.c
M	source/blender/makesrna/intern/rna_object.c

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

diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc
index ef0a823ac3e..a2903f7c3d1 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -667,7 +667,7 @@ static void assign_materials(Main *bmain, Object *ob, const std::map<std::string
 
 	int matcount = 0;
 	for (; it != mat_index_map.end(); ++it, ++matcount) {
-		if (!BKE_object_material_slot_add(ob)) {
+		if (!BKE_object_material_slot_add(bmain, ob)) {
 			can_assign = false;
 			break;
 		}
@@ -696,7 +696,7 @@ static void assign_materials(Main *bmain, Object *ob, const std::map<std::string
 				assigned_mat = mat_iter->second;
 			}
 
-			assign_material(ob, assigned_mat, it->second, BKE_MAT_ASSIGN_OBDATA);
+			assign_material(bmain, ob, assigned_mat, it->second, BKE_MAT_ASSIGN_OBDATA);
 		}
 	}
 }
diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h
index f7850913014..431d1df1ff6 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -47,7 +47,7 @@ struct Scene;
 void init_def_material(void);
 void BKE_material_free(struct Material *ma);
 void BKE_material_free_ex(struct Material *ma, bool do_id_user);
-void test_object_materials(struct Object *ob, struct ID *id);
+void test_object_materials(struct Main *bmain, struct Object *ob, struct ID *id);
 void test_all_objects_materials(struct Main *bmain, struct ID *id);
 void BKE_material_resize_object(struct Main *bmain, struct Object *ob, const short totcol, bool do_id_user);
 void BKE_material_init(struct Material *ma);
@@ -79,13 +79,13 @@ enum {
 };
 
 struct Material *give_current_material(struct Object *ob, short act);
-void assign_material_id(struct ID *id, struct Material *ma, short act);
-void assign_material(struct Object *ob, struct Material *ma, short act, int assign_type);
-void assign_matarar(struct Object *ob, struct Material ***matar, short totcol);
+void assign_material_id(struct Main *bmain, struct ID *id, struct Material *ma, short act);
+void assign_material(struct Main *bmain, struct Object *ob, struct Material *ma, short act, int assign_type);
+void assign_matarar(struct Main *bmain, struct Object *ob, struct Material ***matar, short totcol);
 
 short BKE_object_material_slot_find_index(struct Object *ob, struct Material *ma);
-bool  BKE_object_material_slot_add(struct Object *ob);
-bool  BKE_object_material_slot_remove(struct Object *ob);
+bool  BKE_object_material_slot_add(struct Main *bmain, struct Object *ob);
+bool  BKE_object_material_slot_remove(struct Main *bmain, struct Object *ob);
 
 void BKE_texpaint_slot_refresh_cache(struct Scene *scene, struct Material *ma);
 void BKE_texpaint_slots_refresh_object(struct Scene *scene, struct Object *ob);
@@ -97,7 +97,7 @@ struct Material *BKE_material_pop_id(struct Main *bmain, struct ID *id, int inde
 void BKE_material_clear_id(struct Main *bmain, struct ID *id, bool update_data);
 /* rendering */
 
-void init_render_material(struct Material *, int, float *);
+void init_render_material(struct Main *bmain, struct Material *, int, float *);
 void init_render_materials(struct Main *, int r_mode, float *amd, bool do_default_material);
 void end_render_material(struct Material *);
 void end_render_materials(struct Main *);
@@ -112,8 +112,8 @@ void material_drivers_update(struct Scene *scene, struct Material *mat, float ct
 /* copy/paste */
 void clear_matcopybuf(void);
 void free_matcopybuf(void);
-void copy_matcopybuf(struct Material *ma);
-void paste_matcopybuf(struct Material *ma);
+void copy_matcopybuf(struct Main *bmain, struct Material *ma);
+void paste_matcopybuf(struct Main *bmain, struct Material *ma);
 
 /* handle backward compatibility for tface/materials called from doversion */	
 int do_version_tface(struct Main *main);
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index e5c82f0be9a..2c7ba845960 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -99,7 +99,7 @@ float (*BKE_mesh_orco_verts_get(struct Object *ob))[3];
 void   BKE_mesh_orco_verts_transform(struct Mesh *me, float (*orco)[3], int totvert, int invert);
 int test_index_face(struct MFace *mface, struct CustomData *mfdata, int mfindex, int nr);
 struct Mesh *BKE_mesh_from_object(struct Object *ob);
-void BKE_mesh_assign_object(struct Object *ob, struct Mesh *me);
+void BKE_mesh_assign_object(struct Main *bmain, struct Object *ob, struct Mesh *me);
 void BKE_mesh_material_index_remove(struct Mesh *me, short index);
 void BKE_mesh_material_index_clear(struct Mesh *me);
 void BKE_mesh_material_remap(struct Mesh *me, const unsigned int *remap, unsigned int remap_len);
diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c
index 31dc46a55f0..8a64c0f8662 100644
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@ -382,7 +382,7 @@ static void libblock_remap_data_postprocess_group_scene_unlink(Main *UNUSED(bmai
 	}
 }
 
-static void libblock_remap_data_postprocess_obdata_relink(Main *UNUSED(bmain), Object *ob, ID *new_id)
+static void libblock_remap_data_postprocess_obdata_relink(Main *bmain, Object *ob, ID *new_id)
 {
 	if (ob->data == new_id) {
 		switch (GS(new_id->name)) {
@@ -396,7 +396,7 @@ static void libblock_remap_data_postprocess_obdata_relink(Main *UNUSED(bmain), O
 				break;
 		}
 		test_object_modifiers(ob);
-		test_object_materials(ob, new_id);
+		test_object_materials(bmain, ob, new_id);
 	}
 }
 
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 01f16625386..3283619587e 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -501,7 +501,7 @@ Material *BKE_material_pop_id(Main *bmain, ID *id, int index_i, bool update_data
 
 				(*totcol)--;
 				*matar = MEM_reallocN(*matar, sizeof(void *) * (*totcol));
-				test_all_objects_materials(G.main, id);
+				test_all_objects_materials(bmain, id);
 			}
 
 			if (update_data) {
@@ -634,7 +634,7 @@ void BKE_material_resize_object(Main *bmain, Object *ob, const short totcol, boo
 	DAG_relations_tag_update(bmain);
 }
 
-void test_object_materials(Object *ob, ID *id)
+void test_object_materials(Main *bmain, Object *ob, ID *id)
 {
 	/* make the ob mat-array same size as 'ob->data' mat-array */
 	const short *totcol;
@@ -643,7 +643,7 @@ void test_object_materials(Object *ob, ID *id)
 		return;
 	}
 
-	BKE_material_resize_object(G.main, ob, *totcol, false);
+	BKE_material_resize_object(bmain, ob, *totcol, false);
 }
 
 void test_all_objects_materials(Main *bmain, ID *id)
@@ -665,7 +665,7 @@ void test_all_objects_materials(Main *bmain, ID *id)
 	BKE_main_unlock(bmain);
 }
 
-void assign_material_id(ID *id, Material *ma, short act)
+void assign_material_id(Main *bmain, ID *id, Material *ma, short act)
 {
 	Material *mao, **matar, ***matarar;
 	short *totcolp;
@@ -709,10 +709,10 @@ void assign_material_id(ID *id, Material *ma, short act)
 	if (ma)
 		id_us_plus(&ma->id);
 
-	test_all_objects_materials(G.main, id);
+	test_all_objects_materials(bmain, id);
 }
 
-void assign_material(Object *ob, Material *ma, short act, int assign_type)
+void assign_material(Main *bmain, Object *ob, Material *ma, short act, int assign_type)
 {
 	Material *mao, **matar, ***matarar;
 	short *totcolp;
@@ -784,14 +784,14 @@ void assign_material(Object *ob, Material *ma, short act, int assign_type)
 		if (mao)
 			id_us_min(&mao->id);
 		ob->mat[act - 1] = ma;
-		test_object_materials(ob, ob->data);
+		test_object_materials(bmain, ob, ob->data);
 	}
 	else {  /* in data */
 		mao = (*matarar)[act - 1];
 		if (mao)
 			id_us_min(&mao->id);
 		(*matarar)[act - 1] = ma;
-		test_all_objects_materials(G.main, ob->data);  /* Data may be used by several objects... */
+		test_all_objects_materials(bmain, ob->data);  /* Data may be used by several objects... */
 	}
 
 	if (ma)
@@ -884,20 +884,20 @@ void BKE_material_remap_object_calc(
 
 
 /* XXX - this calls many more update calls per object then are needed, could be optimized */
-void assign_matarar(struct Object *ob, struct Material ***matar, short totcol)
+void assign_matarar(Main *bmain, struct Object *ob, struct Material ***matar, short totcol)
 {
 	int actcol_orig = ob->actcol;
 	short i;
 
 	while ((ob->totcol > totcol) &&
-	       BKE_object_material_slot_remove(ob))
+	       BKE_object_material_slot_remove(bmain, ob))
 	{
 		/* pass */
 	}
 
 	/* now we have the right number of slots */
 	for (i = 0; i < totcol; i++)
-		assign_material(ob, (*matar)[i], i + 1, BKE_MAT_ASSIGN_USERPREF);
+		assign_material(bmain, ob, (*matar)[i], i + 1, BKE_MAT_ASSIGN_USERPREF);
 
 	if (actcol_orig > ob->totcol)
 		actcol_orig = ob->totcol;
@@ -926,17 +926,17 @@ short BKE_object_material_slot_find_index(Object *ob, Material *ma)
 	return 0;
 }
 
-bool BKE_object_material_slot_add(Object *ob)
+bool BKE_object_material_slot_add(Main *bmain, Object *ob)
 {
 	if (ob == NULL) return false;
 	if (ob->totcol >= MAXMAT) return false;
 	
-	assign_material(ob, NULL, ob->totcol + 1, BKE_MAT_ASSIGN_USERPREF);
+	assign_material(bmain, ob, NULL, ob->totcol + 1, BKE_MAT_ASSIGN_USERPREF);
 	ob->actcol = ob->totcol;
 	return true;
 }
 
-static void do_init_render_material(Material *ma, int r_mode, float *amb)
+static void do_init_render_material(Main *bmain, Material *ma, int r_mode, float *amb)
 {
 	MTex *mtex;
 	int a, needuv = 0, needtang = 0;
@@ -995,7 +995,7 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
 	if ((ma->shade_flag & MA_GROUP_LOCAL) && ma->id.lib && ma->group && ma->group->id.lib) {
 		Group *group;
 
-		for (group = G.main->group.first; group; group = group->id.next) {
+		for (group = bmain->group.first; group; group = group->id.next) {
 			if (!ID_IS_LINKED(group) && STREQ(group->id.name, ma->group->id.name)) {
 				ma->group = group;
 			}
@@ -1003,7 +1003,7 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
 	}
 }
 
-static void init_render_nodetree(bNodeTree *ntree, Material *basemat, int r_mode, float *

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list