Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1349)

Unified Diff: Source/core/platform/image-decoders/ImageDecoder.h

Issue 13980003: Add animation support for WebP images (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Create and use zeroFillPixelData() Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/platform/image-decoders/ImageDecoder.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/platform/image-decoders/ImageDecoder.h
diff --git a/Source/core/platform/image-decoders/ImageDecoder.h b/Source/core/platform/image-decoders/ImageDecoder.h
index 24555cd522e6c34b7ecfcc9f9deef57f112f2393..47d51533eb2adea426cf749ada57bf50b3ed842a 100644
--- a/Source/core/platform/image-decoders/ImageDecoder.h
+++ b/Source/core/platform/image-decoders/ImageDecoder.h
@@ -215,6 +215,8 @@ namespace WebCore {
*dest = SkPackARGB32NoCheck(a, r, g, b);
}
+ void zeroFillFrameRect(const IntRect&);
+
private:
int width() const
{
@@ -229,10 +231,9 @@ namespace WebCore {
RefPtr<NativeImageSkia> m_bitmap;
SkBitmap::Allocator* m_allocator;
bool m_hasAlpha;
- IntRect m_originalFrameRect; // This will always just be the entire
- // buffer except for GIF frames whose
- // original rect was smaller than the
- // overall image size.
+ // This will always just be the entire buffer except for GIF or WebP
+ // frames whose original rect was smaller than the overall image size.
+ IntRect m_originalFrameRect;
FrameStatus m_status;
unsigned m_duration;
FrameDisposalMethod m_disposalMethod;
@@ -291,9 +292,9 @@ namespace WebCore {
// This will only differ from size() for ICO (where each frame is a
// different icon) or other formats where different frames are different
- // sizes. This does NOT differ from size() for GIF, since decoding GIFs
- // composites any smaller frames against previous frames to create full-
- // size frames.
+ // sizes. This does NOT differ from size() for GIF or WebP, since
+ // decoding GIF or WebP composites any smaller frames against previous
+ // frames to create full-size frames.
virtual IntSize frameSizeAtIndex(size_t) const
{
return size();
@@ -404,13 +405,11 @@ namespace WebCore {
bool failed() const { return m_failed; }
- // Clears decoded pixel data from all frames except the provided frame,
- // unless that frame has status FrameEmpty, in which case we instead
- // preserve the most recent frame whose data is required in order to
- // decode this frame. Callers may pass WTF::notFound to clear all frames.
- //
+ // Clears decoded pixel data from all frames except the provided frame.
+ // Callers may pass WTF::notFound to clear all frames.
+ // Note: If |m_frameBufferCache| contains only one frame, it won't be cleared.
// Returns the number of bytes of frame data actually cleared.
- size_t clearCacheExceptFrame(size_t);
+ virtual size_t clearCacheExceptFrame(size_t);
// If the image has a cursor hot-spot, stores it in the argument
// and returns true. Otherwise returns false.
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/platform/image-decoders/ImageDecoder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698