| 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) 2008, 2009 Google, Inc. | 3  * Copyright (C) 2008, 2009 Google, Inc. | 
| 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 96   DCHECK_NE(this, other); | 96   DCHECK_NE(this, other); | 
| 97   if (other->m_bitmap.isImmutable()) | 97   if (other->m_bitmap.isImmutable()) | 
| 98     return false; | 98     return false; | 
| 99   m_hasAlpha = other->m_hasAlpha; | 99   m_hasAlpha = other->m_hasAlpha; | 
| 100   m_bitmap.reset(); | 100   m_bitmap.reset(); | 
| 101   m_bitmap.swap(other->m_bitmap); | 101   m_bitmap.swap(other->m_bitmap); | 
| 102   other->m_status = FrameEmpty; | 102   other->m_status = FrameEmpty; | 
| 103   return true; | 103   return true; | 
| 104 } | 104 } | 
| 105 | 105 | 
| 106 bool ImageFrame::setSizeAndColorSpace(int newWidth, | 106 bool ImageFrame::allocatePixelData(int newWidth, | 
| 107                                       int newHeight, | 107                                    int newHeight, | 
| 108                                       sk_sp<SkColorSpace> colorSpace) { | 108                                    sk_sp<SkColorSpace> colorSpace) { | 
| 109   // setSizeAndColorSpace() should only be called once, it leaks memory | 109   // allocatePixelData() should only be called once. | 
| 110   // otherwise. |  | 
| 111   DCHECK(!width() && !height()); | 110   DCHECK(!width() && !height()); | 
| 112 | 111 | 
| 113   m_bitmap.setInfo(SkImageInfo::MakeN32( | 112   m_bitmap.setInfo(SkImageInfo::MakeN32( | 
| 114       newWidth, newHeight, | 113       newWidth, newHeight, | 
| 115       m_premultiplyAlpha ? kPremul_SkAlphaType : kUnpremul_SkAlphaType, | 114       m_premultiplyAlpha ? kPremul_SkAlphaType : kUnpremul_SkAlphaType, | 
| 116       std::move(colorSpace))); | 115       std::move(colorSpace))); | 
| 117   if (!m_bitmap.tryAllocPixels(m_allocator, 0)) | 116   return m_bitmap.tryAllocPixels(m_allocator, 0); | 
| 118     return false; |  | 
| 119 |  | 
| 120   zeroFillPixelData(); |  | 
| 121   return true; |  | 
| 122 } | 117 } | 
| 123 | 118 | 
| 124 bool ImageFrame::hasAlpha() const { | 119 bool ImageFrame::hasAlpha() const { | 
| 125   return m_hasAlpha; | 120   return m_hasAlpha; | 
| 126 } | 121 } | 
| 127 | 122 | 
| 128 sk_sp<SkImage> ImageFrame::finalizePixelsAndGetImage() { | 123 sk_sp<SkImage> ImageFrame::finalizePixelsAndGetImage() { | 
| 129   DCHECK_EQ(FrameComplete, m_status); | 124   DCHECK_EQ(FrameComplete, m_status); | 
| 130   m_bitmap.setImmutable(); | 125   m_bitmap.setImmutable(); | 
| 131   return SkImage::MakeFromBitmap(m_bitmap); | 126   return SkImage::MakeFromBitmap(m_bitmap); | 
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 207   // If the frame is not fully loaded, there will be transparent pixels, | 202   // If the frame is not fully loaded, there will be transparent pixels, | 
| 208   // so we can't tell skia we're opaque, even for image types that logically | 203   // so we can't tell skia we're opaque, even for image types that logically | 
| 209   // always are (e.g. jpeg). | 204   // always are (e.g. jpeg). | 
| 210   if (!m_hasAlpha && m_status == FrameComplete) | 205   if (!m_hasAlpha && m_status == FrameComplete) | 
| 211     return kOpaque_SkAlphaType; | 206     return kOpaque_SkAlphaType; | 
| 212 | 207 | 
| 213   return m_premultiplyAlpha ? kPremul_SkAlphaType : kUnpremul_SkAlphaType; | 208   return m_premultiplyAlpha ? kPremul_SkAlphaType : kUnpremul_SkAlphaType; | 
| 214 } | 209 } | 
| 215 | 210 | 
| 216 }  // namespace blink | 211 }  // namespace blink | 
| OLD | NEW | 
|---|