Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2012-01-22 08:39:33 +0400
committerJoshua Leung <aligorith@gmail.com>2012-01-22 08:39:33 +0400
commit4ec5a9a42c00d65898e8a4aef5b73409a5e1785f (patch)
tree1f40a50c467d23cab6ec6304ceda0dfe2eb8525d /source/blender/blenkernel/intern/nla.c
parent7d13619990dc1fff12a32bee11a9856688948bf4 (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.c10
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;
}
}