[Bf-blender-cvs] [5eccd438c03] temp-T73411-view-layer-lazy-cache: Add scene parameter

Monique noreply at git.blender.org
Mon Sep 5 20:44:39 CEST 2022


Commit: 5eccd438c03afed2e173dd2994d7e1c05d4c9907
Author: Monique
Date:   Sun Sep 4 15:47:13 2022 +0200
Branches: temp-T73411-view-layer-lazy-cache
https://developer.blender.org/rB5eccd438c03afed2e173dd2994d7e1c05d4c9907

Add scene parameter

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

M	source/blender/blenkernel/BKE_collision.h
M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/intern/layer.c
M	source/blender/blenkernel/intern/layer_utils.c
M	source/blender/blenkernel/intern/object.cc
M	source/blender/draw/engines/overlay/overlay_edit_uv.c
M	source/blender/draw/intern/draw_manager.c
M	source/blender/editors/armature/armature_add.c
M	source/blender/editors/armature/armature_edit.c
M	source/blender/editors/armature/armature_naming.c
M	source/blender/editors/armature/armature_relations.c
M	source/blender/editors/armature/armature_select.c
M	source/blender/editors/armature/pose_edit.c
M	source/blender/editors/armature/pose_select.c
M	source/blender/editors/armature/pose_slide.c
M	source/blender/editors/armature/pose_transform.c
M	source/blender/editors/armature/pose_utils.c
M	source/blender/editors/curve/editcurve.c
M	source/blender/editors/curve/editcurve_query.c
M	source/blender/editors/curve/editcurve_select.c
M	source/blender/editors/include/ED_armature.h
M	source/blender/editors/include/ED_object.h
M	source/blender/editors/lattice/editlattice_select.c
M	source/blender/editors/lattice/editlattice_tools.c
M	source/blender/editors/mesh/editmesh_bevel.c
M	source/blender/editors/mesh/editmesh_bisect.c
M	source/blender/editors/mesh/editmesh_extrude.c
M	source/blender/editors/mesh/editmesh_extrude_screw.c
M	source/blender/editors/mesh/editmesh_extrude_spin.c
M	source/blender/editors/mesh/editmesh_inset.c
M	source/blender/editors/mesh/editmesh_intersect.c
M	source/blender/editors/mesh/editmesh_knife.c
M	source/blender/editors/mesh/editmesh_knife_project.c
M	source/blender/editors/mesh/editmesh_loopcut.c
M	source/blender/editors/mesh/editmesh_path.c
M	source/blender/editors/mesh/editmesh_polybuild.c
M	source/blender/editors/mesh/editmesh_rip.c
M	source/blender/editors/mesh/editmesh_rip_edge.c
M	source/blender/editors/mesh/editmesh_select.c
M	source/blender/editors/mesh/editmesh_select_similar.c
M	source/blender/editors/mesh/editmesh_tools.c
M	source/blender/editors/mesh/editmesh_utils.c
M	source/blender/editors/mesh/mesh_intern.h
M	source/blender/editors/metaball/mball_edit.c
M	source/blender/editors/object/object_add.cc
M	source/blender/editors/object/object_edit.c
M	source/blender/editors/object/object_random.c
M	source/blender/editors/object/object_select.c
M	source/blender/editors/screen/screen_context.c
M	source/blender/editors/space_image/image_ops.c
M	source/blender/editors/space_outliner/outliner_select.cc
M	source/blender/editors/space_view3d/view3d_gizmo_preselect_type.c
M	source/blender/editors/space_view3d/view3d_navigate.c
M	source/blender/editors/space_view3d/view3d_select.cc
M	source/blender/editors/space_view3d/view3d_snap.c
M	source/blender/editors/space_view3d/view3d_view.c
M	source/blender/editors/transform/transform_convert.c
M	source/blender/editors/transform/transform_gizmo_2d.c
M	source/blender/editors/transform/transform_gizmo_3d.c
M	source/blender/editors/transform/transform_snap.c
M	source/blender/editors/uvedit/uvedit_buttons.c
M	source/blender/editors/uvedit/uvedit_ops.c
M	source/blender/editors/uvedit/uvedit_path.c
M	source/blender/editors/uvedit/uvedit_rip.c
M	source/blender/editors/uvedit/uvedit_select.c
M	source/blender/editors/uvedit/uvedit_smart_stitch.c
M	source/blender/editors/uvedit/uvedit_unwrap_ops.c
M	source/blender/windowmanager/intern/wm_operator_utils.c

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

diff --git a/source/blender/blenkernel/BKE_collision.h b/source/blender/blenkernel/BKE_collision.h
index 846609fcb10..e57679da4e6 100644
--- a/source/blender/blenkernel/BKE_collision.h
+++ b/source/blender/blenkernel/BKE_collision.h
@@ -17,6 +17,7 @@ struct Depsgraph;
 struct MVert;
 struct MVertTri;
 struct Object;
+struct Scene;
 
 ////////////////////////////////////////
 // used for collisions in collision.c
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index 2f33fd6e63e..edeb3c3d5ee 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -359,7 +359,8 @@ void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter);
   } \
   ((void)0)
 
-#define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
+#define FOREACH_BASE_IN_MODE_BEGIN( \
+    _scene, _view_layer, _v3d, _object_type, _object_mode, _instance) \
   { \
     struct ObjectsInModeIteratorData data_; \
     memset(&data_, 0, sizeof(data_)); \
@@ -367,6 +368,7 @@ void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter);
     data_.object_type = _object_type; \
     data_.view_layer = _view_layer; \
     data_.v3d = _v3d; \
+    BKE_view_layer_ensure_sync(_scene, _view_layer); \
     data_.base_active = BKE_view_layer_active_base_get(_view_layer, __func__); \
     ITER_BEGIN (BKE_view_layer_bases_in_mode_iterator_begin, \
                 BKE_view_layer_bases_in_mode_iterator_next, \
@@ -380,21 +382,22 @@ void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter);
   } \
   ((void)0)
 
-#define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance) \
-  FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, -1, OB_MODE_EDIT, _instance)
+#define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_scene, _view_layer, _v3d, _instance) \
+  FOREACH_BASE_IN_MODE_BEGIN (_scene, _view_layer, _v3d, -1, OB_MODE_EDIT, _instance)
 
 #define FOREACH_BASE_IN_EDIT_MODE_END FOREACH_BASE_IN_MODE_END
 
-#define FOREACH_OBJECT_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
-  FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, _object_type, _object_mode, _base) { \
+#define FOREACH_OBJECT_IN_MODE_BEGIN( \
+    _scene, _view_layer, _v3d, _object_type, _object_mode, _instance) \
+  FOREACH_BASE_IN_MODE_BEGIN (_scene, _view_layer, _v3d, _object_type, _object_mode, _base) { \
     Object *_instance = _base->object;
 
 #define FOREACH_OBJECT_IN_MODE_END \
   } \
   FOREACH_BASE_IN_MODE_END
 
-#define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance) \
-  FOREACH_BASE_IN_EDIT_MODE_BEGIN (_view_layer, _v3d, _base) { \
+#define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN(_scene, _view_layer, _v3d, _instance) \
+  FOREACH_BASE_IN_EDIT_MODE_BEGIN (_scene, _view_layer, _v3d, _base) { \
     Object *_instance = _base->object;
 
 #define FOREACH_OBJECT_IN_EDIT_MODE_END \
@@ -411,11 +414,12 @@ void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter);
 
 #define FOREACH_SELECTED_BASE_END ITER_END
 
-#define FOREACH_VISIBLE_BASE_BEGIN(_view_layer, _v3d, _instance) \
+#define FOREACH_VISIBLE_BASE_BEGIN(_scene, _view_layer, _v3d, _instance) \
   { \
     struct ObjectsVisibleIteratorData data_ = {NULL}; \
     data_.view_layer = _view_layer; \
     data_.v3d = _v3d; \
+    BKE_view_layer_ensure_sync(_scene, _view_layer); \
     ITER_BEGIN (BKE_view_layer_visible_bases_iterator_begin, \
                 BKE_view_layer_visible_bases_iterator_next, \
                 BKE_view_layer_visible_bases_iterator_end, \
@@ -519,12 +523,14 @@ struct ObjectsInModeParams {
 };
 
 struct Base **BKE_view_layer_array_from_bases_in_mode_params(
+    const struct Scene *scene,
     struct ViewLayer *view_layer,
     const struct View3D *v3d,
     uint *r_len,
     const struct ObjectsInModeParams *params);
 
 struct Object **BKE_view_layer_array_from_objects_in_mode_params(
+    const struct Scene *scene,
     struct ViewLayer *view_layer,
     const struct View3D *v3d,
     uint *len,
@@ -535,20 +541,32 @@ bool BKE_view_layer_filter_edit_mesh_has_edges(const struct Object *ob, void *us
 
 /* Utility functions that wrap common arguments (add more as needed). */
 
-struct Object **BKE_view_layer_array_from_objects_in_edit_mode(struct ViewLayer *view_layer,
+struct Object **BKE_view_layer_array_from_objects_in_edit_mode(const struct Scene *scene,
+                                                               struct ViewLayer *view_layer,
                                                                const struct View3D *v3d,
                                                                uint *r_len);
-struct Base **BKE_view_layer_array_from_bases_in_edit_mode(struct ViewLayer *view_layer,
+struct Base **BKE_view_layer_array_from_bases_in_edit_mode(const struct Scene *scene,
+                                                           struct ViewLayer *view_layer,
                                                            const struct View3D *v3d,
                                                            uint *r_len);
 struct Object **BKE_view_layer_array_from_objects_in_edit_mode_unique_data(
-    struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len);
+    const struct Scene *scene,
+    struct ViewLayer *view_layer,
+    const struct View3D *v3d,
+    uint *r_len);
 
 struct Base **BKE_view_layer_array_from_bases_in_edit_mode_unique_data(
-    struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len);
+    const struct Scene *scene,
+    struct ViewLayer *view_layer,
+    const struct View3D *v3d,
+    uint *r_len);
 struct Object **BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(
-    struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len);
-struct Object **BKE_view_layer_array_from_objects_in_mode_unique_data(struct ViewLayer *view_layer,
+    const struct Scene *scene,
+    struct ViewLayer *view_layer,
+    const struct View3D *v3d,
+    uint *r_len);
+struct Object **BKE_view_layer_array_from_objects_in_mode_unique_data(const struct Scene *scene,
+                                                                      struct ViewLayer *view_layer,
                                                                       const struct View3D *v3d,
                                                                       uint *r_len,
                                                                       eObjectMode mode);
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index c64156b2fc3..048a2fcf48e 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -291,25 +291,31 @@ struct Object *BKE_object_pose_armature_get_visible(struct Object *ob,
 /**
  * Access pose array with special check to get pose object when in weight paint mode.
  */
-struct Object **BKE_object_pose_array_get_ex(struct ViewLayer *view_layer,
+struct Object **BKE_object_pose_array_get_ex(const struct Scene *scene,
+                                             struct ViewLayer *view_layer,
                                              struct View3D *v3d,
                                              unsigned int *r_objects_len,
                                              bool unique);
-struct Object **BKE_object_pose_array_get_unique(struct ViewLayer *view_layer,
+struct Object **BKE_object_pose_array_get_unique(const struct Scene *scene,
+                                                 struct ViewLayer *view_layer,
                                                  struct View3D *v3d,
                                                  unsigned int *r_objects_len);
-struct Object **BKE_object_pose_array_get(struct ViewLayer *view_layer,
+struct Object **BKE_object_pose_array_get(const struct Scene *scene,
+                                          struct ViewLayer *view_layer,
                                           struct View3D *v3d,
                                           unsigned int *r_objects_len);
 
-struct Base **BKE_object_pose_base_array_get_ex(struct ViewLayer *view_layer,
+struct Base **BKE_object_pose_base_array_get_ex(const struct Scene *scene,
+                                                struct ViewLayer *view_layer,
                                                 struct View3D *v3d,
                                                 unsigned int *r_bases_len,
                                                 bool unique);
-struct Base **BKE_object_pose_base_array_get_unique(struct ViewLayer *view_layer,
+struct Base **BKE_object_pose_base_array_get_unique(const struct Scene *scene,
+                                                    struct ViewLayer *view_layer,
                                                     struct View3D *v3d,
                                                     unsigned int *r_bases_len);
-struct Base **BKE_object_pose_base_array_get(struct ViewLayer *view_layer,
+struct Base **BKE_object_pose_base_array_get(const struct Scene *scene,
+                                             struct ViewLayer *view_layer,
                                              struct View3D *v3d,
                                              unsigned int *r_bases_len);
 
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 289ea1424f9..0e1c7b8ec7a 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -498,7 +498,6 @@ void BKE_view_layer_copy_data(Scene *scene_dst,
 
   /* Clear temporary data. */
   BLI_listbase_clear(&view_layer_dst->drawdata);
-  // TODO: BKE_view_layer_object_bases_get should we set tag the view_layer_dst here for rebuild.
   view_layer_dst->object_bases_array = NULL;
   view_layer_dst->object_bases_hash = NULL;
 
@@ -1531,7 +1530,6 @@ void BKE_base_set_visible(Scene *scene, ViewLayer *view_layer, Base *base, bool
     base->flag ^= BASE_HIDDEN;
   }
 
-  // BKE_layer_collection_sync(scene, view_layer);
   BKE_view_layer_tag_out_of_sync(view_layer);
 }
 
diff --git a/source/blender/blenkernel/intern/layer_utils.c b/source/blender/blenkernel/intern/layer_utils.c
index 6db6b18bb9b..150e6418bef 100644
--- a/source/blender/blen

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list