New viewlayer deferred resync code: add utils to ensure resync of whole Scene and Main.
Similar to existing `BKE_main_collection_sync` and `BKE_scene_collection_sync`, in some cases code does not have access to a specific view layer, and/or does not know exactly which view layer needs to be in sync, or just need the full data to be up to date.
This commit is contained in:
parent
6b76381e0a
commit
501fff40e8
|
@ -585,6 +585,9 @@ struct LayerCollection *BKE_view_layer_active_collection_get(struct ViewLayer *v
|
|||
void BKE_view_layer_need_resync_tag(struct ViewLayer *view_layer);
|
||||
void BKE_view_layer_synced_ensure(const struct Scene *scene, struct ViewLayer *view_layer);
|
||||
|
||||
void BKE_scene_view_layers_synced_ensure(const struct Scene *scene);
|
||||
void BKE_main_view_layers_synced_ensure(const struct Main *bmain);
|
||||
|
||||
struct ViewLayerAOV *BKE_view_layer_add_aov(struct ViewLayer *view_layer);
|
||||
void BKE_view_layer_remove_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov);
|
||||
void BKE_view_layer_set_active_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov);
|
||||
|
|
|
@ -975,6 +975,23 @@ void BKE_view_layer_synced_ensure(const Scene *scene, struct ViewLayer *view_lay
|
|||
}
|
||||
}
|
||||
|
||||
void BKE_scene_view_layers_synced_ensure(const Scene *scene)
|
||||
{
|
||||
LISTBASE_FOREACH (ViewLayer *, view_layer, &scene->view_layers) {
|
||||
BKE_view_layer_synced_ensure(scene, view_layer);
|
||||
}
|
||||
}
|
||||
|
||||
void BKE_main_view_layers_synced_ensure(const Main *bmain)
|
||||
{
|
||||
for (const Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) {
|
||||
BKE_scene_view_layers_synced_ensure(scene);
|
||||
}
|
||||
|
||||
/* NOTE: This is not (yet?) covered by the dirty tag and deffered resync system */
|
||||
BKE_layer_collection_local_sync_all(bmain);
|
||||
}
|
||||
|
||||
static void layer_collection_objects_sync(ViewLayer *view_layer,
|
||||
LayerCollection *layer,
|
||||
ListBase *r_lb_new_object_bases,
|
||||
|
|
Loading…
Reference in New Issue