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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs