Go to file
Leon Scroggins III 469d67e7d9 Expose more info in SkCodec::FrameInfo
Bug: b/160984428

Add more fields to SkCodec::FrameInfo, which describes the properties of
an individual frame in an animated image. This allows a client that
wishes to seek to determine frame dependencies so that they can decode
an arbitrary frame, which in turn will allow SkCodec to remove
SkCodec::FrameInfo::fRequiredFrame. Currently, SkCodec seeks through the
stream to determine frame dependencies, but this is unnecessary work
(and storage) for a client that does not want to seek.

These fields also support the proposed APIs in go/animated-ndk.

Move SkCodecAnimation::Blend from SkCodecAnimationPriv (and delete that
file) into SkCodecAnimation.h. Rename its values to be more clear.

Merge common code for populating SkCodec::FrameInfo.

Add a test for a GIF with offsets outside the range of the image. Note
that libwebp rejects such an image.

Update libgifcodec.

Change-Id: Ie27e0531e7d62eaae153eccb3105bf2121b5aac4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/339857
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Nigel Tao <nigeltao@google.com>
2020-12-02 22:37:20 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench hoist the common matrix code for filling vertices 2020-12-02 17:36:06 +00:00
bin bin/try: automatically set 'git cl issue' when not found 2020-06-25 17:44:01 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Port to ANGLE's GN files 2020-09-11 15:22:34 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org [canvaskit] Remove Sk from nearly all function/type names. 2020-10-07 21:01:32 +00:00
dm Reland "SkAndroidCodec: Support decoding all frames" 2020-11-16 16:55:48 +00:00
docker [canvaskit,pathkit] Update to emsdk 2.0 2020-08-20 14:55:50 +00:00
docs/examples hide legacy scalePixels and makeShader 2020-11-24 00:41:33 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental Add supporting function for finding image use in layers 2020-11-24 17:04:56 +00:00
fuzz Move GrShaderCaps from Program::Settings to Compiler 2020-11-04 19:38:33 +00:00
gm GPU clear values: just 4 floats 2020-12-02 22:04:08 +00:00
gn GPU clear values: just 4 floats 2020-12-02 22:04:08 +00:00
include Expose more info in SkCodec::FrameInfo 2020-12-02 22:37:20 +00:00
infra Update SKP version 2020-11-29 06:32:41 +00:00
modules default to using new/delete for GrOp 2020-12-02 15:15:26 +00:00
platform_tools move SkottieAnimation out of SkottieRunner to top level 2020-11-24 19:37:46 +00:00
resources Expose more info in SkCodec::FrameInfo 2020-12-02 22:37:20 +00:00
samplecode Remove GrRenderTargetContextPriv and GrSurfaceContextPriv 2020-11-30 20:13:25 +00:00
site Update docs for iOS deployment 2020-11-19 14:50:28 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src Expose more info in SkCodec::FrameInfo 2020-12-02 22:37:20 +00:00
tests Expose more info in SkCodec::FrameInfo 2020-12-02 22:37:20 +00:00
third_party [canvaskit] Add support for woff2 fonts 2020-11-10 15:07:26 +00:00
tools Remove GrRenderTargetContextPriv and GrSurfaceContextPriv 2020-11-30 20:13:25 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore bazel baby steps 2020-09-14 15:18:32 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Fix issues with latest GN 2020-11-07 13:55:45 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn Reland "Add ByteCode output to skslc" 2020-12-02 15:19:46 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Expose more info in SkCodec::FrameInfo 2020-12-02 22:37:20 +00:00
go.mod update buildbot repo 2020-11-25 17:07:32 +00:00
go.sum update buildbot repo 2020-11-25 17:07:32 +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 Generate SkSL golden output files from test inputs during the build. 2020-09-14 14:54:12 +00:00
public.bzl Always enable SkSL's ByteCodeGenerator, disable interpreter in Google3 2020-11-18 21:30:45 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Expose more info in SkCodec::FrameInfo 2020-12-02 22:37:20 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +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.