| OLD | NEW |
| 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) Research In Motion Limited 2009-2010. All rights reserved. | 3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 } | 200 } |
| 201 | 201 |
| 202 int height() const | 202 int height() const |
| 203 { | 203 { |
| 204 return m_bitmap->bitmap().height(); | 204 return m_bitmap->bitmap().height(); |
| 205 } | 205 } |
| 206 | 206 |
| 207 RefPtr<NativeImageSkia> m_bitmap; | 207 RefPtr<NativeImageSkia> m_bitmap; |
| 208 SkBitmap::Allocator* m_allocator; | 208 SkBitmap::Allocator* m_allocator; |
| 209 bool m_hasAlpha; | 209 bool m_hasAlpha; |
| 210 IntRect m_originalFrameRect; // This will always just be the entire | 210 // This will always just be the entire buffer except for GIF or WebP |
| 211 // buffer except for GIF frames whose | 211 // frames whose original rect was smaller than the overall image size. |
| 212 // original rect was smaller than the | 212 IntRect m_originalFrameRect; |
| 213 // overall image size. | |
| 214 FrameStatus m_status; | 213 FrameStatus m_status; |
| 215 unsigned m_duration; | 214 unsigned m_duration; |
| 216 FrameDisposalMethod m_disposalMethod; | 215 FrameDisposalMethod m_disposalMethod; |
| 217 bool m_premultiplyAlpha; | 216 bool m_premultiplyAlpha; |
| 218 | 217 |
| 219 // The frame that must be decoded before this frame can be decoded. | 218 // The frame that must be decoded before this frame can be decoded. |
| 220 // WTF::notFound if this frame doesn't require any previous frame. | 219 // WTF::notFound if this frame doesn't require any previous frame. |
| 221 // This is used by ImageDecoder::clearCacheExceptFrame(), and will never | 220 // This is used by ImageDecoder::clearCacheExceptFrame(), and will never |
| 222 // be read for image formats that do not have multiple frames. | 221 // be read for image formats that do not have multiple frames. |
| 223 size_t m_requiredPreviousFrameIndex; | 222 size_t m_requiredPreviousFrameIndex; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 // decode call out and use it here. | 261 // decode call out and use it here. |
| 263 virtual bool isSizeAvailable() | 262 virtual bool isSizeAvailable() |
| 264 { | 263 { |
| 265 return !m_failed && m_sizeAvailable; | 264 return !m_failed && m_sizeAvailable; |
| 266 } | 265 } |
| 267 | 266 |
| 268 virtual IntSize size() const { return m_size; } | 267 virtual IntSize size() const { return m_size; } |
| 269 | 268 |
| 270 // This will only differ from size() for ICO (where each frame is a | 269 // This will only differ from size() for ICO (where each frame is a |
| 271 // different icon) or other formats where different frames are different | 270 // different icon) or other formats where different frames are different |
| 272 // sizes. This does NOT differ from size() for GIF, since decoding GIFs | 271 // sizes. This does NOT differ from size() for GIF or WebP, since |
| 273 // composites any smaller frames against previous frames to create full- | 272 // decoding GIF or WebP composites any smaller frames against previous |
| 274 // size frames. | 273 // frames to create full-size frames. |
| 275 virtual IntSize frameSizeAtIndex(size_t) const | 274 virtual IntSize frameSizeAtIndex(size_t) const |
| 276 { | 275 { |
| 277 return size(); | 276 return size(); |
| 278 } | 277 } |
| 279 | 278 |
| 280 // Returns whether the size is legal (i.e. not going to result in | 279 // Returns whether the size is legal (i.e. not going to result in |
| 281 // overflow elsewhere). If not, marks decoding as failed. | 280 // overflow elsewhere). If not, marks decoding as failed. |
| 282 virtual bool setSize(unsigned width, unsigned height) | 281 virtual bool setSize(unsigned width, unsigned height) |
| 283 { | 282 { |
| 284 if (isOverSize(width, height)) | 283 if (isOverSize(width, height)) |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 } | 380 } |
| 382 | 381 |
| 383 bool failed() const { return m_failed; } | 382 bool failed() const { return m_failed; } |
| 384 | 383 |
| 385 // Clears decoded pixel data from all frames except the provided frame, | 384 // Clears decoded pixel data from all frames except the provided frame, |
| 386 // unless that frame has status FrameEmpty, in which case we instead | 385 // unless that frame has status FrameEmpty, in which case we instead |
| 387 // preserve the most recent frame whose data is required in order to | 386 // preserve the most recent frame whose data is required in order to |
| 388 // decode this frame. Callers may pass WTF::notFound to clear all frames
. | 387 // decode this frame. Callers may pass WTF::notFound to clear all frames
. |
| 389 // | 388 // |
| 390 // Returns the number of bytes of frame data actually cleared. | 389 // Returns the number of bytes of frame data actually cleared. |
| 391 size_t clearCacheExceptFrame(size_t); | 390 virtual size_t clearCacheExceptFrame(size_t); |
| 392 | 391 |
| 393 // If the image has a cursor hot-spot, stores it in the argument | 392 // If the image has a cursor hot-spot, stores it in the argument |
| 394 // and returns true. Otherwise returns false. | 393 // and returns true. Otherwise returns false. |
| 395 virtual bool hotSpot(IntPoint&) const { return false; } | 394 virtual bool hotSpot(IntPoint&) const { return false; } |
| 396 | 395 |
| 397 virtual void reportMemoryUsage(MemoryObjectInfo*) const; | 396 virtual void reportMemoryUsage(MemoryObjectInfo*) const; |
| 398 | 397 |
| 399 virtual void setMemoryAllocator(SkBitmap::Allocator* allocator) | 398 virtual void setMemoryAllocator(SkBitmap::Allocator* allocator) |
| 400 { | 399 { |
| 401 // FIXME: this doesn't work for images with multiple frames. | 400 // FIXME: this doesn't work for images with multiple frames. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 | 441 |
| 443 IntSize m_size; | 442 IntSize m_size; |
| 444 bool m_sizeAvailable; | 443 bool m_sizeAvailable; |
| 445 bool m_isAllDataReceived; | 444 bool m_isAllDataReceived; |
| 446 bool m_failed; | 445 bool m_failed; |
| 447 }; | 446 }; |
| 448 | 447 |
| 449 } // namespace WebCore | 448 } // namespace WebCore |
| 450 | 449 |
| 451 #endif | 450 #endif |
| OLD | NEW |