aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
Commit message (Collapse)AuthorAge
...
* [skottie] Cache attached assetsGravatar Florin Malita2018-01-29
| | | | | | | | | | | | This avoids redundant instantiations for assets referenced multiple times. TBR= Change-Id: I8f61f73e695f0d567e55ef077c7d3fb344399f12 Reviewed-on: https://skia-review.googlesource.com/101002 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Simplify layer matrix cachingGravatar Florin Malita2018-01-28
| | | | | | | | | | | Switch to SkTHashMap, unify the cache based on layer index. TBR= Change-Id: I7e7622571156d67b4fe5ef91ee9a9a49b089c78f Reviewed-on: https://skia-review.googlesource.com/101001 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Switch animators to SkTArrayGravatar Florin Malita2018-01-28
| | | | | | | | | TBR= Change-Id: I8acc02f176e7dffd344456ad4cc39936e9a9618f Reviewed-on: https://skia-review.googlesource.com/101000 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Add 'rz' rotation supportGravatar Florin Malita2018-01-26
| | | | | | | | | TBR= Change-Id: I6dd82e5dc516faac091e5173688d2bc977e4fcaa Reviewed-on: https://skia-review.googlesource.com/100280 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Refactor animatorsGravatar Florin Malita2018-01-26
| | | | | | | | | | | Separate storage for values, cubic maps, repeated values deduplication. TBR= Change-Id: Ibfbcea91ef1d7b1da937b4af44079e7612d410cb Reviewed-on: https://skia-review.googlesource.com/99981 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Parser cleanupGravatar Florin Malita2018-01-25
| | | | | | | | | | | Consolidate parsing utils into their own CU. TBR= Change-Id: Idbf6db5220135ba91df6ebefce3a241c6ec4af15 Reviewed-on: https://skia-review.googlesource.com/99721 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Cache the last keyframeGravatar Florin Malita2018-01-25
| | | | | | | | | | | We can avoid searching on every tick. TBR= Change-Id: Ifc3ff40f1f5ec2bf865c09a8e784223aa8a96674 Reviewed-on: https://skia-review.googlesource.com/99580 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Animator scrubbingGravatar Florin Malita2018-01-24
| | | | | | | | | | | | | Use std::function and lambda closures to capture node type info. Reduces the template degree. TBR= Change-Id: Id81ff3e2e1fca5c8acaaf2d0fc67e608d6f3d606 Reviewed-on: https://skia-review.googlesource.com/99261 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Clamp keyframe valuesGravatar Florin Malita2018-01-24
| | | | | | | | | | | We can skip interpolation if |t| is out of range or the interval is constant ("hold"). TBR= Change-Id: I0602d36557f46592ab673201ed2b4a96d40dc461 Reviewed-on: https://skia-review.googlesource.com/99420 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] "hold" keyframe supportGravatar Florin Malita2018-01-24
| | | | | | | | | TBR= Change-Id: I5388bc5a5d24b3bbe3962b2da646719e95efe858 Reviewed-on: https://skia-review.googlesource.com/99281 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Initial mask supportGravatar Florin Malita2018-01-23
| | | | | | | | | TBR= Change-Id: Ibf4baeb17f98e1ed359f04deefe2f1c09414540d Reviewed-on: https://skia-review.googlesource.com/98840 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Discard orphaned geometry animatorsGravatar Florin Malita2018-01-23
| | | | | | | | | TBR= NOTRY=true Change-Id: I8e4de99c8ebc3ec28509753b59a287d896e65aea Reviewed-on: https://skia-review.googlesource.com/98705 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* [skottie] Improved animation params parsingGravatar Florin Malita2018-01-23
| | | | | | | | | | Some BM versions wrap the Bezier animation params into arrays. TBR= Change-Id: I376b1ed2079105066413b513c3df33a61440cf41 Reviewed-on: https://skia-review.googlesource.com/98580 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Improved trim path supportGravatar Florin Malita2018-01-23
| | | | | | | | | | |offset| is an angular value in [0..360]. TBR= Change-Id: I10a91bec7e8f43db1f54c8b5358dd0604c974998 Reviewed-on: https://skia-review.googlesource.com/98560 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Animator, SceneGravatar Florin Malita2018-01-22
| | | | | | | | | | Relocate some reusable logic from Skottie TBR= Change-Id: I8764e666c9f1127ed895ee1d16cd66d052469ac5 Reviewed-on: https://skia-review.googlesource.com/98160 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Refactor inval registrationGravatar Florin Malita2018-01-22
| | | | | | | | | | ... to avoid having too many Node friends. TBR= Change-Id: I8f8ff570d94ea48017935066a3d51cd8265ec120 Reviewed-on: https://skia-review.googlesource.com/97980 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Improved trim-path emulationGravatar Florin Malita2018-01-21
| | | | | | | | | | Skip zero-length trims, simplify dashing. TBR= Change-Id: I0b30d78a1eeb93131ba0bd915431ab21d05cc00a Reviewed-on: https://skia-review.googlesource.com/97663 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Only apply effects to non-empty geometry stacksGravatar Florin Malita2018-01-21
| | | | | | | | TBR= Change-Id: Iaafd63c787b72cdf83b21bd39cc10d01612e435d Reviewed-on: https://skia-review.googlesource.com/97662 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Skip zero-width strokesGravatar Florin Malita2018-01-21
| | | | | | | | | | | | Zero-width strokes imply hairline in Skia, but in other models (e.g. Lottie) they are simply ignored. The latter approach avoids discontinuities when width -> 0, so let's make it the default for sksg. TBR= Change-Id: I957a873c0e6468e21372115ed18cc7316fd2e7d1 Reviewed-on: https://skia-review.googlesource.com/97661 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie,sksg] Improved shape group semanticsGravatar Florin Malita2018-01-19
| | | | | | | | | | | * paints also apply to preceding nested geometries * path effects also apply to preceding nested geometries TBR= Change-Id: Ic72f8d032fb5823f506ff688630b786a23219f20 Reviewed-on: https://skia-review.googlesource.com/97222 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* handle large rects, rename helperGravatar Mike Reed2018-01-17
| | | | | | | | | | | To fix gm/bigrect, needed to do adjust "largest" rect so it doesn't become empty when round-tripping with SkRect/SkIRect. I renamed it after this. Bug: skia: Change-Id: I747782c8456da603cf298275d2300ea1996e7629 Reviewed-on: https://skia-review.googlesource.com/95563 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com>
* Skotty -> SkottieGravatar Florin Malita2018-01-17
| | | | | | | Change-Id: If8b6516024c69b0fc256208874f6666a4e70e12c Reviewed-on: https://skia-review.googlesource.com/95241 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Refactor paint opacityGravatar Florin Malita2018-01-12
| | | | | | | | | | Promote to a PaintNode attribute, drop color composite. TBR= Change-Id: Ia79d5f7e193a472d53ac4ff8beb7234d4dc26cef Reviewed-on: https://skia-review.googlesource.com/94280 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty,sksg] Initial gradient supportGravatar Florin Malita2018-01-12
| | | | | | | | TBR= Change-Id: I61e4d46ac14660f4c9ea757be2278e4098131a6b Reviewed-on: https://skia-review.googlesource.com/94121 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty,sksg] Initial matte layer supportGravatar Florin Malita2018-01-11
| | | | | | | | TBR= Change-Id: I5b689f5d7b0d147fa200cf5bffe476077085cb19 Reviewed-on: https://skia-review.googlesource.com/93300 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Adjust Draw node bounds for paintGravatar Florin Malita2018-01-11
| | | | | | | | | TBR= Change-Id: I88b3fe9c0ed4be2244b82d78995d6e27fa022296 Reviewed-on: https://skia-review.googlesource.com/93301 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Initial solid layer supportGravatar Florin Malita2018-01-09
| | | | | | | | TBR= Change-Id: Ib78ff693a1c79873248563502635aed93a90f963 Reviewed-on: https://skia-review.googlesource.com/92624 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* [skotty] Color opacity supportGravatar Florin Malita2018-01-09
| | | | | | | | TBR= Change-Id: I21dd6dda211d17c5de1b815fd43eac713a8e8ccc Reviewed-on: https://skia-review.googlesource.com/92840 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Pre-initialize animated propsGravatar Florin Malita2018-01-09
| | | | | | | | | | | | | Force an initial tick on animation initialization. This prevents inconsistent state flashing if the client starts rendering before the first tick. TBR= Change-Id: Iaec3146b4085c980e6501d6a65dd8f2421a2895f Reviewed-on: https://skia-review.googlesource.com/92740 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Animator scrubbingGravatar Florin Malita2018-01-09
| | | | | | | | | | Less boilerplate, less template bloat. TBR= Change-Id: Ie0ef4808f4bcd8af9b6cdf89732d214311bc6101 Reviewed-on: https://skia-review.googlesource.com/92701 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Pass animation frame/time as floatGravatar Florin Malita2018-01-09
| | | | | | | | | | No reason to punt through SkMSec, we just lose precision. TBR= Change-Id: I2f61e49658701a3b5a675f3dd44543fd9aa98708 Reviewed-on: https://skia-review.googlesource.com/92600 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Layer in/out supportGravatar Florin Malita2018-01-09
| | | | | | | | TBR= Change-Id: I79a9f5f15c051fc2d08bc2d6788ff059ec2d36f0 Reviewed-on: https://skia-review.googlesource.com/92460 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Animator cleanup passGravatar Florin Malita2018-01-09
| | | | | | | | TBR= Change-Id: I2849c1438a8b245f04a01977919b653f0a16492b Reviewed-on: https://skia-review.googlesource.com/92380 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Initial opacity supportGravatar Florin Malita2018-01-08
| | | | | | | | | TBR= Change-Id: I62581d3a7a83af5ccf373f0f4edf66a2d7f06f07 Reviewed-on: https://skia-review.googlesource.com/92223 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Tag animating paths as volatileGravatar Florin Malita2018-01-08
| | | | | | | Change-Id: Ib90634ef682dba49b99594b008a0615d04c61a49 Reviewed-on: https://skia-review.googlesource.com/92140 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* move largest apis into privateGravatar Mike Reed2018-01-08
| | | | | | | | | Related to https://skia-review.googlesource.com/c/skia/+/91860 Bug: skia: Change-Id: Ia8fd981b422bbab75541b078277d2e09e1fc9d41 Reviewed-on: https://skia-review.googlesource.com/91940 Reviewed-by: Brian Salomon <bsalomon@google.com>
* [skotty,sksg] Initial image supportGravatar Florin Malita2018-01-08
| | | | | | | | TBR= Change-Id: Ib3c918b1d746e4f190ae05708681f2d5519afdb2 Reviewed-on: https://skia-review.googlesource.com/91980 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] More flexible property parsingGravatar Florin Malita2018-01-08
| | | | | | | | | | | Older Json versions don't tag properties wih an "a" animation marker, but appear to instead rely on a try-and-see-what-sticks approach. TBR= Change-Id: I8a3a7e43576c590aa5ac168891574ceb4811ad49 Reviewed-on: https://skia-review.googlesource.com/91861 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* add skotty-dir slideGravatar Mike Reed2018-01-08
| | | | | | | | | | Shows a directory of skotties in a grid Bug: skia: Change-Id: I96b0700d8809c94a394cf517222123967afb20dc Reviewed-on: https://skia-review.googlesource.com/91407 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* [skotty,sksg] Initial trim path effectGravatar Florin Malita2018-01-07
| | | | | | | | TBR= Change-Id: I5b612c5aade23f727a3622daeff2534f68e6b66a Reviewed-on: https://skia-review.googlesource.com/91404 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] De-templatize the Animator apply functionGravatar Florin Malita2018-01-07
| | | | | | | | | | We can use a raw function pointer. TBR= Change-Id: I66d19ed563171dc314c862b35c3c98d462337f18 Reviewed-on: https://skia-review.googlesource.com/91461 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Cubic Bezier lerpGravatar Florin Malita2018-01-05
| | | | | | | | Change-Id: I7eda67fb89c1ef54f4bc1470d10ee5ab797a8b6e Reviewed-on: https://skia-review.googlesource.com/91445 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] More inval fixesGravatar Florin Malita2018-01-05
| | | | | | | | | | | | | | | | | | | | | | | | Backpedal on node/reval-time-determined damage: nodes cannot control the invalidation order, and shared descendants may be revalidated before a particular ancestor gets to query their state - thus making any decisions based on that invalid. Instead, apply damage suppression at invalidation time, based on node type/traits. Node types which don't generate direct damage are marked as such, and the invalidation logic bubbles damage past them, until it finds a valid damage receiver. Nodes which currently suppress damage: - PaintNode (and subclasses) - GeometryNode (and subclasses) - Matrix TBR= Change-Id: I843e683e64cb6253d8c26d8397c44d02a7d6026f Reviewed-on: https://skia-review.googlesource.com/91421 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Enable conditional-uninitialized flagGravatar Kevin Lubick2018-01-05
| | | | | | | | | Bug: skia:7462 Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD Change-Id: I1c0a09984bf28a5c620a89af56040f018bae6310 Reviewed-on: https://skia-review.googlesource.com/90941 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* [skotty, sksg] Add layer transform inheritance supportGravatar Florin Malita2018-01-05
| | | | | | | | | | | | | | | | | Split the matrix component of sksg::Transform into its own, free-floating, chainable node. Update the composite transform animator to target matrix nodes instead of transform nodes. Update the layer transform attachment logic to follow "parent" references, and build matrix inheritance chains on the fly. TBR= Change-Id: I017e5e462274c2cc210730e057b3ea2e7de5c0cb Reviewed-on: https://skia-review.googlesource.com/90803 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] More inval fiddlingGravatar Florin Malita2018-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | Node subclasses can now control whether their bounds (changes) contribute to damage. Tristate: * Default: The node bounds contribute to damage if the node itself was invalidated, observing hasSelfInval(). This is the default behavior. * ForceSelf: The node bounds contribute to damage, regardless of hasSelfInval(). Used for domain-boundary nodes (e.g. Draw), which gate blocked fragments (e.g. geometry, paint nodes). * BlockSelf: The node bounds do not contribute to damage, regardless of hasSelfInval(). Used for nodes which do not contribute damage directly (e.g. paints, geometry). TBR= Change-Id: I7c941c7ea12e14b008d846ec13108e66e34dbc73 Reviewed-on: https://skia-review.googlesource.com/91104 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Add cubic Bezier lerp stubsGravatar Florin Malita2018-01-04
| | | | | | | | | | ... and refactor some of the keyframe parsing. TBR= Change-Id: If45922eab36412908036401cee693202f5c3e281 Reviewed-on: https://skia-review.googlesource.com/91100 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Add polystar supportGravatar Florin Malita2018-01-04
| | | | | | | | | TBR= Change-Id: Ifcf6beb75eaf08a150785b72e322bb30ab84b779 Reviewed-on: https://skia-review.googlesource.com/90902 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty] Add ellipse supportGravatar Florin Malita2018-01-04
| | | | | | | | TBR= Change-Id: I48bbc6aabaab1c3ab5cc9fb19c87ad1f5606eb54 Reviewed-on: https://skia-review.googlesource.com/90900 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skotty,sksg] Add support for geometry mergeGravatar Florin Malita2018-01-04
| | | | | | | | TBR= Change-Id: Ia5edbfeae61779ead6031f6dd4e33794b3eefdc0 Reviewed-on: https://skia-review.googlesource.com/90382 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>