Go to file
Florin Malita b24f3b150c [skottie] Refactor keyframe encoding
For each Lottie keyframe, we currently store interpolation
*segments*:

 {
   t0, v0
   t1, v1
   cubic_mapper
 }

This is quite redundant:

 - kf(n).t1 == kf(n+1).t0 for all keyframes
 - kf(n).v1 == kf(n+1).v0 for all non-constant keyframes

Refactor to store single keyframe records:

  {
    t, v
    mapping
  }

To identify constant keyframes, since we no longer store
explicit hard stops, we now tag each record with a "mapping"
selector:

    0 -> constant keyframe
    1 -> linear keyframe
  > 1 -> cubic keyframe (adjusted cubic mapper index)


This reduces the storage size by 2/5, and yields overall cleaner
logic (as we're no longer back-filling info as we parse).

Also add a handful of unit tests to lock down limit semantics
(keyframe segments are left-inclusive/right-exclusive).

Change-Id: I3ab0e5568b83ab8536a7d326dbc07c4c455e978d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270450
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2020-02-13 18:54:32 +00:00
animations
bench Remove GrPrimitiveType from GrMesh 2020-02-12 17:28:25 +00:00
bin [infra] Fix bin/try 2020-01-14 12:05:56 +00:00
build/fuchsia format GN files 2020-02-10 16:32:46 +00:00
build_overrides Update Dawn backend to ToT. This is about 3 months of changes. 2019-10-15 22:26:38 +00:00
dm Replace DM:Error with DM::Result. 2020-02-12 19:05:46 +00:00
docker Revert "fiddle - Don't make warnings into errors." 2020-02-07 21:39:38 +00:00
docs/examples basic, untested BGR 1010102 and 101010x 2020-02-11 21:44:57 +00:00
example Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
experimental Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
fuzz Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
gm Update texel_subset_* GMs. 2020-02-13 18:50:05 +00:00
gn Multithread SkStrike test 2020-02-12 21:36:57 +00:00
include Skip degenerate contours in glyphs. 2020-02-13 16:22:42 +00:00
infra more MSAN dbg->rel cycling 2020-02-13 16:20:19 +00:00
modules [skottie] Refactor keyframe encoding 2020-02-13 18:54:32 +00:00
platform_tools Reland "GrGLMakeNativeInterface_{iOS,mac,win}: clean up" 2020-01-08 16:55:43 +00:00
resources Skip degenerate contours in glyphs. 2020-02-13 16:22:42 +00:00
samplecode Change SkSL main() from (float x, float y) to (float2 p) 2020-02-07 20:19:13 +00:00
site More tweaks to iOS build instructions. 2020-02-12 15:46:03 +00:00
specs [img-decode] Start on proposed new spec 2019-05-06 17:39:19 +00:00
src more sophisticated opacity in SkImageShader 2020-02-13 17:54:32 +00:00
tests Multithread SkStrike test 2020-02-12 21:36:57 +00:00
third_party let's try to fix nullptr + k 2020-01-31 19:24:21 +00:00
tools Add makeNotCurrent to TestContext 2020-02-13 18:40:52 +00:00
.clang-format restore .clang-format 2019-03-21 15:52:32 +00:00
.clang-tidy add google-build-namespaces to clang-tidy checks 2018-12-12 16:33:59 +00:00
.gitignore clean up some .gitignores 2019-05-15 19:55:45 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Optimize SkSL xor where one argument is constant 2019-12-20 14:50:46 +00:00
BUILD.gn remove more vtune references 2020-01-29 04:19:03 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll third_party/externals/angle2 e1ccac7ff9f0..74ab0bffb526 (10 commits) 2020-02-13 05:36:58 +00:00
go.mod Update Go Deps 2020-02-13 05:27:28 +00:00
go.sum Update Go Deps 2020-02-13 05:27:28 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py Fix error on PRESUBMIT PostUploadHook 2020-02-05 11:11:07 +00:00
public.bzl Reland: Initial checkin of GM verifier framework 2020-02-06 15:01:31 +00:00
README
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Allow decoding without color conversion - part 2 2020-02-07 19:24:33 +00:00
whitespace.txt Whitespace test 2019-05-18 13:05:29 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.