Go to file
Leon Scroggins III b0b625b796 GIF: Better check for frame dependency
If a frame does not have a valid transparent index and it covers the
prior frame, it does not really depend on that frame. Instead, it
depends on the frame that the prior frame depends on.

Determine this once we have parsed the local color map (if any), so a
transparent index out of range of the color map is not considered
valid.

Share code that determines whether a frame has a transparent pixel.

Add a test that we compute the dependencies correctly. randPixelsAnim.gif
has 13 frames. After the first, the frames cover all combinations of

- Whether the prior frame was keep, restoreBG or restoreToPrevious
- Whether the new frame covers the prior frame
- Whether the new frame has a transparent pixel

(It only does so when using a global color table. It may make sense to
expand the test to also cover using local color tables.)

The test caught a bug where we incorrectly reused an existing
SkColorTable for a different frame. Fix that bug by keeping track of
the transparent index associated with the current SkColorTable.

Change-Id: I3cf6be7f612990fa7a00d9e74d116d31bd227526
Reviewed-on: https://skia-review.googlesource.com/6402
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-01-03 19:07:41 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench clean up non-ASCII comments 2017-01-03 16:29:37 +00:00
bin tools and docs: clean up gyp-specific things 2016-12-09 21:15:27 +00:00
debugger SkEncodeImage: no more link-time registration 2016-11-30 22:48:56 +00:00
dm Misc batch->op cleanup Part 1 of 2 2016-12-21 16:45:40 +00:00
example bench, samples, etc: s/SkAutoTUnref/sk_sp/ 2016-11-07 15:17:32 +00:00
experimental Plumb dst color space in many places, rather than "mode" 2016-12-09 20:31:23 +00:00
fuzz re-land of added sk_FragCoord support to skslc 2016-12-13 14:28:53 +00:00
gm clean up non-ASCII comments 2017-01-03 16:29:37 +00:00
gn Improve color space support in SkImage::readPixels() 2016-12-22 17:47:08 +00:00
gyp Misc batch->op cleanup Part 1 of 2 2016-12-21 16:45:40 +00:00
include Make C API compatible with -Wstrict-prototypes 2017-01-03 17:38:35 +00:00
infra Increase "large" image size in DeferredTextureImage. 2017-01-03 17:07:21 +00:00
platform_tools Another step to using gn_to_bp.py 2016-12-15 16:19:48 +00:00
resources GIF: Better check for frame dependency 2017-01-03 19:07:41 +00:00
samplecode Misc batch->op cleanup Part 1 of 2 2016-12-21 16:45:40 +00:00
site Fix typos in the sheriffing document 2016-12-29 15:38:01 +00:00
src Force classic locale when parsing floats in skslc. 2017-01-03 18:58:45 +00:00
tests GIF: Better check for frame dependency 2017-01-03 19:07:41 +00:00
third_party GIF: Better check for frame dependency 2017-01-03 19:07:41 +00:00
tools Remove ref counting from GrOp. 2017-01-03 15:22:16 +00:00
.clang-format Change ConstructorInitializerWidth in .clang-format from 4 to 8 2016-12-14 15:00:48 +00:00
.gitignore Remove skia.conf from .gitignore 2016-10-26 14:50:09 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Fix typo in GrGLCaps 2016-11-18 23:20:51 +00:00
BUILD.gn BUILD.gn: skia_enable_pdf 2017-01-03 14:25:12 +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 Update libwebp to v0.5.2-rc2 2016-12-20 15:27:27 +00:00
Doxyfile Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
gyp_skia Make Win runtime DLLs writeable before overwriting 2016-03-18 08:33:38 -07:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Do not use post upload hooks for 'GOLD_TRYBOT_URL' 2016-11-23 18:34:23 +00:00
public.bzl switch to _deprecated suffix for exotic SkClipOps 2016-12-20 13:46:58 +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
skia.gyp Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
whitespace.txt Test CL 2016-12-22 01:51:30 +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.