[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