557fbbe05b
TBR=reed@google.com (No change to the public API, but changed a header file) SkWebpCodec: - Implement onGetFrameCount, onGetFrameInfo, and onGetRepetitionCount - Respect the alpha reported by libwebp. Although the spec states that it is only a hint, the libwebp encoder uses it properly. Respecting allows us to draw opaque images faster and decode them to 565. This also matches other SkCodecs (and Chromium). - onGetPixels: - Decode the frame requested, recursively decoding required frame if necessary - When blending with a prior frame, use SkRasterPipeline SkCodec: - Move check for negative index to getFrameInfo - Reset the colorXform if one is not needed SkCodecAnimation: - Add new blend enum, for WebP's (and APNG's) non-blending option SkFrameHolder: - New base classes for frames and the owner of the frames, allowing code sharing between SkWebpCodec and SkGifCodec (particularly for determining whether a frame has alpha and what frame it depends on) - When moving items from SkGIFFrameContext, use Skia conventions (i.e. int instead of unsigned) - Rename "delay time" to "duration", to match e.g. SkFrameInfo:: fDuration SkGifImageReader: - Move pieces to SkFrameHolder, and adapt to changes made in the process - Make setAlphaAndRequiredFrame (now on the base class SkFrameHolder) more general to support webp, and add support for frames that do not blend - Change SkGIFFrameContext from a struct to a class, to match how we use the distinction elsewhere (i.e. struct is a small object with public fields) - Rework hasTransparentPixel (now hasTransparency, since it returns true in some cases where there is not a transparent pixel) to better fit with the modified setAlphaAndRequiredFrame. Also be more consistent when there is no transparent pixel but no color map. - Simplify an if condition that was previously simplified in |
||
---|---|---|
.. | ||
android_fonts | ||
empty_images | ||
fonts | ||
icc_profiles | ||
invalid_images | ||
1x1.png | ||
1x3.png | ||
1x16.png | ||
2x2.png | ||
3x1.png | ||
3x3.png | ||
16x1.png | ||
alphabetAnim.gif | ||
arrow.png | ||
baby_tux.png | ||
baby_tux.webp | ||
blendBG.webp | ||
box.gif | ||
brickwork_normal-map.jpg | ||
brickwork-texture.jpg | ||
CMYK.jpg | ||
color_wheel_with_profile.png | ||
color_wheel.gif | ||
color_wheel.ico | ||
color_wheel.jpg | ||
color_wheel.png | ||
color_wheel.webp | ||
colorTables.gif | ||
cropped_mandrill.jpg | ||
dng_with_preview.dng | ||
exif-orientation-2-ur.jpg | ||
flutter_logo.jpg | ||
gamut.png | ||
google_chrome.ico | ||
grayscale.jpg | ||
half-transparent-white-pixel.png | ||
half-transparent-white-pixel.webp | ||
icc-v2-gbr.jpg | ||
iconstrip.png | ||
index8.png | ||
mandrill_16.png | ||
mandrill_32.png | ||
mandrill_64.png | ||
mandrill_128.png | ||
mandrill_256.png | ||
mandrill_512_q075.jpg | ||
mandrill_512.png | ||
mandrill_h1v1.jpg | ||
mandrill_h2v1.jpg | ||
mandrill.wbmp | ||
nov-talk-sequence.txt | ||
pdf_command_stream.txt | ||
plane_interlaced.png | ||
plane.png | ||
rainbow-gradient.png | ||
randPixels.bmp | ||
randPixels.gif | ||
randPixels.jpg | ||
randPixels.png | ||
randPixels.webp | ||
randPixelsAnim2.gif | ||
randPixelsAnim.gif | ||
randPixelsOffset.gif | ||
README | ||
rle.bmp | ||
sample_1mp_rotated.dng | ||
sample_1mp.dng | ||
slides_content2.lua | ||
slides_content.lua | ||
slides_transitions.lua | ||
slides_utils.lua | ||
slides.lua | ||
test640x479.gif | ||
test.lua | ||
webp-animated.webp | ||
webp-color-profile-crash.webp | ||
webp-color-profile-lossless.webp | ||
webp-color-profile-lossy-alpha.webp | ||
webp-color-profile-lossy.webp | ||
yellow_rose.png | ||
yellow_rose.webp |
The resources directory includes some third party content used by Skia. Licenses for that code are included in this file. Openclipart Openclipart uses the Creative Commons Zero 1.0 Public Domain License every time an artist uploads a piece of clipart to Openclipart to make it clear the artist is releasing the creative work for anyone to use for any reason, even commercially. This act of "sharing" is the foundation Openclipart is based upon. More details on the license can be found at https://creativecommons.org/publicdomain/zero/1.0/.