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

Reply via email to