summaryrefslogtreecommitdiffstats
path: root/src/animation/backend/lerpclipblend_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Add allDependencyIds() pure virtual and overrides to backend nodesSean Harmer2017-03-261-0/+5
| | | | | | | | This will be used to visit all nodes by the visitor for the purpose of collecting vlaue nodes that should be evaluated. Change-Id: Iff84eed2ee139a0ecd3639994549e5859b5827d0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename dependencyIds() to currentDependencyIds()Sean Harmer2017-03-261-1/+1
| | | | | | | | | | We need to add another function that returns all potential dependencies rather than just those that are dependencies given the current state (blend value). Make room for that by renaming this to a more descriptive name. Change-Id: I06cdc2e471007e3bd40cd7b687a4a2c21e4b2828 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove blend() virtual function from backend blend tree nodesSean Harmer2017-03-261-1/+0
| | | | | | | | No longer needed as replaced by the more general doBlend() protected virtual. Change-Id: I5f11c068f8a379baa53a033e5ce8ce63ff64d5ba Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add virtual doBlend to ClipBlendNode and subclassesSean Harmer2017-03-251-0/+3
| | | | | | | | | | | | | | | | | | | This is called by the non virtual performBlend (will be renamed once old implementation is removed). The key here is that all nodes in the blend tree will have the exact same layout for the ClipResults for a given animator. This means we don't need to have a mapping data structure for every node in the tree. This really simplifies the blending implementation and will allow us to parallelise this much better in the future as each blend node could make use of a parallel_for() or map() type operation. To achieve this we will need to perform a gather operation that maps the ClipResults coming straight out of an animation clip to the ClipResults layout used by the blend tree as described above. This will be done in a follow up commit. Change-Id: I389383d3b9197a6ef36b529f44ac89cb5c593023 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add function to recursively calculate duration of a blend treeSean Harmer2017-03-251-0/+2
| | | | | | | | | | | | | | The resulting duration is independent of which animators the blend tree is associated with so this can be implemented as a simple set of virtual functions in the concrete classes. The value node simply returns the duration of the contained clip; the additive node returns the duration of the base node; and the lerp node lerps the durations of the start and end nodes. Change-Id: Ib6edea3fa495885493fa72d44437fea5a8c5a446 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add virtual to ClipBlendNode to allow querying dependenciesSean Harmer2017-03-171-0/+5
| | | | | | | | | | | This will allow a job to build up a list of clips to be evaluated for the blend tree. This has enough flexibility to allow us to support many types of bend node in the future but still allow us to only evaluate the clips actually needed at any given time and for the current set of blend node states. Change-Id: I6bfff6d18434af4f09764d890af6f8f429996994 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add startClip and endClip properties to QLerpClipBlendSean Harmer2017-02-241-0/+8
| | | | | | Task-number: QTBUG-58904 Change-Id: I67a28b5f311d0065e8ca81df692de33ef1aeefcf Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Rename QLerpBlend to QLerpClipBlendSean Harmer2017-02-241-0/+83
Also rename backend class accordingly. Task-number: QTBUG-58904 Change-Id: I3a8d3898507e5055c2727e4bb1b19b06fdba988b Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>