Blender Git Commit Log
Git Commits -> Revision d2a5ddb
Revision d2a5ddb by Joshua Leung (master) April 15, 2014, 15:23 (GMT) |
Optimisations for building "Long Keyframes" For a long time, one of the bottlenecks when drawing summary channels in the dopesheet (especially with many objects) was how the long keyframes feature (i.e showing holds between keyframes) got built. Specifically, it was the step where we check on the previous keyframe to see whether there's a hold between those two. The old code performed some elaborate checks, which made sense back when we used to handle certain summary channels (e.g. object-action/ipo, and groups IIRC) differently. However, nowadays, everything just does it by going over the FCurves one by one, so the offending code wasn't really providing much benefit. Unless I've forgotten some other reason why that old method is necessary, this commit should provide a decent speedup here, making things somewhat interactive now (if still a bit jerky). Other Tweaks: 1) Introduced float-precision threshold when checking to see whether an existing long keyframe could be reused. This should hopefully reduce the number of fp-jitter issues when creating summaries for many channels, reducing the number of duplicates created. 2) Precompute colours used for shading the long keyframes, instead of recomputing for each block. |
Commit Details:
Full Hash: d2a5ddb4ec12245b4d1580490d88e808a2a04761
Parent Commit: 76dd3db
Lines Changed: +41, -149
1 Modified Path:
/source/blender/editors/animation/keyframes_draw.c (+41, -149) (Diff)