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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs