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

Side by Side Diff: Source/platform/image-decoders/ImageFrame.h

Issue 170463002: Replace NativeImageSkia usage with SkBitmap in ImageFrame (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase. Created 6 years, 9 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 | Annotate | Revision Log
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) 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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 PassRefPtr<NativeImageSkia> asNewNativeImage() const; 112 PassRefPtr<NativeImageSkia> asNewNativeImage() const;
113 113
114 bool hasAlpha() const; 114 bool hasAlpha() const;
115 const IntRect& originalFrameRect() const { return m_originalFrameRect; } 115 const IntRect& originalFrameRect() const { return m_originalFrameRect; }
116 Status status() const { return m_status; } 116 Status status() const { return m_status; }
117 unsigned duration() const { return m_duration; } 117 unsigned duration() const { return m_duration; }
118 DisposalMethod disposalMethod() const { return m_disposalMethod; } 118 DisposalMethod disposalMethod() const { return m_disposalMethod; }
119 AlphaBlendSource alphaBlendSource() const { return m_alphaBlendSource; } 119 AlphaBlendSource alphaBlendSource() const { return m_alphaBlendSource; }
120 bool premultiplyAlpha() const { return m_premultiplyAlpha; } 120 bool premultiplyAlpha() const { return m_premultiplyAlpha; }
121 SkBitmap::Allocator* allocator() const { return m_allocator; } 121 SkBitmap::Allocator* allocator() const { return m_allocator; }
122 const SkBitmap& getSkBitmap() const { return m_bitmap->bitmap(); } 122 const SkBitmap& getSkBitmap() const { return m_bitmap; }
123 // Returns true if the pixels changed, but the bitmap has not yet been notif ied. 123 // Returns true if the pixels changed, but the bitmap has not yet been notif ied.
124 bool pixelsChanged() const { return m_pixelsChanged; } 124 bool pixelsChanged() const { return m_pixelsChanged; }
125 125
126 size_t requiredPreviousFrameIndex() const 126 size_t requiredPreviousFrameIndex() const
127 { 127 {
128 ASSERT(m_requiredPreviousFrameIndexValid); 128 ASSERT(m_requiredPreviousFrameIndexValid);
129 return m_requiredPreviousFrameIndex; 129 return m_requiredPreviousFrameIndex;
130 } 130 }
131 #if !ASSERT_DISABLED 131 #if !ASSERT_DISABLED
132 bool requiredPreviousFrameIndexValid() const { return m_requiredPreviousFram eIndexValid; } 132 bool requiredPreviousFrameIndexValid() const { return m_requiredPreviousFram eIndexValid; }
133 #endif 133 #endif
134 void setHasAlpha(bool alpha); 134 void setHasAlpha(bool alpha);
135 void setOriginalFrameRect(const IntRect& r) { m_originalFrameRect = r; } 135 void setOriginalFrameRect(const IntRect& r) { m_originalFrameRect = r; }
136 void setStatus(Status); 136 void setStatus(Status);
137 void setDuration(unsigned duration) { m_duration = duration; } 137 void setDuration(unsigned duration) { m_duration = duration; }
138 void setDisposalMethod(DisposalMethod disposalMethod) { m_disposalMethod = d isposalMethod; } 138 void setDisposalMethod(DisposalMethod disposalMethod) { m_disposalMethod = d isposalMethod; }
139 void setAlphaBlendSource(AlphaBlendSource alphaBlendSource) { m_alphaBlendSo urce = alphaBlendSource; } 139 void setAlphaBlendSource(AlphaBlendSource alphaBlendSource) { m_alphaBlendSo urce = alphaBlendSource; }
140 void setPremultiplyAlpha(bool premultiplyAlpha) { m_premultiplyAlpha = premu ltiplyAlpha; } 140 void setPremultiplyAlpha(bool premultiplyAlpha) { m_premultiplyAlpha = premu ltiplyAlpha; }
141 void setMemoryAllocator(SkBitmap::Allocator* allocator) { m_allocator = allo cator; } 141 void setMemoryAllocator(SkBitmap::Allocator* allocator) { m_allocator = allo cator; }
142 void setSkBitmap(const SkBitmap& bitmap) { m_bitmap = NativeImageSkia::creat e(bitmap); } 142 void setSkBitmap(const SkBitmap& bitmap) { m_bitmap = bitmap; }
143 // The pixelsChanged flag needs to be set when the raw pixel data was direct ly modified 143 // The pixelsChanged flag needs to be set when the raw pixel data was direct ly modified
144 // (e.g. through a pointer or setRGBA). The flag is usually set after a batc h of changes was made. 144 // (e.g. through a pointer or setRGBA). The flag is usually set after a batc h of changes was made.
145 void setPixelsChanged(bool pixelsChanged) { m_pixelsChanged = pixelsChanged; } 145 void setPixelsChanged(bool pixelsChanged) { m_pixelsChanged = pixelsChanged; }
146 146
147 void setRequiredPreviousFrameIndex(size_t previousFrameIndex) 147 void setRequiredPreviousFrameIndex(size_t previousFrameIndex)
148 { 148 {
149 m_requiredPreviousFrameIndex = previousFrameIndex; 149 m_requiredPreviousFrameIndex = previousFrameIndex;
150 #if !ASSERT_DISABLED 150 #if !ASSERT_DISABLED
151 m_requiredPreviousFrameIndexValid = true; 151 m_requiredPreviousFrameIndexValid = true;
152 #endif 152 #endif
153 } 153 }
154 154
155 inline PixelData* getAddr(int x, int y) 155 inline PixelData* getAddr(int x, int y)
156 { 156 {
157 return m_bitmap->bitmap().getAddr32(x, y); 157 return m_bitmap.getAddr32(x, y);
158 } 158 }
159 159
160 inline void setRGBA(int x, int y, unsigned r, unsigned g, unsigned b, unsign ed a) 160 inline void setRGBA(int x, int y, unsigned r, unsigned g, unsigned b, unsign ed a)
161 { 161 {
162 setRGBA(getAddr(x, y), r, g, b, a); 162 setRGBA(getAddr(x, y), r, g, b, a);
163 } 163 }
164 164
165 static const unsigned div255 = static_cast<unsigned>(1.0 / 255 * (1 << 24)) + 1; 165 static const unsigned div255 = static_cast<unsigned>(1.0 / 255 * (1 << 24)) + 1;
166 166
167 inline void setRGBA(PixelData* dest, unsigned r, unsigned g, unsigned b, uns igned a) 167 inline void setRGBA(PixelData* dest, unsigned r, unsigned g, unsigned b, uns igned a)
(...skipping 17 matching lines...) Expand all
185 185
186 inline void setRGBARaw(PixelData* dest, unsigned r, unsigned g, unsigned b, unsigned a) 186 inline void setRGBARaw(PixelData* dest, unsigned r, unsigned g, unsigned b, unsigned a)
187 { 187 {
188 *dest = SkPackARGB32NoCheck(a, r, g, b); 188 *dest = SkPackARGB32NoCheck(a, r, g, b);
189 } 189 }
190 190
191 // Notifies the SkBitmap if any pixels changed and resets the flag. 191 // Notifies the SkBitmap if any pixels changed and resets the flag.
192 inline void notifyBitmapIfPixelsChanged() 192 inline void notifyBitmapIfPixelsChanged()
193 { 193 {
194 if (m_pixelsChanged) 194 if (m_pixelsChanged)
195 m_bitmap->bitmap().notifyPixelsChanged(); 195 m_bitmap.notifyPixelsChanged();
196 m_pixelsChanged = false; 196 m_pixelsChanged = false;
197 } 197 }
198 198
199 private: 199 private:
200 int width() const 200 int width() const
201 { 201 {
202 return m_bitmap->bitmap().width(); 202 return m_bitmap.width();
203 } 203 }
204 204
205 int height() const 205 int height() const
206 { 206 {
207 return m_bitmap->bitmap().height(); 207 return m_bitmap.height();
208 } 208 }
209 209
210 RefPtr<NativeImageSkia> m_bitmap; 210 SkBitmap m_bitmap;
211 SkBitmap::Allocator* m_allocator; 211 SkBitmap::Allocator* m_allocator;
212 bool m_hasAlpha; 212 bool m_hasAlpha;
213 // This will always just be the entire buffer except for GIF or WebP 213 // This will always just be the entire buffer except for GIF or WebP
214 // frames whose original rect was smaller than the overall image size. 214 // frames whose original rect was smaller than the overall image size.
215 IntRect m_originalFrameRect; 215 IntRect m_originalFrameRect;
216 Status m_status; 216 Status m_status;
217 unsigned m_duration; 217 unsigned m_duration;
218 DisposalMethod m_disposalMethod; 218 DisposalMethod m_disposalMethod;
219 AlphaBlendSource m_alphaBlendSource; 219 AlphaBlendSource m_alphaBlendSource;
220 bool m_premultiplyAlpha; 220 bool m_premultiplyAlpha;
221 // True if the pixels changed, but the bitmap has not yet been notified. 221 // True if the pixels changed, but the bitmap has not yet been notified.
222 bool m_pixelsChanged; 222 bool m_pixelsChanged;
223 223
224 // The frame that must be decoded before this frame can be decoded. 224 // The frame that must be decoded before this frame can be decoded.
225 // WTF::kNotFound if this frame doesn't require any previous frame. 225 // WTF::kNotFound if this frame doesn't require any previous frame.
226 // This is used by ImageDecoder::clearCacheExceptFrame(), and will never 226 // This is used by ImageDecoder::clearCacheExceptFrame(), and will never
227 // be read for image formats that do not have multiple frames. 227 // be read for image formats that do not have multiple frames.
228 size_t m_requiredPreviousFrameIndex; 228 size_t m_requiredPreviousFrameIndex;
229 #if !ASSERT_DISABLED 229 #if !ASSERT_DISABLED
230 bool m_requiredPreviousFrameIndexValid; 230 bool m_requiredPreviousFrameIndexValid;
231 #endif 231 #endif
232 }; 232 };
233 233
234 } // namespace WebCore 234 } // namespace WebCore
235 235
236 #endif 236 #endif
OLDNEW
« no previous file with comments | « Source/platform/graphics/skia/NativeImageSkia.h ('k') | Source/platform/image-decoders/ImageFrame.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698