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

Side by Side 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: simplification Created 7 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
3 * Copyright (C) 2008-2009 Torch Mobile, Inc. 3 * Copyright (C) 2008-2009 Torch Mobile, Inc.
4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. 4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
5 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) 5 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 } 187 }
188 188
189 int height() const 189 int height() const
190 { 190 {
191 return m_bitmap->bitmap().height(); 191 return m_bitmap->bitmap().height();
192 } 192 }
193 193
194 RefPtr<NativeImageSkia> m_bitmap; 194 RefPtr<NativeImageSkia> m_bitmap;
195 SkBitmap::Allocator* m_allocator; 195 SkBitmap::Allocator* m_allocator;
196 bool m_hasAlpha; 196 bool m_hasAlpha;
197 IntRect m_originalFrameRect; // This will always just be the entire 197 // This will always just be the entire buffer except for GIF or WebP
198 // buffer except for GIF frames whose 198 // frames whose original rect was smaller than the overall image size.
199 // original rect was smaller than the 199 IntRect m_originalFrameRect;
200 // overall image size.
201 FrameStatus m_status; 200 FrameStatus m_status;
202 unsigned m_duration; 201 unsigned m_duration;
203 FrameDisposalMethod m_disposalMethod; 202 FrameDisposalMethod m_disposalMethod;
204 bool m_premultiplyAlpha; 203 bool m_premultiplyAlpha;
205 }; 204 };
206 205
207 // ImageDecoder is a base for all format-specific decoders 206 // ImageDecoder is a base for all format-specific decoders
208 // (e.g. JPEGImageDecoder). This base manages the ImageFrame cache. 207 // (e.g. JPEGImageDecoder). This base manages the ImageFrame cache.
209 // 208 //
210 // ENABLE(IMAGE_DECODER_DOWN_SAMPLING) allows image decoders to downsample 209 // ENABLE(IMAGE_DECODER_DOWN_SAMPLING) allows image decoders to downsample
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 250
252 virtual IntSize size() const { return m_size; } 251 virtual IntSize size() const { return m_size; }
253 252
254 IntSize scaledSize() const 253 IntSize scaledSize() const
255 { 254 {
256 return m_scaled ? IntSize(m_scaledColumns.size(), m_scaledRows.size( )) : size(); 255 return m_scaled ? IntSize(m_scaledColumns.size(), m_scaledRows.size( )) : size();
257 } 256 }
258 257
259 // This will only differ from size() for ICO (where each frame is a 258 // This will only differ from size() for ICO (where each frame is a
260 // different icon) or other formats where different frames are different 259 // different icon) or other formats where different frames are different
261 // sizes. This does NOT differ from size() for GIF, since decoding GIFs 260 // sizes. This does NOT differ from size() for GIF or WebP, since
262 // composites any smaller frames against previous frames to create full- 261 // decoding GIF or WebP composites any smaller frames against previous
263 // size frames. 262 // frames to create full-size frames.
264 virtual IntSize frameSizeAtIndex(size_t) const 263 virtual IntSize frameSizeAtIndex(size_t) const
265 { 264 {
266 return size(); 265 return size();
267 } 266 }
268 267
269 // Returns whether the size is legal (i.e. not going to result in 268 // Returns whether the size is legal (i.e. not going to result in
270 // overflow elsewhere). If not, marks decoding as failed. 269 // overflow elsewhere). If not, marks decoding as failed.
271 virtual bool setSize(unsigned width, unsigned height) 270 virtual bool setSize(unsigned width, unsigned height)
272 { 271 {
273 if (isOverSize(width, height)) 272 if (isOverSize(width, height))
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 // clean up any local data. 364 // clean up any local data.
366 virtual bool setFailed() 365 virtual bool setFailed()
367 { 366 {
368 m_failed = true; 367 m_failed = true;
369 return false; 368 return false;
370 } 369 }
371 370
372 bool failed() const { return m_failed; } 371 bool failed() const { return m_failed; }
373 372
374 // Clears decoded pixel data from before the provided frame unless that 373 // Clears decoded pixel data from before the provided frame unless that
375 // data may be needed to decode future frames (e.g. due to GIF frame 374 // data may be needed to decode future frames (e.g. due to GIF/WebP
376 // compositing). 375 // frame compositing).
377 virtual void clearFrameBufferCache(size_t) { } 376 virtual void clearFrameBufferCache(size_t) { }
378 377
379 #if ENABLE(IMAGE_DECODER_DOWN_SAMPLING) 378 #if ENABLE(IMAGE_DECODER_DOWN_SAMPLING)
380 void setMaxNumPixels(int m) { m_maxNumPixels = m; } 379 void setMaxNumPixels(int m) { m_maxNumPixels = m; }
381 #endif 380 #endif
382 381
383 // If the image has a cursor hot-spot, stores it in the argument 382 // If the image has a cursor hot-spot, stores it in the argument
384 // and returns true. Otherwise returns false. 383 // and returns true. Otherwise returns false.
385 virtual bool hotSpot(IntPoint&) const { return false; } 384 virtual bool hotSpot(IntPoint&) const { return false; }
386 385
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 IntSize m_size; 423 IntSize m_size;
425 bool m_sizeAvailable; 424 bool m_sizeAvailable;
426 int m_maxNumPixels; 425 int m_maxNumPixels;
427 bool m_isAllDataReceived; 426 bool m_isAllDataReceived;
428 bool m_failed; 427 bool m_failed;
429 }; 428 };
430 429
431 } // namespace WebCore 430 } // namespace WebCore
432 431
433 #endif 432 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698