| Index: third_party/WebKit/Source/platform/image-decoders/ImageFrame.h
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h b/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h
|
| index b5d1490fa484e330e0b3ce1084a75bf873d456e1..9e32d5d402b3cda20813e2d68a3d0c142494931e 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h
|
| @@ -30,6 +30,7 @@
|
| #include "platform/PlatformExport.h"
|
| #include "platform/geometry/IntRect.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| +#include "third_party/skia/include/core/SkColorPriv.h"
|
| #include "wtf/Allocator.h"
|
| #include "wtf/Assertions.h"
|
| #include "wtf/PassRefPtr.h"
|
| @@ -68,7 +69,12 @@ public:
|
| // overwrite the corresponding pixels).
|
| BlendAtopBgcolor,
|
| };
|
| + enum ColorType {
|
| + N32 = kN32_SkColorType,
|
| + Index8 = kIndex_8_SkColorType
|
| + };
|
| typedef uint32_t PixelData;
|
| + typedef uint8_t PixelData8;
|
|
|
| ImageFrame();
|
|
|
| @@ -92,6 +98,7 @@ public:
|
| // pixel data, so that modifications in one frame are not reflected in
|
| // the other. Returns whether the copy succeeded.
|
| bool copyBitmapData(const ImageFrame&);
|
| + bool copyBitmapData(const ImageFrame&, ImageFrame::ColorType);
|
|
|
| // Copies the pixel data at [(startX, startY), (endX, startY)) to the
|
| // same X-coordinates on each subsequent row up to but not including
|
| @@ -112,6 +119,7 @@ public:
|
| // are written. Must only be called once. Returns whether allocation
|
| // succeeded.
|
| bool setSize(int newWidth, int newHeight);
|
| + bool setSizeIndex8(int newWidth, int newHeight, const Vector<blink::ImageFrame::PixelData>& colorMap, size_t indexOfTransparent = kNotFound);
|
|
|
| // Returns a caller-owned pointer to the underlying native image data.
|
| // (Actual use: This pointer will be owned by BitmapImage and freed in
|
| @@ -148,6 +156,11 @@ public:
|
| return m_bitmap.getAddr32(x, y);
|
| }
|
|
|
| + inline PixelData8* getAddr8(int x, int y)
|
| + {
|
| + return m_bitmap.getAddr8(x, y);
|
| + }
|
| +
|
| inline void setRGBA(int x, int y, unsigned r, unsigned g, unsigned b, unsigned a)
|
| {
|
| setRGBA(getAddr(x, y), r, g, b, a);
|
|
|