[Bf-blender-cvs] [d9d49d35137] tracking_tools: Merge branch 'master' into tracking_tools

Sebastian Koenig noreply at git.blender.org
Thu Apr 7 11:21:10 CEST 2022


Commit: d9d49d35137bc39e2aa76dfbf1293d53203ae015
Author: Sebastian Koenig
Date:   Thu Apr 7 11:21:00 2022 +0200
Branches: tracking_tools
https://developer.blender.org/rBd9d49d35137bc39e2aa76dfbf1293d53203ae015

Merge branch 'master' into tracking_tools

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



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

diff --cc source/blender/blenloader/intern/versioning_300.c
index 19c29bc1e54,dd3412d6c83..1db489e480f
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@@ -2457,23 -2498,172 +2498,190 @@@ void blo_do_versions_300(FileData *fd, 
          }
        }
      }
 +
 +    {
 +      for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
 +        LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
 +          LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
 +            ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
 +                                                                   &sl->regionbase;
 +            if ((sl->spacetype == SPACE_CLIP) &&
 +                (do_versions_find_region_or_null(regionbase, RGN_TYPE_TOOL_HEADER) == NULL)) {
 +              ARegion *region = do_versions_add_region_if_not_found(
 +                  regionbase, RGN_TYPE_TOOL_HEADER, "tool header", RGN_TYPE_HEADER);
 +              region->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM :
 +                                                                    RGN_ALIGN_TOP;
 +            }
 +          }
 +        }
 +      }
 +    }
    }
+ 
+   if (!MAIN_VERSION_ATLEAST(bmain, 302, 9)) {
+     /* Sequencer channels region. */
+     for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
+       LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
+         LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
+           if (sl->spacetype != SPACE_SEQ) {
+             continue;
+           }
+           if (ELEM(((SpaceSeq *)sl)->view, SEQ_VIEW_PREVIEW, SEQ_VIEW_SEQUENCE_PREVIEW)) {
+             continue;
+           }
+ 
+           ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase :
+                                                                  &sl->regionbase;
+           ARegion *region = BKE_area_find_region_type(area, RGN_TYPE_CHANNELS);
+           if (!region) {
+             ARegion *tools_region = BKE_area_find_region_type(area, RGN_TYPE_TOOLS);
+             region = do_versions_add_region(RGN_TYPE_CHANNELS, "channels region");
+             BLI_insertlinkafter(regionbase, tools_region, region);
+             region->alignment = RGN_ALIGN_LEFT;
+             region->v2d.flag |= V2D_VIEWSYNC_AREA_VERTICAL;
+           }
+ 
+           ARegion *timeline_region = BKE_area_find_region_type(area, RGN_TYPE_WINDOW);
+           if (timeline_region != NULL) {
+             timeline_region->v2d.flag |= V2D_VIEWSYNC_AREA_VERTICAL;
+           }
+         }
+       }
+     }
+ 
+     /* Initialize channels. */
+     LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
+       Editing *ed = SEQ_editing_get(scene);
+       if (ed == NULL) {
+         continue;
+       }
+       SEQ_channels_ensure(&ed->channels);
+       SEQ_for_each_callback(&scene->ed->seqbase, seq_meta_channels_ensure, NULL);
+ 
+       ed->displayed_channels = &ed->channels;
+ 
+       ListBase *previous_channels = &ed->channels;
+       LISTBASE_FOREACH (MetaStack *, ms, &ed->metastack) {
+         ms->old_channels = previous_channels;
+         previous_channels = &ms->parseq->channels;
+         /* If `MetaStack` exists, active channels must point to last link. */
+         ed->displayed_channels = &ms->parseq->channels;
+       }
+     }
+   }
+ 
+   if (!MAIN_VERSION_ATLEAST(bmain, 302, 10)) {
+     for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
+       LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
+         LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
+           if (sl->spacetype != SPACE_FILE) {
+             continue;
+           }
+           SpaceFile *sfile = (SpaceFile *)sl;
+           if (sfile->browse_mode != FILE_BROWSE_MODE_ASSETS) {
+             continue;
+           }
+           sfile->asset_params->base_params.filter_id |= FILTER_ID_GR;
+         }
+       }
+     }
+   }
+ 
+   if (!MAIN_VERSION_ATLEAST(bmain, 302, 10)) {
+     /* While vertex-colors were experimental the smear tool became corrupt due
+      * to bugs in the wm_toolsystem API (auto-creation of sculpt brushes
+      * was broken).  Go through and reset all smear brushes. */
+     LISTBASE_FOREACH (Brush *, br, &bmain->brushes) {
+       if (br->sculpt_tool == SCULPT_TOOL_SMEAR) {
+         br->alpha = 1.0f;
+         br->spacing = 5;
+         br->flag &= ~BRUSH_ALPHA_PRESSURE;
+         br->flag &= ~BRUSH_SPACE_ATTEN;
+         br->curve_preset = BRUSH_CURVE_SPHERE;
+       }
+     }
+ 
+     /* Rebuild active/render color attribute references. */
+     LISTBASE_FOREACH (Mesh *, me, &bmain->meshes) {
+       for (int step = 0; step < 2; step++) {
+         CustomDataLayer *actlayer = NULL;
+ 
+         int vact1, vact2;
+ 
+         if (step) {
+           vact1 = CustomData_get_render_layer_index(&me->vdata, CD_PROP_COLOR);
+           vact2 = CustomData_get_render_layer_index(&me->ldata, CD_MLOOPCOL);
+         }
+         else {
+           vact1 = CustomData_get_active_layer_index(&me->vdata, CD_PROP_COLOR);
+           vact2 = CustomData_get_active_layer_index(&me->ldata, CD_MLOOPCOL);
+         }
+ 
+         if (vact1 != -1) {
+           actlayer = me->vdata.layers + vact1;
+         }
+         else if (vact2 != -1) {
+           actlayer = me->ldata.layers + vact2;
+         }
+ 
+         if (actlayer) {
+           if (step) {
+             BKE_id_attributes_render_color_set(&me->id, actlayer);
+           }
+           else {
+             BKE_id_attributes_active_color_set(&me->id, actlayer);
+           }
+         }
+       }
+     }
+ 
+     /* Update data transfer modifiers */
+     LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
+       LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
+         if (md->type == eModifierType_DataTransfer) {
+           DataTransferModifierData *dtmd = (DataTransferModifierData *)md;
+ 
+           for (int i = 0; i < DT_MULTILAYER_INDEX_MAX; i++) {
+             if (dtmd->layers_select_src[i] == 0) {
+               dtmd->layers_select_src[i] = DT_LAYERS_ALL_SRC;
+             }
+ 
+             if (dtmd->layers_select_dst[i] == 0) {
+               dtmd->layers_select_dst[i] = DT_LAYERS_NAME_DST;
+             }
+           }
+         }
+       }
+     }
+   }
+ 
+   /**
+    * Versioning code until next subversion bump goes here.
+    *
+    * \note Be sure to check when bumping the version:
+    * - "versioning_userdef.c", #blo_do_versions_userdef
+    * - "versioning_userdef.c", #do_versions_theme
+    *
+    * \note Keep this message at the bottom of the function.
+    */
+   {
+     /* Keep this block, even when empty. */
+ 
+     /* Add node storage for the merge by distance node. */
+     FOREACH_NODETREE_BEGIN (bmain, ntree, id) {
+       if (ntree->type == NTREE_GEOMETRY) {
+         LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+           if (node->type == GEO_NODE_MERGE_BY_DISTANCE) {
+             if (node->storage == NULL) {
+               NodeGeometryMergeByDistance *data = MEM_callocN(sizeof(NodeGeometryMergeByDistance),
+                                                               __func__);
+               data->mode = GEO_NODE_MERGE_BY_DISTANCE_MODE_ALL;
+               node->storage = data;
+             }
+           }
+         }
+       }
+     }
+     FOREACH_NODETREE_END;
+   }
  }



More information about the Bf-blender-cvs mailing list