[Bf-blender-cvs] [1ff3d5bc9a] blender2.8: Layer Macros: create the instance as part of the macro

Dalai Felinto noreply at git.blender.org
Tue Feb 14 18:55:38 CET 2017


Commit: 1ff3d5bc9ab7b296b1c60038d45ef4c030403162
Author: Dalai Felinto
Date:   Tue Feb 14 15:46:01 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB1ff3d5bc9ab7b296b1c60038d45ef4c030403162

Layer Macros: create the instance as part of the macro

Instead of pre-initializing an instance prior to the macro, we do it as part of the macro itself now.

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

M	source/blender/blenkernel/BKE_collection.h
M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/intern/collection.c
M	source/blender/blenkernel/intern/library_query.c
M	source/blender/blenkernel/intern/library_remap.c
M	source/blender/blenlib/BLI_iterator.h
M	source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc
M	source/blender/draw/engines/clay/clay.c
M	source/blender/editors/object/object_add.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/screen/screen_context.c
M	source/blender/editors/space_clip/tracking_ops_orient.c
M	source/blender/editors/space_outliner/outliner_tree.c

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

diff --git a/source/blender/blenkernel/BKE_collection.h b/source/blender/blenkernel/BKE_collection.h
index 90904cdfdd..4d5de723dc 100644
--- a/source/blender/blenkernel/BKE_collection.h
+++ b/source/blender/blenkernel/BKE_collection.h
@@ -66,20 +66,20 @@ void BKE_scene_objects_Iterator_begin(struct Iterator *iter, void *data_in);
 void BKE_scene_objects_Iterator_next(struct Iterator *iter);
 void BKE_scene_objects_Iterator_end(struct Iterator *iter);
 
-#define FOREACH_SCENE_COLLECTION(scene, _sc)                                  \
+#define FOREACH_SCENE_COLLECTION(scene, _instance)                            \
 	ITER_BEGIN(BKE_scene_collections_Iterator_begin,                          \
 	           BKE_scene_collections_Iterator_next,                           \
 	           BKE_scene_collections_Iterator_end,                            \
-	           scene, SceneCollection, _sc)
+	           scene, SceneCollection *, _instance)
 
 #define FOREACH_SCENE_COLLECTION_END                                          \
 	ITER_END
 
-#define FOREACH_SCENE_OBJECT(scene, _ob)                                      \
+#define FOREACH_SCENE_OBJECT(scene, _instance)                                \
 	ITER_BEGIN(BKE_scene_objects_Iterator_begin,                              \
 	           BKE_scene_objects_Iterator_next,                               \
 	           BKE_scene_objects_Iterator_end,                                \
-	           scene, Object, _ob)
+	           scene, Object *, _instance)
 
 #define FOREACH_SCENE_OBJECT_END                                              \
 	ITER_END
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index 248ceea9b9..db817bb332 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -136,46 +136,47 @@ void BKE_visible_bases_Iterator_begin(Iterator *iter, void *data_in);
 void BKE_visible_bases_Iterator_next(Iterator *iter);
 void BKE_visible_bases_Iterator_end(Iterator *iter);
 
-#define FOREACH_SELECTED_OBJECT(sl, _ob)                                      \
+#define FOREACH_SELECTED_OBJECT(sl, _instance)                                \
 	ITER_BEGIN(BKE_selected_objects_Iterator_begin,                           \
 	           BKE_selected_objects_Iterator_next,                            \
 	           BKE_selected_objects_Iterator_end,                             \
-	           sl, Object, _ob)
+	           sl, Object *, _instance)
 
 #define FOREACH_SELECTED_OBJECT_END                                           \
 	ITER_END
 
-#define FOREACH_VISIBLE_OBJECT(sl, _ob)                                       \
+#define FOREACH_VISIBLE_OBJECT(sl, _instance)                                 \
 	ITER_BEGIN(BKE_visible_objects_Iterator_begin,                            \
 	           BKE_visible_objects_Iterator_next,                             \
 	           BKE_visible_objects_Iterator_end,                              \
-	           sl, Object, _ob)
+	           sl, Object *, _instance)
 
 #define FOREACH_VISIBLE_OBJECT_END                                            \
 	ITER_END
 
 
-#define FOREACH_VISIBLE_BASE(sl, _object_base)                                \
+#define FOREACH_VISIBLE_BASE(sl, _instance)                                   \
 	ITER_BEGIN(BKE_visible_bases_Iterator_begin,                              \
 	           BKE_visible_bases_Iterator_next,                               \
 	           BKE_visible_bases_Iterator_end,                                \
-	           sl, Base, _object_base)
+	           sl, Base *, _instance)
 
 #define FOREACH_VISIBLE_BASE_END                                              \
 	ITER_END
 
 
-#define FOREACH_OBJECT(sl, _ob)                                               \
+#define FOREACH_OBJECT(sl, _instance)                                         \
 {                                                                             \
+	Object *_instance;                                                        \
 	Base *base;                                                               \
-	for (base = sl->object_bases.first; base; base = base->next) {            \
-	    _ob = base->object;
+	for (base = (sl)->object_bases.first; base; base = base->next) {          \
+	    _instance = base->object;
 
 #define FOREACH_OBJECT_END                                                    \
     }                                                                         \
 }
 
-#define FOREACH_OBJECT_FLAG(scene, sl, flag, _ob)                             \
+#define FOREACH_OBJECT_FLAG(scene, sl, flag, _instance)                       \
 {                                                                             \
 	IteratorBeginCb func_begin;                                               \
 	IteratorCb func_next, func_end;                                           \
@@ -185,15 +186,15 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 	    func_begin = &BKE_selected_objects_Iterator_begin;                    \
 	    func_next = &BKE_selected_objects_Iterator_next;                      \
 	    func_end = &BKE_selected_objects_Iterator_end;                        \
-	    data_in = sl;                                                         \
+	    data_in = (sl);                                                       \
     }                                                                         \
 	else {                                                                    \
 	    func_begin = BKE_scene_objects_Iterator_begin;                        \
 	    func_next = BKE_scene_objects_Iterator_next;                          \
 	    func_end = BKE_scene_objects_Iterator_end;                            \
-	    data_in = scene;                                                      \
+	    data_in = (scene);                                                    \
     }                                                                         \
-	ITER_BEGIN(func_begin, func_next, func_end, data_in, Object, _ob)
+	ITER_BEGIN(func_begin, func_next, func_end, data_in, Object *, _instance)
 
 
 #define FOREACH_OBJECT_FLAG_END                                               \
@@ -201,16 +202,17 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 }
 
 /* temporary hacky solution waiting for final depsgraph evaluation */
-#define DEG_OBJECT_ITER(sl_, ob_)                                             \
+#define DEG_OBJECT_ITER(sl_, instance_)                                       \
 {                                                                             \
+	Object *instance_;                                                        \
 	/* temporary solution, waiting for depsgraph update */                    \
 	BKE_scene_layer_engine_settings_update(sl);                               \
 	                                                                          \
 	/* flush all the data to objects*/                                        \
 	Base *base_;                                                              \
-	for (base_ = sl->object_bases.first; base_; base_ = base_->next) {        \
-	    ob_ = base_->object;			                                      \
-	    ob_->base_flag = base_->flag;
+	for (base_ = (sl_)->object_bases.first; base_; base_ = base_->next) {     \
+	    instance_ = base_->object;			                                  \
+	    instance_->base_flag = base_->flag;
 
 #define DEG_OBJECT_ITER_END                                                   \
     }                                                                         \
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index 289586153e..100cbf2dd4 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -214,7 +214,6 @@ void BKE_collection_object_add(Scene *scene, SceneCollection *sc, Object *ob)
  */
 void BKE_collection_object_add_from(Scene *scene, Object *ob_src, Object *ob_dst)
 {
-	SceneCollection *sc;
 	FOREACH_SCENE_COLLECTION(scene, sc)
 	{
 		if (BLI_findptr(&sc->objects, ob_src, offsetof(LinkData, data))) {
@@ -257,7 +256,6 @@ void BKE_collections_object_remove(Main *bmain, Scene *scene, Object *ob, const
 {
 	BKE_scene_remove_rigidbody_object(scene, ob);
 
-	SceneCollection *sc;
 	FOREACH_SCENE_COLLECTION(scene, sc)
 	{
 		BKE_collection_object_remove(bmain, scene, sc, ob, free_us);
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index a071b3202b..c9853f791c 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -416,7 +416,6 @@ void BKE_library_foreach_ID_link(Main *bmain, ID *id, LibraryIDLinkCallback call
 					CALLBACK_INVOKE(legacy_base->object, IDWALK_CB_USER);
 				}
 
-				SceneCollection *sc;
 				FOREACH_SCENE_COLLECTION(scene, sc)
 				{
 					for (LinkData *link = sc->objects.first; link; link = link->next) {
diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c
index 9946d1cc81..76af032c37 100644
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@ -289,7 +289,6 @@ static void libblock_remap_data_preprocess(IDRemap *r_id_remap_data)
 				/* In case we are unlinking... */
 				if (!r_id_remap_data->old_id) {
 					/* ... everything from scene. */
-					Object *ob_iter;
 					FOREACH_SCENE_OBJECT(sce, ob_iter)
 					{
 						libblock_remap_data_preprocess_scene_object_unlink(
diff --git a/source/blender/blenlib/BLI_iterator.h b/source/blender/blenlib/BLI_iterator.h
index d154b81ac8..26d2728d43 100644
--- a/source/blender/blenlib/BLI_iterator.h
+++ b/source/blender/blenlib/BLI_iterator.h
@@ -36,15 +36,16 @@ typedef struct Iterator {
 typedef void (*IteratorCb)(Iterator *iter);
 typedef void (*IteratorBeginCb)(Iterator *iter, void *data_in);
 
-#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _type, _data_out) \
+#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _type, _instance) \
 {                                  

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list