[Bf-blender-cvs] [3f5fd912a7b] temp-T73411-view-layer-lazy-cache: Merge branch 'temp-T73411-add-scene-parameters' into temp-T73411-view-layer-lazy-cache

Monique noreply at git.blender.org
Tue Sep 13 20:09:01 CEST 2022


Commit: 3f5fd912a7bab78b4b85438f630f392ad8234bc8
Author: Monique
Date:   Tue Sep 13 20:08:48 2022 +0200
Branches: temp-T73411-view-layer-lazy-cache
https://developer.blender.org/rB3f5fd912a7bab78b4b85438f630f392ad8234bc8

Merge branch 'temp-T73411-add-scene-parameters' into temp-T73411-view-layer-lazy-cache

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



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

diff --cc source/blender/editors/object/object_add.cc
index 3c984e4a1bb,ee2bb551c40..1b9e84967ef
--- a/source/blender/editors/object/object_add.cc
+++ b/source/blender/editors/object/object_add.cc
@@@ -3581,9 -3571,9 +3581,9 @@@ static Base *object_add_duplicate_inter
        *r_ob_new = obn;
      }
      DEG_id_tag_update(&obn->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY);
 -
 +    BKE_view_layer_synced_ensure(scene, view_layer);
      base = BKE_view_layer_base_find(view_layer, ob);
-     if ((base != nullptr) && (base->flag & BASE_VISIBLE_DEPSGRAPH)) {
+     if ((base != nullptr) && (base->flag & BASE_ENABLED_AND_MAYBE_VISIBLE_IN_VIEWPORT)) {
        BKE_collection_object_add_from(bmain, scene, ob, obn);
      }
      else {
diff --cc source/blender/editors/object/object_edit.c
index 39c8a3c4c7b,0e369941be8..c3482b13db6
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@@ -140,9 -140,8 +140,9 @@@ Object **ED_object_array_in_mode_or_sel
                                               uint *r_objects_len)
  {
    ScrArea *area = CTX_wm_area(C);
-   Scene *scene = CTX_data_scene(C);
+   const Scene *scene = CTX_data_scene(C);
    ViewLayer *view_layer = CTX_data_view_layer(C);
 +  BKE_view_layer_synced_ensure(scene, view_layer);
    Object *ob_active = BKE_view_layer_active_object_get(view_layer);
    ID *id_pin = NULL;
    const bool use_objects_in_mode = (ob_active != NULL) &&
@@@ -289,9 -287,8 +289,9 @@@ static int object_hide_view_set_exec(bC
    bool changed = false;
  
    /* Hide selected or unselected objects. */
 -  LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
 +  BKE_view_layer_synced_ensure(scene, view_layer);
 +  LISTBASE_FOREACH (Base *, base, BKE_view_layer_object_bases_get(view_layer)) {
-     if (!(base->flag & BASE_VISIBLE_VIEWLAYER)) {
+     if (!(base->flag & BASE_ENABLED_AND_VISIBLE_IN_DEFAULT_VIEWPORT)) {
        continue;
      }
  
diff --cc source/blender/editors/object/object_select.c
index 4a7c7c69828,8a7e6d9447d..43867877fdb
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@@ -250,10 -251,9 +250,10 @@@ Base *ED_object_find_first_by_data_id(c
  
  bool ED_object_jump_to_object(bContext *C, Object *ob, const bool UNUSED(reveal_hidden))
  {
-   Scene *scene = CTX_data_scene(C);
+   const Scene *scene = CTX_data_scene(C);
    ViewLayer *view_layer = CTX_data_view_layer(C);
    View3D *v3d = CTX_wm_view3d(C);
 +  BKE_view_layer_synced_ensure(scene, view_layer);
    Base *base = BKE_view_layer_base_find(view_layer, ob);
  
    if (base == NULL) {
diff --cc source/blender/editors/screen/screen_context.c
index 88684d3d4a4,b96a4a10408..ffd76e70eb8
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@@ -211,10 -201,9 +211,10 @@@ static eContextResult screen_ctx_object
  {
    wmWindow *win = CTX_wm_window(C);
    View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
-   Scene *scene = CTX_data_scene(C);
+   const Scene *scene = WM_window_get_active_scene(win);
    ViewLayer *view_layer = WM_window_get_active_view_layer(win);
 -  Object *obact = view_layer->basact ? view_layer->basact->object : NULL;
 +  BKE_view_layer_synced_ensure(scene, view_layer);
 +  Object *obact = BKE_view_layer_active_object_get(view_layer);
  
    if (obact && (obact->mode != OB_MODE_OBJECT)) {
      FOREACH_OBJECT_IN_MODE_BEGIN (scene, view_layer, v3d, obact->type, obact->mode, ob_iter) {
@@@ -230,10 -219,9 +230,10 @@@ static eContextResult screen_ctx_object
  {
    wmWindow *win = CTX_wm_window(C);
    View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
-   Scene *scene = CTX_data_scene(C);
+   const Scene *scene = WM_window_get_active_scene(win);
    ViewLayer *view_layer = WM_window_get_active_view_layer(win);
 -  Object *obact = view_layer->basact ? view_layer->basact->object : NULL;
 +  BKE_view_layer_synced_ensure(scene, view_layer);
 +  Object *obact = BKE_view_layer_active_object_get(view_layer);
  
    if (obact && (obact->mode != OB_MODE_OBJECT)) {
      FOREACH_OBJECT_IN_MODE_BEGIN (scene, view_layer, v3d, obact->type, obact->mode, ob_iter) {
@@@ -256,9 -244,8 +256,9 @@@ static eContextResult screen_ctx_visibl
                                                              const bool editable_bones)
  {
    wmWindow *win = CTX_wm_window(C);
-   Scene *scene = CTX_data_scene(C);
+   const Scene *scene = WM_window_get_active_scene(win);
    ViewLayer *view_layer = WM_window_get_active_view_layer(win);
 +  BKE_view_layer_synced_ensure(scene, view_layer);
    Object *obedit = BKE_view_layer_edit_object_get(view_layer);
  
    bArmature *arm = (obedit && obedit->type == OB_ARMATURE) ? obedit->data : NULL;
@@@ -329,9 -316,8 +329,9 @@@ static eContextResult screen_ctx_select
                                                   const bool selected_editable_bones)
  {
    wmWindow *win = CTX_wm_window(C);
-   Scene *scene = CTX_data_scene(C);
+   const Scene *scene = WM_window_get_active_scene(win);
    ViewLayer *view_layer = WM_window_get_active_view_layer(win);
 +  BKE_view_layer_synced_ensure(scene, view_layer);
    Object *obedit = BKE_view_layer_edit_object_get(view_layer);
    bArmature *arm = (obedit && obedit->type == OB_ARMATURE) ? obedit->data : NULL;
    EditBone *flipbone = NULL;
@@@ -401,10 -387,9 +401,10 @@@ static eContextResult screen_ctx_visibl
  {
    wmWindow *win = CTX_wm_window(C);
    View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
-   const Scene *scene = CTX_data_scene(C);
+   const Scene *scene = WM_window_get_active_scene(win);
    ViewLayer *view_layer = WM_window_get_active_view_layer(win);
 -  Object *obact = view_layer->basact ? view_layer->basact->object : NULL;
 +  BKE_view_layer_synced_ensure(scene, view_layer);
 +  Object *obact = BKE_view_layer_active_object_get(view_layer);
    Object *obpose = BKE_object_pose_armature_get(obact);
    if (obpose && obpose->pose && obpose->data) {
      if (obpose != obact) {
@@@ -431,10 -416,9 +431,9 @@@ static eContextResult screen_ctx_select
  {
    wmWindow *win = CTX_wm_window(C);
    View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
-   const Scene *scene = CTX_data_scene(C);
+   const Scene *scene = WM_window_get_active_scene(win);
    ViewLayer *view_layer = WM_window_get_active_view_layer(win);
-   BKE_view_layer_synced_ensure(scene, view_layer);
 -  Object *obact = view_layer->basact ? view_layer->basact->object : NULL;
 +  Object *obact = BKE_view_layer_active_object_get(view_layer);
    Object *obpose = BKE_object_pose_armature_get(obact);
    if (obpose && obpose->pose && obpose->data) {
      if (obpose != obact) {
diff --cc source/blender/editors/sculpt_paint/sculpt_undo.c
index 035531b2f35,af94cad88f3..51af8f878e5
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@@ -481,14 -473,13 +481,15 @@@ static bool sculpt_undo_restore_mask(bC
  
  static bool sculpt_undo_restore_face_sets(bContext *C, SculptUndoNode *unode)
  {
 +  const Scene *scene = CTX_data_scene(C);
    ViewLayer *view_layer = CTX_data_view_layer(C);
 +  BKE_view_layer_synced_ensure(scene, view_layer);
    Object *ob = BKE_view_layer_active_object_get(view_layer);
    Mesh *me = BKE_object_get_original_mesh(ob);
-   int *face_sets = CustomData_get_layer(&me->pdata, CD_SCULPT_FACE_SETS);
+   int *face_sets = CustomData_add_layer(
+       &me->pdata, CD_SCULPT_FACE_SETS, CD_CONSTRUCT, NULL, me->totpoly);
    for (int i = 0; i < me->totpoly; i++) {
-     face_sets[i] = unode->face_sets[i];
+     SWAP(int, face_sets[i], unode->face_sets[i]);
    }
    return false;
  }
diff --cc source/blender/editors/space_outliner/outliner_draw.cc
index 6de0e5d55bd,4259d3572be..912dc436a95
--- a/source/blender/editors/space_outliner/outliner_draw.cc
+++ b/source/blender/editors/space_outliner/outliner_draw.cc
@@@ -284,9 -284,8 +284,9 @@@ static void outliner_object_set_flag_re
          DEG_id_tag_update(&ob_iter->id, ID_RECALC_COPY_ON_WRITE);
        }
        else {
 +        BKE_view_layer_synced_ensure(scene, view_layer);
          Base *base_iter = BKE_view_layer_base_find(view_layer, ob_iter);
-         /* Child can be in a collection excluded from viewlayer. */
+         /* Child can be in a collection excluded from view-layer. */
          if (base_iter == nullptr) {
            continue;
          }
diff --cc source/blender/editors/space_outliner/outliner_select.cc
index 0c49602b5b8,ffd3e08fe24..15079448317
--- a/source/blender/editors/space_outliner/outliner_select.cc
+++ b/source/blender/editors/space_outliner/outliner_select.cc
@@@ -240,10 -238,9 +241,10 @@@ static void do_outliner_object_select_r
                                                  Object *ob_parent,
                                                  bool select)
  {
 -  LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
 +  BKE_view_layer_synced_ensure(scene, view_layer);
 +  LISTBASE_FOREACH (Base *, base, BKE_view_layer_object_bases_get(view_layer)) {
      Object *ob = base->object;
-     if ((((base->flag & BASE_VISIBLE_DEPSGRAPH) != 0) &&
+     if ((((base->flag & BASE_ENABLED_AND_MAYBE_VISIBLE_IN_VIEWPORT) != 0) &&
           BKE_object_is_child_recursive(ob_parent, ob))) {
        ED_object_base_select(base, select ? BA_SELECT : BA_DESELECT);
      }
@@@ -807,10 -796,10 +809,10 @@@ void tree_element_type_active_set(bCont
        tree_element_defgroup_activate(C, te, tselem);
        break;
      case TSE_BONE:
 -      tree_element_bone_activate(C, tvc->view_layer, te, tselem, set, recursive);
 +      tree_element_bone_activate(C, tvc->scene, tvc->view_layer, te, tselem, set, recursive);
        break;
      case TSE_EBONE:
-       tree_element_ebone_activate(C, tvc->view_layer, te, tselem, set, recursive);
+       tree_element_ebone_activate(C, tvc->scene, tvc->view_layer, te, tselem, set, recursive);
        break;
      case TSE_MODIFIER:
        tree_element_modifier_activate(C, te, tselem, set);
diff --cc source/blender/editors/space_view3d/space_view3d.c
index a44f19b69e2,c1c7147b3b1..1c5cb475721
---

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list