Correct GIF frame dependencies and track alpha
Add SkCodec::FrameInfo::fAlphaType. The SkImageInfo for the SkCodec
specifies the SkAlphaType for the first frame, but the opacity can vary
from frame to frame.
When determining the required frame, also compute whether a frame has
alpha. Update how we determine the required frame, which had bugs.
(Update a test that had an incorrect required frame as a result.)
Add new test images covering cases that have been fixed:
It has the following frames:
B (keep) (subset)
C (disposePrevious) (covers B)
D (any) (does *not* cover B)
B and C depend on A, but D depends on B, since after disposing C, B
should be visible again.
Includes frames which fill the image size, with different disposal
methods and transparencies.
Commit-Queue: Leon Scroggins <email@example.com>
Reviewed-by: Mike Reed <firstname.lastname@example.org>
Reviewed-by: Matt Sarett <email@example.com>
2 files changed