[Bf-blender-cvs] [9a0fb58] master: Cleanup: reorganize BKE ID tagging functions.

Bastien Montagne noreply at git.blender.org
Mon Feb 15 19:39:22 CET 2016


Commit: 9a0fb589f70ce20618291b30ec45b230f8ff234d
Author: Bastien Montagne
Date:   Mon Feb 15 19:35:35 2016 +0100
Branches: master
https://developer.blender.org/rB9a0fb589f70ce20618291b30ec45b230f8ff234d

Cleanup: reorganize BKE ID tagging functions.

BKE_main_id_tag_/BKE_main_id_flag_ were horrible naming now that we split those
into flags (for presistent one) and tags (for runtime ones).

Got rid of previous 'tag_' functions behavior (those who were dedicated shortcuts
to set/clear LIB_TAG_DOIT), so now '_tag_' functions affect tags, and '_flag_'
functions affect flags.

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

M	source/blender/blenkernel/BKE_library.h
M	source/blender/blenkernel/intern/blender.c
M	source/blender/blenkernel/intern/depsgraph.c
M	source/blender/blenkernel/intern/group.c
M	source/blender/blenkernel/intern/library.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/sequencer.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/depsgraph/intern/depsgraph_build_nodes.cc
M	source/blender/depsgraph/intern/depsgraph_build_relations.cc
M	source/blender/depsgraph/intern/depsgraph_tag.cc
M	source/blender/editors/object/object_add.c
M	source/blender/editors/object/object_bake_api.c
M	source/blender/editors/object/object_relations.c
M	source/blender/makesrna/intern/rna_main_api.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/modifiers/intern/MOD_smoke.c
M	source/blender/python/intern/bpy_library.c
M	source/blender/render/intern/source/bake.c
M	source/blender/windowmanager/intern/wm_operators.c
M	source/gameengine/Converter/KX_BlenderSceneConverter.cpp

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

diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 62c5fc9..4bd762a 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -103,9 +103,9 @@ struct BlendThumbnail *BKE_main_thumbnail_from_imbuf(struct Main *bmain, struct
 struct ImBuf *BKE_main_thumbnail_to_imbuf(struct Main *bmain, struct BlendThumbnail *data);
 void BKE_main_thumbnail_create(struct Main *bmain);
 
-void BKE_main_id_tag_idcode(struct Main *mainvar, const short type, const bool tag);
-void BKE_main_id_tag_listbase(struct ListBase *lb, const bool tag);
-void BKE_main_id_tag_all(struct Main *mainvar, const bool tag);
+void BKE_main_id_tag_idcode(struct Main *mainvar, const short type, const int tag, const bool value);
+void BKE_main_id_tag_listbase(struct ListBase *lb, const int tag, const bool value);
+void BKE_main_id_tag_all(struct Main *mainvar, const int tag, const bool value);
 
 void BKE_main_id_flag_listbase(ListBase *lb, const int flag, const bool value);
 void BKE_main_id_flag_all(struct Main *bmain, const int flag, const bool value);
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 635fc1e..b9cf21a 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -964,7 +964,7 @@ Main *BKE_undo_get_main(Scene **r_scene)
 void BKE_copybuffer_begin(Main *bmain)
 {
 	/* set all id flags to zero; */
-	BKE_main_id_flag_all(bmain, LIB_TAG_NEED_EXPAND | LIB_TAG_DOIT, false);
+	BKE_main_id_tag_all(bmain, LIB_TAG_NEED_EXPAND | LIB_TAG_DOIT, false);
 }
 
 void BKE_copybuffer_tag_ID(ID *id)
@@ -1034,7 +1034,7 @@ int BKE_copybuffer_save(const char *filename, ReportList *reports)
 	MEM_freeN(mainb);
 	
 	/* set id flag to zero; */
-	BKE_main_id_flag_all(G.main, LIB_TAG_NEED_EXPAND | LIB_TAG_DOIT, false);
+	BKE_main_id_tag_all(G.main, LIB_TAG_NEED_EXPAND | LIB_TAG_DOIT, false);
 	
 	if (path_list_backup) {
 		BKE_bpath_list_restore(G.main, path_list_flag, path_list_backup);
@@ -1067,7 +1067,7 @@ int BKE_copybuffer_paste(bContext *C, const char *libname, const short flag, Rep
 	 * its also generally useful to know what is new
 	 *
 	 * take extra care BKE_main_id_flag_all(bmain, LIB_TAG_PRE_EXISTING, false) is called after! */
-	BKE_main_id_flag_all(bmain, LIB_TAG_PRE_EXISTING, true);
+	BKE_main_id_tag_all(bmain, LIB_TAG_PRE_EXISTING, true);
 	
 	/* here appending/linking starts */
 	mainl = BLO_library_link_begin(bmain, &bh, libname);
@@ -1086,7 +1086,7 @@ int BKE_copybuffer_paste(bContext *C, const char *libname, const short flag, Rep
 	
 	/* important we unset, otherwise these object wont
 	 * link into other scenes from this blend file */
-	BKE_main_id_flag_all(bmain, LIB_TAG_PRE_EXISTING, false);
+	BKE_main_id_tag_all(bmain, LIB_TAG_PRE_EXISTING, false);
 	
 	/* recreate dependency graph to include new objects */
 	DAG_relations_tag_update(bmain);
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index 8bd8b4f..55c54cd 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -938,9 +938,9 @@ DagForest *build_dag(Main *bmain, Scene *sce, short mask)
 	dag->need_update = false;
 
 	/* clear "LIB_TAG_DOIT" flag from all materials, to prevent infinite recursion problems later [#32017] */
-	BKE_main_id_tag_idcode(bmain, ID_MA, false);
-	BKE_main_id_tag_idcode(bmain, ID_LA, false);
-	BKE_main_id_tag_idcode(bmain, ID_GR, false);
+	BKE_main_id_tag_idcode(bmain, ID_MA, LIB_TAG_DOIT, false);
+	BKE_main_id_tag_idcode(bmain, ID_LA, LIB_TAG_DOIT, false);
+	BKE_main_id_tag_idcode(bmain, ID_GR, LIB_TAG_DOIT, false);
 	
 	/* add base node for scene. scene is always the first node in DAG */
 	scenenode = dag_add_node(dag, sce);
@@ -956,7 +956,7 @@ DagForest *build_dag(Main *bmain, Scene *sce, short mask)
 			build_dag_group(dag, scenenode, bmain, sce, ob->dup_group, mask);
 	}
 	
-	BKE_main_id_tag_idcode(bmain, ID_GR, false);
+	BKE_main_id_tag_idcode(bmain, ID_GR, LIB_TAG_DOIT, false);
 	
 	/* Now all relations were built, but we need to solve 1 exceptional case;
 	 * When objects have multiple "parents" (for example parent + constraint working on same object)
@@ -2297,7 +2297,7 @@ void DAG_scene_update_flags(Main *bmain, Scene *scene, unsigned int lay, const b
 	GroupObject *go;
 	Scene *sce_iter;
 
-	BKE_main_id_tag_idcode(bmain, ID_GR, false);
+	BKE_main_id_tag_idcode(bmain, ID_GR, LIB_TAG_DOIT, false);
 
 	/* set ob flags where animated systems are */
 	for (SETLOOPER(scene, sce_iter, base)) {
@@ -2476,7 +2476,7 @@ void DAG_on_visible_update(Main *bmain, const bool do_time)
 		for (sce_iter = scene; sce_iter; sce_iter = sce_iter->set)
 			dag_scene_flush_layers(sce_iter, lay);
 
-		BKE_main_id_tag_idcode(bmain, ID_GR, false);
+		BKE_main_id_tag_idcode(bmain, ID_GR, LIB_TAG_DOIT, false);
 
 		for (SETLOOPER(scene, sce_iter, base)) {
 			ob = base->object;
@@ -2507,7 +2507,7 @@ void DAG_on_visible_update(Main *bmain, const bool do_time)
 			}
 		}
 
-		BKE_main_id_tag_idcode(bmain, ID_GR, false);
+		BKE_main_id_tag_idcode(bmain, ID_GR, LIB_TAG_DOIT, false);
 
 		/* now tag update flags, to ensure deformers get calculated on redraw */
 		DAG_scene_update_flags(bmain, scene, lay, do_time, true);
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c
index 4506f93..a44eb1d 100644
--- a/source/blender/blenkernel/intern/group.c
+++ b/source/blender/blenkernel/intern/group.c
@@ -260,7 +260,7 @@ static bool group_object_cyclic_check_internal(Object *object, Group *group)
 bool BKE_group_object_cyclic_check(Main *bmain, Object *object, Group *group)
 {
 	/* first flag all groups */
-	BKE_main_id_tag_listbase(&bmain->group, true);
+	BKE_main_id_tag_listbase(&bmain->group, LIB_TAG_DOIT, true);
 
 	return group_object_cyclic_check_internal(object, group);
 }
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index c460320..811fbf5 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -575,7 +575,51 @@ ListBase *which_libbase(Main *mainlib, short type)
 }
 
 /**
- * Clear or set given flags for all ids in listbase (runtime flags only).
+ * Clear or set given tags for all ids in listbase (runtime tags).
+ */
+void BKE_main_id_tag_listbase(ListBase *lb, const int tag, const bool value)
+{
+	ID *id;
+	if (value) {
+		for (id = lb->first; id; id = id->next) {
+			id->tag |= tag;
+		}
+	}
+	else {
+		const int ntag = ~tag;
+		for (id = lb->first; id; id = id->next) {
+			id->tag &= ntag;
+		}
+	}
+}
+
+/**
+ * Clear or set given tags for all ids of given type in bmain (runtime tags).
+ */
+void BKE_main_id_tag_idcode(struct Main *mainvar, const short type, const int tag, const bool value)
+{
+	ListBase *lb = which_libbase(mainvar, type);
+
+	BKE_main_id_tag_listbase(lb, tag, value);
+}
+
+/**
+ * Clear or set given tags for all ids in bmain (runtime tags).
+ */
+void BKE_main_id_tag_all(struct Main *mainvar, const int tag, const bool value)
+{
+	ListBase *lbarray[MAX_LIBARRAY];
+	int a;
+
+	a = set_listbasepointers(mainvar, lbarray);
+	while (a--) {
+		BKE_main_id_tag_listbase(lbarray[a], tag, value);
+	}
+}
+
+
+/**
+ * Clear or set given flags for all ids in listbase (persistent flags).
  */
 void BKE_main_id_flag_listbase(ListBase *lb, const int flag, const bool value)
 {
@@ -592,7 +636,7 @@ void BKE_main_id_flag_listbase(ListBase *lb, const int flag, const bool value)
 }
 
 /**
- * Clear or set given flags for all ids in bmain (runtime flags only).
+ * Clear or set given flags for all ids in bmain (persistent flags).
  */
 void BKE_main_id_flag_all(Main *bmain, const int flag, const bool value)
 {
@@ -1756,39 +1800,6 @@ static void lib_indirect_test_id(ID *id, Library *lib)
 #undef LIBTAG
 }
 
-void BKE_main_id_tag_listbase(ListBase *lb, const bool tag)
-{
-	ID *id;
-	if (tag) {
-		for (id = lb->first; id; id = id->next) {
-			id->tag |= LIB_TAG_DOIT;
-		}
-	}
-	else {
-		for (id = lb->first; id; id = id->next) {
-			id->tag &= ~LIB_TAG_DOIT;
-		}
-	}
-}
-
-void BKE_main_id_tag_idcode(struct Main *mainvar, const short type, const bool tag)
-{
-	ListBase *lb = which_libbase(mainvar, type);
-
-	BKE_main_id_tag_listbase(lb, tag);
-}
-
-void BKE_main_id_tag_all(struct Main *mainvar, const bool tag)
-{
-	ListBase *lbarray[MAX_LIBARRAY];
-	int a;
-
-	a = set_listbasepointers(mainvar, lbarray);
-	while (a--) {
-		BKE_main_id_tag_listbase(lbarray[a], tag);
-	}
-}
-
 /* if lib!=NULL, only all from lib local
  * bmain is almost certainly G.main */
 void BKE_library_make_local(Main *bmain, Library *lib, bool untagged_only, bool set_fake)
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 2d4029b..48fd34e 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1810,8 +1810,8 @@ void BKE_scene_update_tagged(EvaluationContext *eval_ctx, Main *bmain, Scene *sc
 	/* clear "LIB_TAG_DOIT" flag from all materials, to prevent infinite recursion problems later
 	 * when trying to find materials with drivers that need evaluating [#32017] 
 	 */
-	BKE_main_id_tag_idcode(bmain, ID_MA, false);
-	BKE_main_id_tag_idcode(bmain, ID_LA, false);
+	BKE_main_id_tag_idcode(bmain, ID_MA, LIB_TAG_DOIT, false);
+	BKE_main_id_tag_idcode(bmain, ID_LA, LIB_TAG_DOIT, false);
 
 	/* update all objects: drivers, matrices, displists, etc. flags set
 	 * by depgraph or manual, no layer check here, gets correct flushed
@@ -1969,8 +1969,8 @@ void BKE_scene_update_for_newframe_ex(EvaluationContext *eval_ctx, Main *bmain,
 	/* clear "LIB_TAG_DOIT" flag from all materials, to prevent infinite recursion problems later
 	 * when trying to find materials with drivers that need evaluating [#32017] 
 	 */
-	BKE_main_id_tag_idcode(bmain, ID_MA, false);
-	BKE_main_id_tag_idcode(bmain, ID_LA, false);
+	BKE_main_id_tag_idcode(bmain, ID_MA, LIB_TAG_DOIT, false);
+	BKE_main_id_tag_idcode(bmain, ID_LA, LIB_TAG_DOIT, false);
 
 	/* run rigidbody sim */
 	/* NOTE: current position is so that rigidbody sim affects other objects

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list