When all matrix properties are static/default, we simply discard the
matrix node. But we cannot do that in the presence of a parent matrix.
TBR=
Change-Id: I56c62216f18786249dea063690261bfae83fabec
Reviewed-on: https://skia-review.googlesource.com/141127
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
The adapter apply() method can get called before stops resolution, so
only log when some stops are present.
TBR=
Change-Id: I8e336e2cff781a0e64de31e6b63f3cf373b2daa0
Reviewed-on: https://skia-review.googlesource.com/140245
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Some tranform properties are not optional, but many of them are static
identity. Detect these cases and don't attach SG nodes for them.
Reduces the number of sksg::Matrix nodes by ~18%.
TBR=
Change-Id: Ia51c865d6928e8c48c73b30f6d45541caf334880
Reviewed-on: https://skia-review.googlesource.com/140186
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
We already have a clip optimization when there is only one opaque mask.
Extend to cover multiple opaque masks, using Merge scene nodes.
TBR=
Change-Id: I24b61f0c0d080b13438c6777e98a8e2fefd09fdd
Reviewed-on: https://skia-review.googlesource.com/140002
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
The fill type is not reflected in shape keyframes, but it is tracked in
the scene graph. Make sure we don't overwrite when interpolating.
TBR=
Change-Id: I281a61c3f4181ce34f772b36b83d0c7a64e265f6
Reviewed-on: https://skia-review.googlesource.com/139176
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
- plumb the framerate in AttachContext (needed for remapping)
- expand CompTimeMapper to handle time remapping (in addition to
time start, time stretch)
TBR=
Change-Id: If33bae7b4fe224f45d5a094a47899b9025827991
Reviewed-on: https://skia-review.googlesource.com/138990
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
We currently drop static split-position adapters without commiting the
value to the scene graph.
TBR=
Change-Id: Id5852da35345fa58ecaf6c752456ecb32e5b405a
Reviewed-on: https://skia-review.googlesource.com/136782
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Minor cleanup: BindProperty reports whether a non-default property was
applied or bound for animation -- use this mechanism to detect
fully-opaque masks.
TBR=
Change-Id: I3bd9429842621309d0c6bd966ef748917e498c66
Reviewed-on: https://skia-review.googlesource.com/136623
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
We currently apply start-time/stretch-time adjustments to the referenced
composition AND to the referencing layer local properties. That last
part is incorrect: the adjustment should only apply to the referenced
composition.
Introduce a specialized composition time mapper to handle t adjustments,
and push the logic down to AttachCompLayer (and out of the generic
AttachLayer).
TBR=
Change-Id: I0ddb86232010a8e7cdac6524aef2eea5823e306d
Reviewed-on: https://skia-review.googlesource.com/136166
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Some BM versions wrap point values as single or even multi-element arrays.
Parse<SkScalar> already handles the former case - we can extend that
behavior to also cover the latter and simplify Parse<SkPoint>.
TBR=
Change-Id: I2152928944f43dc03a5d8f0d65865ac43974fd7a
Reviewed-on: https://skia-review.googlesource.com/135800
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
It's a tiny, core-ish component -- might as well treat as such to
simplify dependencies.
Change-Id: I6f31ce2d151f9a629d88bfc7f15d64891d5150c0
Reviewed-on: https://skia-review.googlesource.com/135780
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Use std::swap instead. It does not appear that any external user
specializes SkTSwap, but some may still use it. This removes all use in
Skia so that SkTSwap can later be removed in a smaller CL. After that
the <utility> include can be removed from SkTypes.h.
Change-Id: If03d4ee07dbecda961aa9f0dc34d171ef5168753
Reviewed-on: https://skia-review.googlesource.com/135578
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This reverts commit 2a2f675926.
Reason for revert: this appears to be what is holding up the Chrome roll.
Original change's description:
> SkTypes: extract SkTo
>
> Change-Id: I8de790d5013db2105ad885fa2683303d7c250b09
> Reviewed-on: https://skia-review.googlesource.com/133620
> Reviewed-by: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,halcanary@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Iafd738aedfb679a23c061a51afe4b98a8d4cdfae
Reviewed-on: https://skia-review.googlesource.com/134504
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
The constness on null_provider causes:
"default initialization of an object of const type
'const NullResourceProvider' without a user-provided default constructor"
See https://stackoverflow.com/a/47368753 for more.
TL;DR; clang 3.8 and older is not happy
Bug: skia:
Change-Id: Icfc38680163c3bd4952c0e35551706cad8dbfee6
Reviewed-on: https://skia-review.googlesource.com/131521
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Most of the existing clients don't care about nested resources.
Change-Id: Ie7991dd25ebbd679b5b49e5624772c7e19e7ec79
Reviewed-on: https://skia-review.googlesource.com/131141
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Update the script to search for headers in both 'sources' and 'public'.
Change-Id: I195c6e3720f3d3d99dea04628388821a58fa791b
Reviewed-on: https://skia-review.googlesource.com/130823
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>