diff options
author | Joshua Leung <aligorith@gmail.com> | 2012-01-22 08:39:33 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2012-01-22 08:39:33 +0400 |
commit | 4ec5a9a42c00d65898e8a4aef5b73409a5e1785f (patch) | |
tree | 1f40a50c467d23cab6ec6304ceda0dfe2eb8525d /source/blender/blenkernel/intern/nla.c | |
parent | 7d13619990dc1fff12a32bee11a9856688948bf4 (diff) |
Bugfix [#29869] NLA editor keeps resetting my extrapolation mode every time I
edit a strip in the timeline
Tweaked the behaviour of the overwritting of extrapolation mode so that it is
less destructive when the problems it sets out to fix aren't likely to occur
(namely a top strip blocking everything below it due to extend backwards).
Diffstat (limited to 'source/blender/blenkernel/intern/nla.c')
-rw-r--r-- | source/blender/blenkernel/intern/nla.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c index 147f39b6728..12f403d028f 100644 --- a/source/blender/blenkernel/intern/nla.c +++ b/source/blender/blenkernel/intern/nla.c @@ -1448,9 +1448,17 @@ void BKE_nla_validate_state (AnimData *adt) */ // TODO: 1 solution is to tie this in with auto-blending... if (strip->extendmode != NLASTRIP_EXTEND_NOTHING) { + /* 1) First strip must be set to extend hold, otherwise, stuff before acts dodgy + * 2) Only overwrite extend mode if *not* changing it will most probably result in + * occlusion problems, which will occur iff + * - blendmode = REPLACE + * - all channels the same (this is fiddly to test, so is currently assumed) + * + * Should fix problems such as [#29869] + */ if (strip == fstrip) strip->extendmode= NLASTRIP_EXTEND_HOLD; - else + else if (strip->blendmode == NLASTRIP_MODE_REPLACE) strip->extendmode= NLASTRIP_EXTEND_HOLD_FORWARD; } } |