aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
Commit message (Collapse)AuthorAge
* [skottie] Guard against asset cyclesGravatar Florin Malita2018-05-11
| | | | | | | | | | Track assets being attached, and break cycles. Bug: oss-fuzz:8220 Change-Id: I146cf35eba8cfea487c00544fe82f89c3a859803 Reviewed-on: https://skia-review.googlesource.com/127381 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Clean up AttachLayerContextGravatar Florin Malita2018-05-10
| | | | | | | | | | | Avoid double "ind" lookups, avoid repeated AttachParentLayerMatrix calls, hide private functions. TBR= Change-Id: I78f11593ffe241de3cdfabf7b3a88e8f4e62aa0c Reviewed-on: https://skia-review.googlesource.com/127327 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* [skottie] Allow divide-by-zero in PolyStarAdapter::applyGravatar Florin Malita2018-05-10
| | | | | | | | | | This is safe because count == 0 will produce an empty path. Bug: oss-fuzz:8213 Change-Id: Ie3b546c614ba22eef1ba16a182016c2edd0bd641 Reviewed-on: https://skia-review.googlesource.com/127323 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* allow divide by zeroGravatar Mike Reed2018-05-10
| | | | | | | | Bug: oss-fuzz:8214 Change-Id: Ieb2e61b23f88e399df3bfb284742d4604b7d27fa Reviewed-on: https://skia-review.googlesource.com/127322 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* [skottie] Simplify AttachOpacityGravatar Florin Malita2018-05-09
| | | | | | | | | | | BindProperty can already check for no-op static props, so let's use it. TBR= Change-Id: If1c327871702b57ad9e6db9a8b112c6775cb7f53 Reviewed-on: https://skia-review.googlesource.com/127140 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Json cleanup passGravatar Florin Malita2018-05-09
| | | | | | | | | | | | | | | Assorted Json tweaks: - more defensive internal object access - drop unneeded isObject checks - drop unneeded namespace - restrict the iterator to arrays TBR= Change-Id: I02f1c5d84c429cf5206bc2a0a7843097b92bac94 Reviewed-on: https://skia-review.googlesource.com/126930 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Null value crash in json::ValueRef::toString()Gravatar Florin Malita2018-05-09
| | | | | | | | Bug: skia:7935 Change-Id: Ibe99ccbf5b8dcf889a71acf1fb52063001fd7612 Reviewed-on: https://skia-review.googlesource.com/126923 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] More defensive array indexingGravatar Florin Malita2018-05-07
| | | | | | | | | | | Rapidjson's array [] operator asserts the index is valid (instead of returning a null value when out-of-range) -> we must check. Bug: skia:7918 Change-Id: Ice4a6e6670a824da0d423da4a6f92414cd0dc252 Reviewed-on: https://skia-review.googlesource.com/126441 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Switch to RapidJSONGravatar Florin Malita2018-05-04
| | | | | | | | | | | | | | | | | | | | | | - pull latest RapidJSON under third_party/externals/rapidjson (note: and older RS version is already pulled as part of angle2, and it is also checked in G3) - add a thin Json porting layer (SkottieJson) to isolate RS idiosyncrasies - convert Skottie to use the new helpers - parse the DOM in-place (based on local experiments this is the fastest method) Ta-da: Skottie now parses JSON ~10x faster! Change-Id: Ida9099638f88ed025fee83055c8cd8680ee27176 Reviewed-on: https://skia-review.googlesource.com/125744 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* [skottie] Add support for round-corners geometry effectsGravatar Florin Malita2018-05-01
| | | | | | | | TBR= Change-Id: I5505561df28d5953526662d60fe2300cb112bc37 Reviewed-on: https://skia-review.googlesource.com/124769 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Power-reduce paths (cubicTo -> lineTo)Gravatar Florin Malita2018-05-01
| | | | | | | | | | | | | | | | | For straight lines, Lottie exports control points conincident with the vertices. We can detect this case and emit more efficient lineTo's. One wrinkle: we can only apply this power-reduction post-interpolation (otherwise the path verbs and point count would not be guaranteed to match). Hence we store explicit shape data and defer the SkPath conversion. TBR= Change-Id: I7818be464eabee6096d2078440843243a55c6e98 Reviewed-on: https://skia-review.googlesource.com/124800 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Show load stats in SkottieSlideGravatar Florin Malita2018-04-30
| | | | | | | | TBR= Change-Id: Ie3a1036d9a90cb16d2795134c453759aeff06e3c Reviewed-on: https://skia-review.googlesource.com/124461 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Apply opaque masks as clipsGravatar Florin Malita2018-04-27
| | | | | | | | | | | When the mask stack contains exactly one opaque mask path, we can apply as a clip. TBR= Change-Id: Iadff7534bfa4925557bfbddd59529113f4958d0d Reviewed-on: https://skia-review.googlesource.com/124000 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Add support for inverse mask pathsGravatar Florin Malita2018-04-26
| | | | | | | | TBR= Change-Id: I442033b2e82777c90ee497d8a5b2310af1d2e631 Reviewed-on: https://skia-review.googlesource.com/123840 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix many return-std-move-in-c++11 warningsGravatar Kevin Lubick2018-04-16
| | | | | | | | | Change-Id: Ib0042cf412fe3c5fa600b7ae644d16740457535e Reviewed-on: https://skia-review.googlesource.com/121354 Commit-Queue: Kevin Lubick <kjlubick@google.com> Commit-Queue: Mike Klein <mtklein@google.com> Auto-Submit: Kevin Lubick <kjlubick@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* [skottie] Harden json string parsingGravatar Florin Malita2018-04-13
| | | | | | | | TBR= Change-Id: I538d1a86c1adc4a00deffc254c8bfde8d5d6794b Reviewed-on: https://skia-review.googlesource.com/121324 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* experimental/tools: minor code cleanupGravatar Hal Canary2018-04-05
| | | | | | | Change-Id: I4d84dfed284aea9746808bf8a22f45e5bd9c519f Reviewed-on: https://skia-review.googlesource.com/118597 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* [skottie] Clean up SkottiePropertiesGravatar Florin Malita2018-03-23
| | | | | | | | | | | | Split into Adapter and Value CUs. No real changes, just shuffling things around. TBR= Change-Id: I50eaeb3950f4c59e7d7027955b3f49ca2a346e59 Reviewed-on: https://skia-review.googlesource.com/116186 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Simplify TrimEffectGravatar Florin Malita2018-03-22
| | | | | | | | | | | | Move the Lottie-specific bits to Skottie and keep TrimEffect as a thin SkTrimPathEffect wrapper. TBR= Change-Id: Iecc6624d01ba61eb96a2056ef8e9e24e731f8979 Reviewed-on: https://skia-review.googlesource.com/115923 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix go syntax for Debian compileGravatar Heather Miller2018-03-19
| | | | | | | | | Bug: skia:7688 Change-Id: I5b4f9b3aba7d696d09c1c2f0634c8c866e5ba99d Reviewed-on: https://skia-review.googlesource.com/115077 Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Stephan Altmueller <stephana@google.com> Commit-Queue: Heather Miller <hcm@google.com>
* [sksg] Use SkTrimPathEffect for path trimmingGravatar Florin Malita2018-03-13
| | | | | | | | | | Refactor TrimEffect using SkTrimPathEffect instead of SkDashPathEffect. TBR= Change-Id: I1415b30b58db28cb74b70fb176307634ab0774e8 Reviewed-on: https://skia-review.googlesource.com/114264 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* scripts to generate [m]skps, documentationGravatar Hal Canary2018-03-13
| | | | | | | | NoTry: true Change-Id: Ibd5244fa7099cbbe18e5f68e5a28abb52e03127d Reviewed-on: https://skia-review.googlesource.com/114086 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* [skottie] Reduce parser verbosityGravatar Florin Malita2018-03-07
| | | | | | | | | TBR= Change-Id: I2fafa08cd86533526c829dcf3104577ebec6098f Reviewed-on: https://skia-review.googlesource.com/112940 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Cache transformed TrimEffect geometryGravatar Florin Malita2018-03-07
| | | | | | | | | | | Apply the effect at revalidation time, and cache the result. TBR= Change-Id: I166fc0e4e2869bea51e5e45e5a2a50df2f034691 Reviewed-on: https://skia-review.googlesource.com/112801 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Inverted matte supportGravatar Florin Malita2018-03-05
| | | | | | | | | TBR= Change-Id: I761d80d27d9a737710123a183af37135c270b8a7 Reviewed-on: https://skia-review.googlesource.com/112162 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Nested animation supportGravatar Florin Malita2018-02-23
| | | | | | | | | | | | | | | | Extend composition layers to support referencing external .json animations ("$"<PATH> syntax). This is a custom extension (not supported in BM/Lottie). Also make skottie::Animation ref-counted, to facilitate sharing. TBR= Change-Id: I062d031e5868d759f3930dea9b261f9b3ec81684 Reviewed-on: https://skia-review.googlesource.com/109806 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Add 'plane' geometry nodeGravatar Florin Malita2018-02-20
| | | | | | | | | | | SG geometry corresponding to SkCanvas::drawPaint(). TBR= Change-Id: I3b368adda187fb92f524756496a3694c03a3113d Reviewed-on: https://skia-review.googlesource.com/108562 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Guard ignored SVG attribute logging with SK_VERBOSE_SVG_PARSINGGravatar Florin Malita2018-02-16
| | | | | | | Change-Id: I01bb8c70dfcd3180aaf620f987b99ae0286cc48c Reviewed-on: https://skia-review.googlesource.com/108160 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* report ignore attr once onlyGravatar Cary Clark2018-02-16
| | | | | | | | | | | | | | bots like this one https://chromium-swarm.appspot.com/task?id=3bb84dda02fc0e10 fill its log with this debug message, so just write it once R=fmalita@chromium.org Bug: skia: Change-Id: Ia82d89aa23c3a5984080f5d9efdc03ff18b6515e Reviewed-on: https://skia-review.googlesource.com/108100 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Delete GLFWTestGravatar Jim Van Verth2018-02-08
| | | | | | | Change-Id: Ia303259e0e157d6066428183002748752fad3a7c Reviewed-on: https://skia-review.googlesource.com/105606 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* [skottie] FMA-friendlier lerpGravatar Florin Malita2018-02-05
| | | | | | | | | TBR= Change-Id: Id43e463da99bb0478c48ba48a909cead817e4498 Reviewed-on: https://skia-review.googlesource.com/103600 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Split-position supportGravatar Florin Malita2018-02-01
| | | | | | | | | TBR= Change-Id: I82433bc9a73f89956c2b25146e1521412d125945 Reviewed-on: https://skia-review.googlesource.com/102622 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Clamp SkCubicMap results to [0,1]Gravatar Florin Malita2018-01-31
| | | | | | | | | | | | | | Looks like SkCubicMap can produce slightly out-of-range values. That's prolly some unimportant precision artifact, but since we're asserting t is in [0,1] down the line it'd be nice to not crash in debug. TBR= Change-Id: I048b691d1c0f0977556d5b25893a6dab2b9986cc Reviewed-on: https://skia-review.googlesource.com/102480 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [sksg] Initial text supportGravatar Florin Malita2018-01-31
| | | | | | | | | | | Use the new node type for SkottieSlide2 labels. TBR= Change-Id: Icd6a4faf1c281bd83a2331c0072d1a6ed71acc09 Reviewed-on: https://skia-review.googlesource.com/102441 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Anti-alias masksGravatar Florin Malita2018-01-30
| | | | | | | | | TBR= Change-Id: I16eca80b515fde8ad87a79c01ffd0ea2b3e31259 Reviewed-on: https://skia-review.googlesource.com/101740 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Layer clip supportGravatar Florin Malita2018-01-29
| | | | | | | | | TBR= Change-Id: Ibf65efc69031f8f6e19f4f28cccab29c357e704d Reviewed-on: https://skia-review.googlesource.com/101540 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Time start, time stretchGravatar Florin Malita2018-01-29
| | | | | | | | | | | | Pre-compositions (only) can have their timelines adjusted via bias and scale. TBR= Change-Id: I519fa1d7cf210f7f152dcabcbe004119a2cf08d9 Reviewed-on: https://skia-review.googlesource.com/101460 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Hierarchical animatorsGravatar Florin Malita2018-01-29
| | | | | | | | | | | | | | Instead of a flat animator space, introduce animator groups. This allows us to encapsulate layer animators and only dispatch ticks when their owning layer is active. TBR= Change-Id: I1fc8a55abf68a712b71969bb1a11275dbe54c236 Reviewed-on: https://skia-review.googlesource.com/101201 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "[skottie] Cache attached assets"Gravatar Florin Malita2018-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ba3ed69a4ee4125750cd56ca9141c2b78fd65d22. Reason for revert: Looks like asset references can manipulate the timeline (preComps), so we do need distinct instances for each ref. May revisit in the future for cases where all instances share the same timeline. Original change's description: > [skottie] Cache attached assets > > 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> TBR=fmalita@chromium.org Change-Id: I3e537ace9dfbf69a11f421992db033a0f8ad2aa9 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/101220 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [skottie] Reduce parser verbosityGravatar Florin Malita2018-01-29
| | | | | | | | | TBR= Change-Id: I9a949cfb9e7625b93988d9fc251c8696ae99007a Reviewed-on: https://skia-review.googlesource.com/101080 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [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>