diff options
author | Joshua Leung <aligorith@gmail.com> | 2012-01-06 08:03:31 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2012-01-06 08:03:31 +0400 |
commit | 1e23a2ba33bb101f00737d25e77a8de1e6b0eb42 (patch) | |
tree | 6fdc651ac563d2be8c2260a5377d9e80ad250cb9 /source/blender/editors/animation/anim_filter.c | |
parent | dd858d6cd9fb39363426a7547b36c1821d4b9c0d (diff) |
Bugfix [#29806] World nodetrees not included in Animation Editor filtering
This was mostly only a problem when using Cycles, where NodeTrees are used to
control the world settings.
Also needed to knock out a few remnants of some bygone attempted optimisation
attempts which were preventing this from working (i.e. if a world block didn't
have any animdata, it's child nodetree would never get seen/tested). These
worked ok in the past, but are not that flexible for extension.
Diffstat (limited to 'source/blender/editors/animation/anim_filter.c')
-rw-r--r-- | source/blender/editors/animation/anim_filter.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index 45b715c406a..b84ec5427c5 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -1852,6 +1852,10 @@ static size_t animdata_filter_ds_world (bAnimContext *ac, ListBase *anim_data, b /* textures for world */ if (!(ads->filterflag & ADS_FILTER_NOTEX)) items += animdata_filter_ds_textures(ac, &tmp_data, ads, (ID *)wo, filter_mode); + + /* nodes */ + if ((wo->nodetree) && !(ads->filterflag & ADS_FILTER_NONTREE)) + tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)wo, wo->nodetree, filter_mode); } END_ANIMFILTER_SUBCHANNELS; @@ -1947,12 +1951,12 @@ static size_t animdata_filter_dopesheet_scene (bAnimContext *ac, ListBase *anim_ } /* world */ - if ((wo && wo->adt) && !(ads->filterflag & ADS_FILTER_NOWOR)) { + if ((wo) && !(ads->filterflag & ADS_FILTER_NOWOR)) { tmp_items += animdata_filter_ds_world(ac, &tmp_data, ads, sce, wo, filter_mode); } /* nodetree */ - if ((ntree && ntree->adt) && !(ads->filterflag & ADS_FILTER_NONTREE)) { + if ((ntree) && !(ads->filterflag & ADS_FILTER_NONTREE)) { tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)sce, ntree, filter_mode); } |